diff options
Diffstat (limited to 'src/cli')
-rwxr-xr-x | src/cli/seqstat.py | 27 | ||||
-rwxr-xr-x | src/cli/slocalc.py | 67 |
2 files changed, 0 insertions, 94 deletions
diff --git a/src/cli/seqstat.py b/src/cli/seqstat.py deleted file mode 100755 index 196fe56..0000000 --- a/src/cli/seqstat.py +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env python3 - -import click - -ticks = ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"] - - -def histogram(sequence): - min_val = min(sequence) - max_val = max(sequence) - - scale = (int(max_val - min_val) << 8) / (len(ticks) - 1) - if scale < 1: - scale = 1 - - return [ticks[int((int(i - min_val) << 8) / scale)] for i in sequence] - - -@click.command() -@click.argument("numbers", nargs=-1, type=float) -def cli(numbers): - h = histogram(numbers) - print("".join(h)) - - -if __name__ == "__main__": - cli() diff --git a/src/cli/slocalc.py b/src/cli/slocalc.py deleted file mode 100755 index bc4def8..0000000 --- a/src/cli/slocalc.py +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env python3 -""" -A simple SLO calculator for the command line. - -$ slocalc.py 99.99 -daily: 0 days, 0 hours, 0 minutes, 8 seconds -weekly: 0 days, 0 hours, 1 minutes, 0 seconds -monthly: 0 days, 0 hours, 4 minutes, 19 seconds -quarterly: 0 days, 0 hours, 12 minutes, 57 seconds -yearly: 0 days, 0 hours, 52 minutes, 33 seconds -""" - -import sys -from typing import Optional -from datetime import timedelta - -seconds_in_hour = 60 * 60 - - -def convert_to_float(s: str) -> Optional[float]: - try: - return float(s) - except ValueError: - print(f"error: '{s}' cannot be converted to float") - return None - - -def seconds_to_human_readable(seconds: int) -> str: - delta = timedelta(seconds=seconds) - days = delta.days - hours, remainder = divmod(delta.seconds, 3600) - minutes, seconds = divmod(remainder, 60) - return f"{days} days, {hours} hours, {minutes} minutes, {seconds} seconds" - - -def cli(): - if len(sys.argv) <= 1: - print("you need at least one argument", file=sys.stderr) - sys.exit(1) - - uptime = convert_to_float(sys.argv[1]) - if uptime is None: - print("failed to read input") - sys.exit(1) - - if uptime <= 0: - uptime = 0 - if uptime >= 100: - uptime = 100 - - allowed_downtime = ((100 * 100) - (uptime * 100)) / (100 * 100) - - daily_seconds = seconds_in_hour * 24 * allowed_downtime - week_seconds = daily_seconds * 7 - month_seconds = daily_seconds * 30 - quarter_seconds = daily_seconds * 90 - year_seconds = daily_seconds * 365 - - print("daily: {0}".format(seconds_to_human_readable(daily_seconds))) - print("weekly: {0}".format(seconds_to_human_readable(week_seconds))) - print("monthly: {0}".format(seconds_to_human_readable(month_seconds))) - print("quarterly: {0}".format(seconds_to_human_readable(quarter_seconds))) - print("yearly: {0}".format(seconds_to_human_readable(year_seconds))) - - -if __name__ == "__main__": - cli() |