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.3.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.3-py3-none-any.whl (33.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: automata_diags-0.2.3.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.3.tar.gz
Algorithm Hash digest
SHA256 ffba36b386d41df98fa6e4eb5ce57e6b154ab17bac3cfbf6235e5263a38afd1a
MD5 29948188f35e285f1df209d9421763fa
BLAKE2b-256 c26f9ca02d762c0eba389aa4c511165e6fff40932a0ba4585d4b9c72952e5cf6

See more details on using hashes here.

Provenance

The following attestation bundles were made for automata_diags-0.2.3.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.3-py3-none-any.whl.

File metadata

  • Download URL: automata_diags-0.2.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6036ef9744a3f0aeaf3ee400a0c530fc5997bced37e4eefa0c3aa957ff2f5c9f
MD5 062f6631d6278b4dde7d6d04cd99612b
BLAKE2b-256 5242836392b1714a3e0c884ad519477a19c548a98bd24679f7b643717d3d99a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for automata_diags-0.2.3-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