Cookiecutter Modern PyPackage ππ¦ΒΆ
Cookiecutter πͺ template for a modern Python package ππ¦.
GitHub repo: https://github.com/fedejaure/cookiecutter-modern-pypackage.git
Documentation: https://cookiecutter-modern-pypackage.readthedocs.io
Free software: MIT license
π FeaturesΒΆ
Dependency tracking: π¦ Utilizes Poetry for efficient package management.
Testing setup: π§ͺ Includes Pytest for comprehensive and reliable testing.
Continuous Integration: π Github Actions integration for seamless CI testing.
Linting: π§Ή Enhanced code quality with Ruff.
Docstring: π Follows the Google Python Style Guide for clear and consistent documentation.
Static type checking: π Ensured by Mypy.
Formatting: β¨ Consistent code formatting with Black and Isort.
Security checks: π Uses Safety to identify and address known vulnerabilities.
Git hooks: π£ Managed by pre-commit for streamlined development workflows.
Development tasks CLI: π οΈ All-in-one Python CLI provided by invoke.
Multiple Python environments testing: π₯ Supported by Nox.
Documentation: π Utilizes Sphinx for clear and comprehensive documentation, ready for Read the Docs.
Command line interface: π» Optional integration with Typer.
Automated dependency updates: π€ Enabled by Dependabot.
Coverage reports: π Integrated with Codecov.
Automated releases: π’ Push a new tag to trigger releases to PyPI and TestPyPI.
GitHub community health files (optional):
Code of Condunct π€
Contributing π
Security π
Code Owners π©βπΌ
Funding π°
Citation π
β‘οΈ QuickstartΒΆ
Get started with your modern Python package in just a few steps:
1. Install CookiecutterΒΆ
If you havenβt installed Cookiecutter yet, make sure to have version 1.4.0 or higher:
pip install -U cookiecutter
2. Generate your Python PackageΒΆ
Run Cookiecutter using the latest release
cookiecutter gh:fedejaure/cookiecutter-modern-pypackage --checkout v3.0.1
3. Set up Your ProjectΒΆ
Follow these steps to complete the setup:
Create a new GitHub repository and push your generated project there.
Install the development requirements into a virtual environment:
poetry install
Install pre-commit hooks:
poetry run inv install-hooks
Configure Codecov repository settings. (Codecov App,
CODECOV_TOKEN
)Add your repository to your Read the Docs account and enable the Read the Docs service hook.
Configure PyPI and TestPyPI tokens. (
PYPI_TOKEN
,TEST_PYPI_TOKEN
)Release your package by pushing a new tag.
[!TIP] For more details, see the tutorial.
π CreditsΒΆ
This cookiecutter was built for learning purpose and inspired by:
audreyr/cookiecutter-pypackage: Cookiecutter template for a Python package.
briggySmalls/cookiecutter-pypackage: A fork from audreyr/cookiecutter-pypackage using Poetry for package management, with linting, formatting and more.
hypermodern-python: Hypermodern Python article series.