diff options
author | Franck Cuny <franck@fcuny.net> | 2024-05-04 13:58:58 -0700 |
---|---|---|
committer | Franck Cuny <franck@fcuny.net> | 2024-05-04 13:58:58 -0700 |
commit | b19fca1d9be319f7d7b07215139832f2b46d6385 (patch) | |
tree | d4e9afc2fa725c0352f957410fa9e30e749e45e5 /src/cli | |
parent | move the slocalc under `src` (diff) | |
download | world-b19fca1d9be319f7d7b07215139832f2b46d6385.tar.gz |
move seqstat
Diffstat (limited to 'src/cli')
-rwxr-xr-x | src/cli/seqstat.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/cli/seqstat.py b/src/cli/seqstat.py new file mode 100755 index 0000000..a9d5e64 --- /dev/null +++ b/src/cli/seqstat.py @@ -0,0 +1,27 @@ +#!/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() |