leaky-bucket/poc/py-ratio1024-log2/state_to_buttons.py

35 lines
933 B
Python

import argparse
import os
from time import sleep
def main():
args = get_args()
buckets = {}
with open(args.p, "r") as f:
f.seek(0, os.SEEK_END)
while True:
line = f.readline().strip()
if not line:
sleep(0.25)
continue
key = line.strip("/").split()[0]
if not key in buckets:
buckets[key] = False
buckets[key] = False if line[0] == "/" else float(line.split()[-1])
result = sorted([
(int(100*buckets[k]), k) for k in buckets if buckets[k]
], reverse=True)
print("[",
" ".join([
"{}={:2}".format(i[1], i[0]) for i in result
]),
"]")
def get_args():
ap = argparse.ArgumentParser()
ap.add_argument("-p", type=str, help="path to write out to", default="/tmp/cbappend.both.txt")
return ap.parse_args()
if __name__ == "__main__":
main()