Skip to main content

snickerdoodle

snickerdoodle cookie logo

Status PyPI Latest Release GitHub Latest Release Project Stability
Documentation Hosted By
Compatibility Compatible Python Versions

What is snickerdoodle?

snickerdoodle is an easy-to-use, general-purpose cookiecutter template for Python projects utilizing modern tools and best practices. To see an demo repository using this template, check out snickerdoodle_demo.

Why use snickerdoodle?

In contrast to highly-opinated templates, snickerdoodle has limited requirements with powerful options that users can opt into in the cookiecutter questionnaire. If you want snickerdoodle to support other options, please make a feature request or contribute.

  • Built-in:
    • Dependency Management: Dependency Manager
    • Linting: Ruff
    • Testing: Testing
    • Templater: cookiecutter
  • Options Supported:
    • Automated Hooks: Pre-commit
    • CI/CD: CI
    • Code Coverage: Coverage uploaded with every push and pull request, with a coverage report page in the documentation (must have the Codecov GitHub App installed on the named GitHub account)
    • Dependency Updater: Dependency Maintainer
    • Different Badge Styles:
      • flat style
      • flat square
      • for-the-badge style
      • plastic style
      • social style
    • Documentation: Documentation Tool on Documentation Host automatically built and deployed with every commit
    • Publishing:
      • PyPI with GitHub Actions using publish.yml
      • Repo Host automatically with any commit whose message has a line with "v" and a version number (e.g., "v0.2.3")
    • Repository Initialization: Repo Host with an initial commit (must have Repo Host installed with token access)
    • Template Updates: cruft to pull later snickerdoodle improvements into your project
    • Virtual Environment Creation: Virtural Environment Manager

Getting started

Setup

If you are new to cookiecutter or simply want to guarantee that the created repository works as intended, follow the instructions in the snickerdoodle tutorial.

If you are familiar with cookiecutter templates, you can go about the normal construction process. However, if you do not select the optional automatic setup features in the questionnaire, you should follow the instructions for manually setting up your virtual environment and deploying your documentation in the snickerdoodle tutorial. It is especially important to follow the document deployment process for your initial deployment - after that GitHub Actions will automatically update and redeploy the documentation (and you need not use the manual process again).

Usage

After your repository is created, you can start coding right away. Every push to main and every pull request will run any tests in the "tests" folder, upload test coverage to Codecov, and apply ruff for linting. Pushes to main also deploy documentation to GitHub Pages. For more information about the following topics, just click on the corresponding hyperlink.

Contributing

Contributors are always welcome and should find snickerdoodle easy to work with. The template is highly documented so that users and developers can adapt or extend snickerdoodle to work with their projects. So, forking and creating different template spins is encouraged. If you want to contribute directly, feel free to grab an issue to work on or make a suggested improvement. If you wish to contribute, please read the Contribution Guide and Code of Conduct.

Similar Projects

These are other cookiecutter templates using uv as their dependency manager:

  • cookiecutter-uv-hypermodern-python: an opinionated template that uses, among other tools, sphinx, GitHub Actions, nox, mypy, typeguard, Prettier, Click, and ruff. If you do not mind those choices and wanted a modern, maintained template, this is the one to use.
  • cookiecutter-uv: uses ruff, mypy, tox, mkdocs, and deptry.
  • ultraviolet: a basic template that requires Homebrew.

License

License

Metadata

Release files for snickerdoodle 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for snickerdoodle 0.5.0
File Size Uploaded Provenance Actions
snickerdoodle-0.5.0.tar.gz 827.2 kB Without provenance Details for snickerdoodle-0.5.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for snickerdoodle 0.5.0
File Interpreter ABI Platform Actions
snickerdoodle-0.5.0-py3-none-any.whl Python 3 none any Details for snickerdoodle-0.5.0-py3-none-any.whl

Total release size: 831.8 kB

Release files / snickerdoodle-0.5.0.tar.gz

Download URL snickerdoodle-0.5.0.tar.gz
Size 827.2 kB
Tags Source
SHA-256 checksum
How to use checksums
80d2caade4ad7d87b85728571415fa234843c1cf37f9240593c0fab84c7486a1
BLAKE2b-256 checksum
How to use checksums
535d426cb5fc16f1922e283a3023c0cb6a0cdcd23268859d2571d3c834ce8f14
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / snickerdoodle-0.5.0-py3-none-any.whl

Download URL snickerdoodle-0.5.0-py3-none-any.whl
Size 4.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
89c0e82a90afd06fae1435c2b84161f9d14e3a05608c790ab3ba31ea2f18d867
BLAKE2b-256 checksum
How to use checksums
122237e10ff814cef445af29c555ecda1beab388b173639a40f4d874bf2f69ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for snickerdoodle 0.5.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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page