{"categories":[{"label":"Scientific/Engineering","url":"https://skillfed.io/packages/category/scientific-engineering/7"}],"enrichment":{"capability":"Fysom is a finite state machine library that lets you define states, events, and transitions declaratively, then trigger state changes by calling event methods or the trigger() function.","skillfed_tags":["state-machine","workflow","abandoned"],"use_cases":["Model a workflow with discrete states (draft, review, approved, published) and define which transitions are allowed between them.","Implement a traffic light or similar simple state machine where events trigger deterministic state changes.","Build a game or interactive system with defined states (menu, playing, paused, game over) and event-driven transitions.","Validate state transitions in a business process to ensure only legal state changes occur.","Create a simple task scheduler or job runner that tracks job states (pending, running, completed, failed) and transitions."],"what_it_does":"Fysom is a lightweight finite state machine library that lets you define states, events, and transitions declaratively in a configuration dictionary. You create a Fysom object with an initial state and a list of events (each specifying source and destination states), and the library automatically generates methods for each event that trigger state transitions. You can query the current state, check if a transition is allowed, and optionally define callbacks to run on state changes.\n\nThe library is a Python port of Jake Gordon's JavaScript state machine, ported by Mansour Behabadi and maintained with unit tests and a build process. It has no external runtime dependencies and is designed for simple, deterministic state workflows\u2014traffic light sequences, workflow pipelines, or any system with discrete states and well-defined transitions between them.","worth_installing":"No. The package is abandoned (last release September 2021, no commits since October 2021) and has high install friction due to source-only distribution. While it is MIT-licensed and has no known vulnerabilities, the lack of maintenance means no bug fixes or Python version updates. Use only if you have an existing codebase already depending on it; for new projects, choose an actively maintained state machine library."},"id":"fysom","links":{"html":"https://skillfed.io/packages/fysom","md":"https://skillfed.io/packages/fysom.md","pypi":"https://pypi.org/project/fysom/"},"maintenance":{"status":"abandoned"},"meta":{"latest_release":"2021-09-10","license_spdx":null,"license_treatment":"permissive","name":"fysom","python_support":"unspecified","summary":"pYthOn Finite State Machine"},"popularity":{"monthly_downloads":129116,"position":11683,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"2.1.6"}
