CA-28 / app.py
stevafernandes's picture
Create app.py
c606a90 verified
raw
history blame contribute delete
817 Bytes
import gradio as gr, io, sys
class FSM:
def __init__(self, initial_state, transitions):
self.state = initial_state
self.transitions = transitions
def handle(self, event):
key = (self.state, event)
if key in self.transitions:
self.state = self.transitions[key]
print(f" Event: {event:7s} => State: {self.state}")
transitions = {
("closed", "open"): "opened",
("closed", "lock"): "locked",
("opened", "close"): "closed",
("locked", "unlock"): "closed",
}
fsm = FSM("closed", transitions)
buf = io.StringIO()
sys.stdout = buf
for event in ["open", "close", "lock", "open", "unlock", "open", "close"]:
fsm.handle(event)
sys.stdout = sys.__stdout__
gr.Interface(fn=lambda: buf.getvalue(), inputs=[], outputs="text").launch()