automata

automata: A Python package for simulating and manipulating automata - Published in JOSS (2023)

https://github.com/caleb531/automata

Science Score: 100.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    5 of 18 committers (27.8%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

automata automaton finite-state-machine fsm pushdown-automata python turing-machine turing-machines

Keywords from Contributors

standardization pde mesh parallel interpretability evolutionary-algorithms ode pypi simulations distribution

Scientific Fields

Sociology Social Sciences - 38% confidence
Last synced: 4 months ago · JSON representation ·

Repository

A Python library for simulating finite automata, pushdown automata, and Turing machines

Basic Info
Statistics
  • Stars: 385
  • Watchers: 8
  • Forks: 71
  • Open Issues: 11
  • Releases: 26
Topics
automata automaton finite-state-machine fsm pushdown-automata python turing-machine turing-machines
Created almost 10 years ago · Last pushed 5 months ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md

Automata

Copyright 2016-2025 Caleb Evans
Released under the MIT license

PyPI version tests docs Coverage Status Project Status: Active – The project has reached a stable, usable state and is being actively developed. PyPI - Python Version status pyOpenSci

Links: - Documentation - Examples - Example Notebooks - Migration Guide - API

Automata is a Python 3 library implementing structures and algorithms for manipulating finite automata, pushdown automata, and Turing machines. The algorithms have been optimized and are capable of processing large inputs. Visualization logic has also been implemented. This package is suitable for both researchers wishing to manipulate automata and for instructors teaching courses on theoretical computer science.

The library requires Python 3.9 or newer.

Huge thanks to @eliotwrobson, @YtvwlD, @dengl11, @Tagl, @lewiuberg, @CamiloMartinezM, @abhinavsinha‑adrino, @EduardoGoulart1, @khoda81, and @christopher-hampson for their invaluable code contributions to this project! 🎉

Installing

You can install the latest version of Automata via pip:

sh pip install automata-lib

To install the optional visual dependencies, use the visual extra:

sh pip install 'automata-lib[visual]'

If you encounter errors building pygraphviz, you may need to install graphviz. See the instructions here.

Contributing

Contributions are always welcome! Take a look at the contributing guide.

Owner

  • Name: Caleb Evans
  • Login: caleb531
  • Kind: user
  • Location: Carlsbad, CA

Hi, I'm Caleb, a web developer who lives for Christ by building enjoyable apps and useful tools. I hope you are blessed by what I've made!

JOSS Publication

automata: A Python package for simulating and manipulating automata
Published
October 09, 2023
Volume 8, Issue 90, Page 5759
Authors
Caleb Evans ORCID
Independent Developer, USA
Eliot W. Robson ORCID
Department of Computer Science, University of Illinois, Urbana, IL, USA
Editor
Vincent Knight ORCID
Tags
automata

Citation (CITATION.cff)

cff-version: "1.2.0"
authors:
- family-names: Evans
  given-names: Caleb
  orcid: "https://orcid.org/0009-0000-8896-6800"
- family-names: Robson
  given-names: Eliot W.
  orcid: "https://orcid.org/0000-0002-1476-6715"
contact:
- family-names: Robson
  given-names: Eliot W.
  orcid: "https://orcid.org/0000-0002-1476-6715"
doi: 10.5281/zenodo.8419571
message: If you use this software, please cite our article in the
  Journal of Open Source Software.
preferred-citation:
  authors:
  - family-names: Evans
    given-names: Caleb
    orcid: "https://orcid.org/0009-0000-8896-6800"
  - family-names: Robson
    given-names: Eliot W.
    orcid: "https://orcid.org/0000-0002-1476-6715"
  date-published: 2023-10-09
  doi: 10.21105/joss.05759
  issn: 2475-9066
  issue: 90
  journal: Journal of Open Source Software
  publisher:
    name: Open Journals
  start: 5759
  title: "automata: A Python package for simulating and manipulating
    automata"
  type: article
  url: "https://joss.theoj.org/papers/10.21105/joss.05759"
  volume: 8
title: "automata: A Python package for simulating and manipulating
  automata"

GitHub Events

Total
  • Create event: 4
  • Release event: 3
  • Issues event: 23
  • Watch event: 45
  • Delete event: 1
  • Issue comment event: 88
  • Push event: 45
  • Pull request review comment event: 88
  • Pull request review event: 80
  • Pull request event: 19
  • Fork event: 5
Last Year
  • Create event: 4
  • Release event: 3
  • Issues event: 23
  • Watch event: 45
  • Delete event: 1
  • Issue comment event: 88
  • Push event: 45
  • Pull request review comment event: 88
  • Pull request review event: 80
  • Pull request event: 19
  • Fork event: 5

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 877
  • Total Committers: 18
  • Avg Commits per committer: 48.722
  • Development Distribution Score (DDS): 0.244
Past Year
  • Commits: 31
  • Committers: 5
  • Avg Commits per committer: 6.2
  • Development Distribution Score (DDS): 0.452
Top Committers
Name Email Commits
Caleb Evans c****b@c****e 663
Eliot Robson e****4@g****m 108
Niklas Sombert n****s@y****e 49
abhinavsinha-adrino a****3@g****m 20
Arnar Bjarni Arnarson a****4@r****s 10
dengl11 d****1@s****u 6
Eduardo Goulart 6****1 4
dependabot[bot] 4****] 4
Camilo Martínez M. c****5@s****e 3
eohomegrownapps e****g@g****m 2
Christopher Hampson c****9@g****m 1
Daniel S. Katz d****z@i****g 1
Du Shirui 1****3 1
Léo Kulinski l****i@g****m 1
Mahdi Khodabandeh 4****1 1
MohamedGouaouri 5****i 1
Ruediger Ehlers r****s@t****e 1
Vipul Cariappa v****a@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 55
  • Total pull requests: 69
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 23 days
  • Total issue authors: 21
  • Total pull request authors: 13
  • Average comments per issue: 3.98
  • Average comments per pull request: 3.88
  • Merged pull requests: 63
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 15
  • Pull requests: 19
  • Average time to close issues: 30 days
  • Average time to close pull requests: 18 days
  • Issue authors: 10
  • Pull request authors: 5
  • Average comments per issue: 1.6
  • Average comments per pull request: 5.11
  • Merged pull requests: 17
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • eliotwrobson (17)
  • caleb531 (8)
  • gMontoyaSpeech (4)
  • irisdyoung (4)
  • Tagl (3)
  • phildong (2)
  • mahfuz05062 (2)
  • danichurras (1)
  • khoda81 (1)
  • dsr20030703 (1)
  • CamiloMartinezM (1)
  • hentrian (1)
  • kunchtler (1)
  • lewiuberg (1)
  • mario-hess (1)
Pull Request Authors
  • eliotwrobson (55)
  • caleb531 (9)
  • CamiloMartinezM (4)
  • Tagl (4)
  • phildong (2)
  • lewiuberg (2)
  • kunchtler (2)
  • dsr20030703 (2)
  • Vipul-Cariappa (1)
  • anshravalll (1)
  • StefanosChaliasos (1)
  • danielskatz (1)
  • christopher-hampson (1)
Top Labels
Issue Labels
housekeeping (12) enhancement (11) question (6) correct-behavior (4) bug (3)
Pull Request Labels
housekeeping (6) bug (4) enhancement (2) correct-behavior (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 31,293 last-month
  • Total docker downloads: 819
  • Total dependent packages: 0
  • Total dependent repositories: 42
  • Total versions: 32
  • Total maintainers: 1
pypi.org: automata-lib

A Python library for simulating finite automata, pushdown automata, and Turing machines

  • Versions: 32
  • Dependent Packages: 0
  • Dependent Repositories: 42
  • Downloads: 31,293 Last month
  • Docker Downloads: 819
Rankings
Docker downloads count: 2.1%
Dependent repos count: 2.3%
Downloads: 4.6%
Average: 4.8%
Dependent packages count: 10.1%
Maintainers (1)
Last synced: 4 months ago

Dependencies

requirements.txt pypi
  • coverage ==6.4.4
  • flake8 ==5.0.4
  • flake8-isort ==4.2.0
  • isort ==5.10.1
  • mccabe ==0.7.0
  • networkx ==2.6.2
  • nose2 ==0.12.0
  • pycodestyle ==2.9.1
  • pydot ==1.4.2
  • pyflakes ==2.5.0
  • pyparsing ==3.0.9
.github/workflows/publish.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/tests.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • coverallsapp/github-action master composite
pyproject.toml pypi
  • frozendict >=2.3.4
  • networkx >=2.6.2
  • pydot >=1.4.2
.github/workflows/build.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • ts-graphviz/setup-graphviz v1 composite
.github/workflows/draft-pdf.yml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v1 composite
  • openjournals/openjournals-draft-action master composite
.github/workflows/lint.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • ts-graphviz/setup-graphviz v1 composite
setup.py pypi