Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/akshitadixit/flowfsm
A versatile Python framework for building and managing finite state machines and workflows, (in future maybe) graph-based systems with ease and flexibility.
https://github.com/akshitadixit/flowfsm
automata fsm
Last synced: 1 day ago
JSON representation
A versatile Python framework for building and managing finite state machines and workflows, (in future maybe) graph-based systems with ease and flexibility.
- Host: GitHub
- URL: https://github.com/akshitadixit/flowfsm
- Owner: akshitadixit
- License: mit
- Created: 2024-11-28T10:30:30.000Z (2 months ago)
- Default Branch: master
- Last Pushed: 2024-12-15T17:31:12.000Z (about 2 months ago)
- Last Synced: 2024-12-15T18:23:30.371Z (about 2 months ago)
- Topics: automata, fsm
- Language: Python
- Homepage: https://pypi.org/project/flow-fsm/
- Size: 188 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FlowFSM
[![](https://img.shields.io/badge/PyPI-3775A9.svg?style=for-the-badge&logo=PyPI&logoColor=white)](https://pypi.org/project/flow-fsm/)
## Project Overview
FlowFSM is a package for building and managing finite state machines (FSMs). It provides tools for defining states, transitions, events, and workflows, simplifying the development of complex state-driven applications. The framework will be supporting features for configuration, runtime management, and visualization as and when they are developed.
![](examples/screenshot.png)
## Features
* **Flexible State Definition:** Define states and transitions with ease using a clear and intuitive interface.
* **Event-Driven Transitions:** Trigger state transitions based on custom events.
* **Workflow Management:** Manage complex workflows involving multiple states and transitions.
* **Configuration System:** Load configurations from various sources, enabling customization.
* **Runtime Execution:** Execute workflows and handle events efficiently.## TODOs
* **Extensible Hooks and Listeners:** Extend functionality with custom hooks and listeners.
* **Visualization Support:** Visualize workflows (future functionality, likely).
* **Robust Error Handling:** Includes a comprehensive error handling system.## Usage
A simple example showcasing 2 basic workflows can be found in the `examples/` directory.
```python
from ..flowfsm.config.parser import parse_fsm_config
from ..flowfsm.config.loader import load_fsm_from_config
from ..flowfsm.runtime.executor import Executor# Load FSM configuration
config = parse_fsm_config("./config_example.yml")# Create FSM
workflow = load_fsm_from_config(config)# Execute FSM
executor = Executor(workflow)
executor.run()```