Skip to main content

🤖 A powerful, modern, and educational Python toolkit for automata theory. Visualize DFAs, NFAs, CFGs, minimize automata, and more with an elegant, type-safe API.

Project description

🤖 Automata Diags

PyPI version Python versions License: MIT Documentation Status

A powerful, modern, and educational Python toolkit for automata theory. Visualize DFAs, NFAs, CFGs, minimize automata, and more with an elegant, type-safe API.

For the full, comprehensive documentation including tutorials and the API reference, please visit our Documentation Website.

🤔 Why Automata Diags?

Feature Why It Matters
Complete Toolset From basic DFAs to complex CFG conversions, all the tools you need for a typical Theory of Computation course are in one place.
Educational Focus The API is designed to be intuitive and map closely to textbook concepts, making it an excellent companion for students.
Advanced Algorithms Includes research-grade implementations like Hopcroft's minimization, setting it apart from simpler libraries.
Instant Visualization Don't just build automata—see them. Instant visual feedback helps solidify complex concepts and makes debugging intuitive.
Modern & Maintained Built with modern Python (type hints, clean architecture) and actively maintained for correctness and new features.

📦 Installation

pip install automata-diags

Requires Python 3.8+ and Graphviz.

🚀 Quick Start

from automata.backend.grammar.dist import State, Symbol
from automata.backend.grammar.regular_languages.dfa.dfa_mod import DFA
from automata.backend.drawings.automata_drawer import AutomataDrawer

# Create a simple DFA
# For more creation methods, see the full documentation.
dfa = DFA.from_string("q0,a,q1;q1,b,q2", start_state="q0", accept_states={"q2"})

# Test it
dfa.accepts([Symbol('a'), Symbol('b')]) # True

# Visualize it
drawer = AutomataDrawer()
drawer.draw_dfa_from_object(dfa, "my_first_dfa")

For more examples and detailed guides, please visit the Full Documentation Site.

🤝 Contributing

Contributions are welcome! Please feel free to open a pull request or submit an issue on our GitHub repository.

📄 License

This project is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

automata_diags-0.2.2.tar.gz (454.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

automata_diags-0.2.2-py3-none-any.whl (33.1 kB view details)

Uploaded Python 3

File details

Details for the file automata_diags-0.2.2.tar.gz.

File metadata

  • Download URL: automata_diags-0.2.2.tar.gz
  • Upload date:
  • Size: 454.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for automata_diags-0.2.2.tar.gz
Algorithm Hash digest
SHA256 83c75f9736634dd66a8abf03ecd23e594899460199c8901da048ad486a9611df
MD5 21ff56d34a47e8dbe1d6314a1dfa679d
BLAKE2b-256 f99a3f7169e8700e7429154d0c59910107d3cd7586e2d5ae198f537e121d4864

See more details on using hashes here.

Provenance

The following attestation bundles were made for automata_diags-0.2.2.tar.gz:

Publisher: python-publish.yml on Ajodo-Godson/automata_diags

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file automata_diags-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: automata_diags-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 33.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for automata_diags-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f428cc1eb6c193432acb0f12c7abca3e1c4a2769d48437c6311f1dc6e1958267
MD5 071d3ea0918df85e7c73e4ef705c8ad8
BLAKE2b-256 1c9c4689f05c7fb33e43f54862c9c604f33d6615629c0acb6c252189d304acc8

See more details on using hashes here.

Provenance

The following attestation bundles were made for automata_diags-0.2.2-py3-none-any.whl:

Publisher: python-publish.yml on Ajodo-Godson/automata_diags

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page