/pydevs

A Python wrapper of adevs, a C++ library implementing the Discrete Event System Specification (DEVS)

Primary LanguagePythonApache License 2.0Apache-2.0

pydevs

A Python wrapper of adevs, a C++ library implementing the Discrete Event System Specification (DEVS).

Documentation Status License

Requirements and Python 2/3 compatibility

This package runs under Python 2 and Python 3, and has been tested with Python 2.7.6 and Python 3.4.0.

License

See the LICENSE file.

Developing

Development environment

Use tox to prepare virtual environments for development.

To set up a Python 2.7 environment in .devenv27, run:

$ tox -e devenv27

To set up a Python 3.4 environment in .devenv34, run:

$ tox -e devenv34

Packaging

This package uses setuptools.

Run

$ python setup.py sdist

or

$ python setup.py bdist

or

$ python setup.py bdist_wheel

to build a source, binary or wheel distribution.

Complete Git Integration

Setuptool uses the information of tags to infer the version of your project with the help of versioneer.

To use this feature you need to tag with the format MAJOR.MINOR[.REVISION] , e.g. v0.0.1 or v0.1. The prefix v is needed!

Run

$ python setup.py version

to retrieve the current PEP440-compliant version. This version will be used when building a package and is also accessible through devs.__version__. The version will be unknown until you have added a first tag.

Pre-commit hooks

Unleash the power of Git by using its pre-commit hooks.

Run

$ pre-commit install

to install the pre-commit hooks.

Sphinx Documentation

Build the documentation with

$ python setup.py docs

and run doctests with

$ python setup.py doctest

Alternatively, let tox configure the virtual environment and run sphinx:

$ tox -e docs

Add further options separated from tox options by a double dash --:

$ tox -e docs -- --help

Read the Docs

Read the Docs hosts the project at https://readthedocs.org/projects/pydevs.

Add requirements for building the documentation to the requirements-doc.txt file.

Continuous documentation building

For continuously building the documentation during development, run:

$ python setup.py autodocs

Unittest & Coverage

Run

$ python setup.py test

to run all unittests defined in the subfolder tests with the help of tox and py.test.

The py.test plugin pytest-cov is used to automatically generate a coverage report.

Continuous testing

For continuous testing in a Python 2.7 environment, run:

$ python setup.py test --tox-args='-c toxdev.ini -e py27'

For continuous testing in a Python 3.4 environment, run:

$ python setup.py test --tox-args='-c toxdev.ini -e py34'

Requirements Management

Add requirements to the requirements.txt file which will be automatically used by setup.py.

Add development requirements to the requirements-dev.txt file.