This is a modern Cookiecutter template that can be used to initiate a Python project with all the necessary tools for development, testing, and deployment. It supports the following features:
- Poetry for dependency management
- CI/CD with GitHub Actions
- Pre-commit hooks with pre-commit
- Code quality with ruff, mypy or pyright, deptry and prettier
- Publishing to PyPI or Artifactory by creating a new release on GitHub
- Testing and coverage with pytest and codecov
- Documentation with MkDocs
- Compatibility testing for multiple versions of Python with Tox
- Containerization with Docker
- Development environment with VSCode devcontainers
Documentation - Example - PyPI
Quickstart
On your local machine, navigate to the directory in which you want to create a project directory, and run the following two commands:
pip install cookiecutter-poetry
ccp
Alternatively, install cookiecutter and directly pass the URL to this
Github repository to the cookiecutter command:
pip install cookiecutter
cookiecutter https://github.com/fpgmaas/cookiecutter-poetry.git
Create a repository on GitHub, and then run the following commands, replacing <project-name>, with the name that you gave the Github repository and
<github_author_handle> with your Github username.
cd <project_name>
git init -b main
git add .
git commit -m "Init commit"
git remote add origin git@github.com:<github_author_handle>/<project_name>.git
git push -u origin main
Finally, install the environment and the pre-commit hooks with
make install
You are now ready to start development on your project! The CI/CD pipeline will be triggered when you open a pull request, merge to main, or when you create a new release.
To finalize the set-up for publishing to PyPI or Artifactory, see here. For activating the automatic documentation with MkDocs, see here. To enable the code coverage reports, see here.
Acknowledgements
This project is partially based on Audrey Feldroy's's great cookiecutter-pypackage repository.
Metadata
Release files for cookiecutter-poetry 0.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| cookiecutter_poetry-0.8.0.tar.gz | 17.6 kB | Without provenance | Details for cookiecutter_poetry-0.8.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| cookiecutter_poetry-0.8.0-py3-none-any.whl | Python 3 | none | any | Details for cookiecutter_poetry-0.8.0-py3-none-any.whl |
Total release size: 42.0 kB
Security for cookiecutter-poetry 0.8.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.