1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| import termios, sys, select
class KBhit:
def __enter__(self):
self.fd = sys.stdin.fileno()
self.new = termios.tcgetattr(self.fd)
self.old = termios.tcgetattr(self.fd)
self.new[3] = (self.new[3] & ~termios.ICANON & ~termios.ECHO)
termios.tcsetattr(self.fd, termios.TCSAFLUSH, self.new)
return self
def __exit__(self, type, value, traceback):
termios.tcsetattr(self.fd, termios.TCSAFLUSH, self.old)
def kbhit(self):
r,_,_ = select.select([sys.stdin], [], [], 0)
return r != []
with KBhit() as kb, Live(generate_table(grep), refresh_per_second=4) as live:
while True :
if kb.kbhit():
break
live.update(generate_table(grep)) |