random reader

master
Bel LaPointe 2022-09-18 12:44:06 -06:00
parent 5c5f09fc3d
commit 1ebd6facae
2 changed files with 17 additions and 2 deletions

View File

@ -4,6 +4,7 @@ import bucket
def main(): def main():
r = reader.Reader(reader.StdinReader()) r = reader.Reader(reader.StdinReader())
r = reader.Reader(reader.RandomReader())
w = writer.Writer() w = writer.Writer()
bkt = bucket.Bucket() bkt = bucket.Bucket()
for line in r.read(): for line in r.read():

View File

@ -3,6 +3,7 @@ import queue
import time import time
import sys import sys
import select import select
import random
__interval__ = .1 __interval__ = .1
@ -36,7 +37,10 @@ class Reader:
try: try:
while not reader.stopping: while not reader.stopping:
try: try:
yield q.get(timeout=__interval__) s = q.get(timeout=__interval__)
if s:
s = s.lower().strip()
yield s
except queue.Empty: except queue.Empty:
yield None yield None
pass pass
@ -50,11 +54,21 @@ class StdinReader:
try: try:
if select.select([sys.stdin,],[],[],__interval__/2.0)[0]: if select.select([sys.stdin,],[],[],__interval__/2.0)[0]:
line = sys.stdin.readline() line = sys.stdin.readline()
return line.strip() return line
except Exception as e: except Exception as e:
pass pass
return None return None
class RandomReader:
def read(self):
seed = random.randint(0, 99)
if seed < 10:
return "a"
elif seed < 50:
return "B"
else:
return "b"
class FileReader: class FileReader:
def __init__(self, path): def __init__(self, path):
self.f = open(path, "r") self.f = open(path, "r")