Contributing

Coverage

All test cases/scenarios & coverage are executed by tox:

tox

For users who use multiple interpreters:

# python3.8 is just an example
python3.8 -m tox

To run testing scenarios in IDE of your choice please see tox.ini (especially take a look how MEMOIZE_FORCE_ASYNCIO is used).

Docs

Before submitting pull request please update modules apidocs & ensure documentation generates properly. The following commands will do both (watch for errors & warnings).

pip install sphinx sphinx_rtd_theme
cd docs
rm -rf source/*
sphinx-apidoc --doc-project "API docs" -o source/ ../memoize
make html

PyPi

# build dist
python3 -m pip install --user --upgrade setuptools wheel
python3 setup.py sdist bdist_wheel

# try package
python3 -m pip install --user --upgrade twine
python3 -m twine check dist/*

# actual upload will be done by Travis