Skip to content

Cookiecutter template for a cutting-edge Python package: pdm, ruff, mypy, GitHub Actions and more!

License

Notifications You must be signed in to change notification settings

Aviksaikat/cookiecutter-pdm-pypackage

Repository files navigation

Cookiecutter Pdm PyPackage

Cookiecutter template for a cutting-edge Python package: pdm, ruff, mypy, GitHub Actions and more!

Features

  • Lightweight starter
  • PDM package management
  • Linting and formatting with ruff
  • Type checking with mypy
  • Check unused, missing and transitive dependencies with deptry
  • Unit tests with pytest with optional asyncio setup.
  • Automate and standardize testing with tox
  • Documentation with Material for MkDocs and docstring reference support with mkdocstrings.
  • Ready-to-use GitHub Actions pipelines

Quickstart

Generate the project:

cookiecutter https://github.com/Aviksaikat/cookiecutter-pdm-pypackage

The generator will automatically call pdm install at the end.

Then, for the GitHub Actions pipelines to work correctly, you should:

  • Enable the GitHub repository in Codecov.
  • Set CODECOV_TOKEN in your GitHub repository secrets. You can find in the Codecov settings of the corresponding project.
  • Enable GitHub Pages using the GitHub Actions source.
  • Option to publish to Test PyPI for testing.
  • Configure the Trusted Publisher method on PyPI: it's a modern and secure method to push your package to PyPI.

With cruft

cruft is a layer above Cookiecutter allowing you to update your project from the template after it has been generated.

cruft create https://github.com/Aviksaikat/cookiecutter-pdm-pypackage

Demo

License

This project is licensed under the terms of the MIT license.