An opinionated template for Python Packages

DOI Copier GitHub License GitHub Release Test Build website CodeQL pre-commit.ci status lifecycle Project Status: Active – The project has reached a stable, usable state and is being actively developed.

This is a template for creating a new Python package following the Seedcase structure. Use this template to quickly get started with a new Python package with all the necessary files and configurations in place, including for developing the package.

Features

  • Use uv to manage the Python package and for project management.
  • Includes a justfile for managing common tasks like building the website and running checks.
  • Uses typos to check for common spelling mistakes.
  • Code formatting and linting with ruff.
  • Run checks with pre-commit hooks to ensure consistent formatting and style across the project. It includes checks for credentials, typos, and file formatting.
  • GitHub workflows for automatically adding Pull Requests and Issues to a project board.
  • Pull Request template for easy creation of new Pull Requests.
  • Includes GitHub Actions for continuous integration, testing, and delivery for running checks, formatting, releasing, and building the Python package and associated documentation.
  • Pull Request template for easy creation of new Pull Requests.
  • VS Code settings commonly used by contributors working in VS Code.
  • Includes an EditorConfig file to ensure consistent formatting across different editors.
  • CITATION.cff file for citation information.
  • Python package folder and file structure that takes advantage of Python’s packaging ecosystem.
  • pyproject.toml for tracking dependencies and project metadata.
  • Uses Quarto Markdown for the website content, allowing for easy integration of code, text, and figures.
  • Uses Commitizen to check commit messages and automatically create the changelog.
  • Automated Git tagging and GitHub releases with commitizen that are based on messages following Conventional Commits.
  • Uses a CC-BY-4.0 license for the website content.
  • Uses an MIT license for the code.
  • Optionally uses the seedcase-theme Quarto extension for a standard appearance across websites.
  • Uses Netlify for hosting the website.
  • Includes a GoatCounter file for website visitor tracking, which is privacy-friendly and does not use cookies. That means it doesn’t need a GDPR notice as no personal data is collected.

Want to contribute?

We would love your feedback or contributions! Head over to our GitHub repository to share your ideas or contribute code. Your input makes us better!

Contributors

The following people have contributed to this project by submitting pull requests 🎉

@lwjohnst86, @martonvago, @signekb

Licensing

This project is licensed under the MIT License.