Skip to content

jwiede/cookiecutter-modern-pypackage

 
 

Repository files navigation

Cookiecutter Modern PyPackage 🐍📦

GitHub release (latest SemVer) Python Version Tests Read the Docs License

Black pre-commit Contributor Covenant

Cookiecutter 🍪 template for a modern Python package 🐍📦.

🚀 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):

⚡️ 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:

About

Cookiecutter template for a modern Python package.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%