classtools-autocode

Helps you write compact python classes


Keywords
auto code generator decorator properties fields attributes contract object classes, autoargs, autoprops, boilerplate, classes, code-generator, constructor, contracts, enforce, getters, pep484, python, runtime-typechecking, setters, type-hints, typechecking
License
BSD-3-Clause
Install
pip install classtools-autocode==1.1.0

Contributors

smarie


See all contributors


Documentation

python-autoclass

Build Status Tests Status codecov Documentation PyPIdownloads

Project page : https://smarie.github.io/python-autoclass/

What's new in the development process

  • Improved documentation structure, and no longer hosted on readthedocs
  • Travis and codecov integration
  • Doc now generated from markdown using mkdocs

Want to contribute ?

Contributions are welcome ! Simply fork this project on github, commit your contributions, and create pull requests.

Here is a non-exhaustive list of interesting open topics: https://github.com/smarie/python-autoclass/issues

Running the tests

This project uses pytest.

pytest -v autoclass/tests/

You may need to install requirements for setup beforehand, using

pip install -r ci_tools/requirements-test.txt

Packaging

This project uses setuptools_scm to synchronise the version number. Therefore the following command should be used for development snapshots as well as official releases:

python setup.py egg_info bdist_wheel rotate -m.whl -k3

You may need to install requirements for setup beforehand, using

pip install -r ci_tools/requirements-setup.txt

Generating the documentation page

This project uses mkdocs to generate its documentation page. Therefore building a local copy of the doc page may be done using:

mkdocs build

You may need to install requirements for doc beforehand, using

pip install -r ci_tools/requirements-doc.txt

Generating the test reports

The following commands generate the html test report and the associated badge.

pytest --junitxml=junit.xml -v autoclass/tests/
ant -f ci_tools/generate-junit-html.xml
python ci_tools/generate-junit-badge.py

PyPI Releasing memo

This project is now automatically deployed to PyPI when a tag is created. Anyway, for manual deployment we can use:

twine upload dist/* -r pypitest
twine upload dist/*