pytransitions / transitions

A lightweight, object-oriented finite state machine implementation in Python with many extensions
MIT License
5.49k stars 524 forks source link

[BUG]: in HierarchicalGraphMachine,load yaml dict,can not show on_enter #481

Closed m986883511 closed 3 years ago

m986883511 commented 3 years ago

import io import time

from IPython.core.display import display, Image from transitions.extensions import HierarchicalGraphMachine as Machine

import yaml

class Model:

def say_hello(self, name):
    print(f"Hello {name}!")

def show_graph(self):
    stream = io.BytesIO()
    fsm_svg = 'fsm.svg'
    self.get_graph().draw(fsm_svg, prog='dot', format='svg')
    display(Image(stream.getvalue()))
    time.sleep(1)

yaml_config = """

name: "MyMachine"

states:

transitions:

initial: "A" """

model = Model()

config = yaml.safe_load(yaml_config) config['model'] = model # adding a model to the configuration m = Machine(config) # config unpacks arguments as kwargs model.show_graph()

m986883511 commented 3 years ago

sorry,now i know the params: “title='Mood Matrix', show_conditions=True, show_state_attributes=True)”