New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature: Interactive GUI #234
Comments
Agree both that this would be great, and that it should probably go in a different project. But, in order to make it as modular as possible, it might be nice to try to design a JSON spec that serves as an intermediate representation between GUI and Python code. Then we could implement some If we decide to go the above route, it would also be nice to import export functionality in Of course, I may be overthinking this, as it's not like the typical |
Just to clarify what features we consider useful for such a GUI since I have been vague with this ticket: I am personally interested in a way to monitor and control a(n already instantiated) state machine remotely. Having a way to let transitions generate a state machine from JSON sounds like an interactive state machine creator. Do you think of a GUI more as a Controller or Creator (or both)? For both cases a JSON-spec sounds nonetheless useful though. |
A tangent, but being able to dump machine state to json (instead of just pickle) would be cool for some other uses. There's probably a ton of stuff that won't serialize to json though. |
Are there any updates on this? This feature would be super useful! |
Pardon me for asking again but are there any plans to implement this? I might be able to help with some PRs |
Hi @parthsharma1996,
unfortunately, I cannot give you a roadmap for this feature. What are you particularly interested in? A way to visualise graphs or a way to create/control graphs? |
I am using the FSMs for Dialog Management in a chatbot. I am more interested in
as I am currently dealing with FSMs with 10-20 states and 40-50 transitions and it would be great to be able to manage all that with a GUI instead of keep adding a dict for each transitions. I am also using a slightly modified and unsupported version (The |
I see. What I can offer is to publish the
You probably have to alter the
This should at also 'fix' the |
I published the initial version of transitions-gui. Feel free to check it out. |
I have not actually checked it but just the idea: it is awesome! |
gave it a try, really nice, looks clear and simple to me, as a user I would love to have the ability to right click and directly add/write python scripts to handle transition events. Maybe a dummy question but would it be easily integrated into a web project like Django or others ? |
Hi @loicpw,
writing Python code which is sent to the web server and evaluated/executed is currently not on my list due to security concerns. However, the ability to add callback/condition names to states and transitions (model method strings (
very legit question! Since the user interaction and graph editing is handled by the client (javascript), it should not be an issue to use Django instead of Tornado. Generate graph (server -> client){
"method": "update_machine",
"arg": "<MarkupMachine.markup>"
} Highlight transition (server -> client){
"method": "state_changed",
"arg": {
"model": "<model_name>",
"transition": {
"source": "<source>",
"dest": "<dest>",
"trigger": "<event_name>"
}
}
} Trigger event (client -> server){
"method": "trigger",
"arg": "<trigger_name>"
} Having a look at the WebSocketHandler and the overloaded |
@aleneum Thanks a lot for creating the GUI for transitions! I will check it out! Sorry for the delayed response, I was off from the project for a while. Regarding this,
I can't find the relevant code in any of the current branches. I assume that this has been changed ? I see Which branch should I currently use? {'trigger': 'do', 'source': 'A', 'dest': {'1': 'B', '2': 'C'} , 'depends_on': 'func'} =>
{'trigger': 'do(func=1)', 'source': 'A', 'dest': 'B'} ... |
Use |
Closing this issue since transitions-gui has been transferred to the pytransitions org and published on PyPI. Since |
Requirements:
Preferable:
Candidates:
Note: This will probably end up in a separate project.
The text was updated successfully, but these errors were encountered: