Skip to main content

Python library to manage DFA, NFA and AFW automata

Project description

Copyright (c) 2017 Alessio Cecconi

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Description: ================
PySimpleAutomata
================

.. Overview

PySimpleAutomata is a Python library to manage Deterministic Finite Automata (DFA),
Nondeterministic Finite Automata(NFA) and Alternate Finite state automata on Word (AFW).

This library is not meant for performance nor space consumption optimization,
but for academic purposes:
*PySimpleAutomata aims to be an easily readable but working representation of automata theory*.

.. Disclaimer

This project has been developed for "Process and Service Modelling and Analysis" class
of Master of Science in Engineering in Computer Science from Sapienza University of Rome.

---------
Structure
---------

::

/PySimpleAutomata
|
+---/PySimpleAutomata : Library sources
| |
| +--- AFW.py : Functions to handle AFWs automata.
| |
| +--- automata_IO.py : Functions of IN/OUTput for all the automata types.
| |
| +--- DFA.py : Functions to handle DFAs automata.
| |
| +--- NFA.py : Functions to handle NFAs automata.
|
+---/doc : Documentation sources
|
+---/tests : Unit testing and test-cases inputs


------------
Requirements
------------

The project is **Python3 only**, tested on Python 3.5 and 3.6.

`Graphviz - Graph Visualization Software <http://graphviz.org//>`_ is required to be installed and
present on system path to input/output dot files, while
Python packages `pydot <https://pypi.python.org/pypi/pydot/>`_ and
`graphviz <https://pypi.python.org/pypi/graphviz>`_ are used to handle them (respectively input and output).

`Sphinx <http://www.sphinx-doc.org//>`_ is used to generate the documentation.

`Unittest <https://docs.python.org/3/library/unittest.html>`_ for Unit testing.


------------
Installation
------------

From `PyPi <https://pypi.python.org/pypi>`_ using pip::

pip install pysimpleautomata

From source::

python setup.py install
pip install -r requirements.txt

It is advised in any case to use a `Python Virtual environment <https://docs.python.org/3/tutorial/venv.html>`_ instead of a global installation.

-------------
Documentation
-------------

For a detailed explanation of the library API consult the `online documentation <http://pysimpleautomata.readthedocs.io/>`_
or `download it <https://readthedocs.org/projects/pysimpleautomata/downloads/>`_.

-------
Licence
-------

This code is provided under `MIT Licence <https://github.com/Oneiroe/PySimpleAutomata/blob/master/LICENSE>`_.

Keywords: automata DFA NFA AFW
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Education
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6

Project details


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
PySimpleAutomata-0.5.0-py3-none-any.whl (24.2 kB) Copy SHA256 hash SHA256 Wheel py3
PySimpleAutomata-0.5.0.tar.gz (19.9 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page