- Multi python version support (pyenv, tox)
- Single config using the new standardized
pyproject.toml(PEP518) - Simple build/publish/dependency management using poetry
- Continous integration (GitHub Actions)
- Code coverage reporting (Codecov)
- Code formatting (black)
- pyenv (for automatic installation use pyenv-installer)
- poetry
- Install pyenv and pyenv-virtualenv.
- Install the Python versions you want to support using
pyenv.
pyenv install 3.6.9
pyenv install 3.8.0- Clone repo:
git clone [email protected]:vikpe/python-package-starter.git [PACKAGE_NAME] cd [PACKAGE NAME]- Create a virtual env:
pyenv virtualenv 3.8.0 foo38 - Activate virtual env:
pyenv activate foo38 - Install poetry:
pip install poetry - Install dependencies:
poetry install - Edit
pyproject.toml, update project name, description and author and any other settings you like.
| Command | Description |
|---|---|
poetry add [package] |
Add package to dependencies. |
poetry add -D [package] |
Add package to dev dependencies. |
poetry run pytest |
Run tests in local Python version. |
poetry run ptw tests foo --clear |
Watch for file changes and run tests in local Python version. |
poetry run tox |
Run tests in all Python versions defined in tox.ini. |
poetry run black . |
Run black code formatter. |
poetry build |
Build sdist and wheel to /dist. |
poetry publish |
Publish package to PyPi. |
Tests are run whenever there is a commit, see .github/workflows/test.yml for details.
Enable code coverage reporting to Codecov by creating a secret with name CODECOV_TOKEN in your repository settings (Settings -> Secrets -> New sectret) and value set to the token created by Codecov.