state includes key and float q of n

master
Bel LaPointe 2022-04-11 08:04:08 -06:00
parent b8cbb244af
commit 12d8b5ef83
2 changed files with 12 additions and 7 deletions

View File

@ -9,14 +9,14 @@ def main():
f.seek(0, os.SEEK_END)
while True:
line = f.readline().strip()
key = line.strip("/")
if not line:
sleep(0.25)
continue
key = line.strip("/").split()[0]
if not key in buckets:
buckets[key] = False
buckets[key] = line[0] != "/"
print(sorted([int(i) for i in buckets if buckets[i]]))
buckets[key] = False if line[0] == "/" else float(line.split()[-1])
print(sorted([(int(i),buckets[i]) for i in buckets if buckets[i]]))
def get_args():
ap = argparse.ArgumentParser()

View File

@ -51,6 +51,11 @@ def readline():
foo = _input()
return foo
class State():
def __init__(self, active, f):
self.active = active
self.f = f
class Bucket():
def __init__(self, N, R, T, CB):
self.q = 0.0
@ -76,7 +81,7 @@ class Bucket():
if new_state == self.__last_state:
return
self.__last_state = new_state
self.CB(new_state)
self.CB(State(new_state, int(100*self.q/self.N)/100.0))
def state(self):
return self.__last_state
@ -110,7 +115,7 @@ class CBSignals():
print(f"state is now {state}")
kill(
self.__pid,
self.__signal_triggered if state else self.__signal_released,
self.__signal_triggered if state.active else self.__signal_released,
)
handler = lambda s, f: print("SIGNAL:", s)
signal.signal(self.__signal_triggered, handler)
@ -124,7 +129,7 @@ class CBAppend():
def cb(self, payload):
def cb(state):
with open(self.__path, "a") as f:
f.write(f"{'/' if not state else ''}{payload}\n")
f.write(f"{'/' if not state.active else ''}{payload} {state.f}\n")
return cb
class CBFork():
@ -136,7 +141,7 @@ class CBFork():
cb_triggered = self.__triggered.cb(payload)
cb_released = self.__released.cb(payload)
def cb(state):
if state:
if state.active:
return cb_triggered(state)
return cb_released(state)
return cb