/pattern

Pattern - A modern, opinionated, cookiecutter template for your next Python project.

Primary LanguagePythonMIT LicenseMIT

๐Ÿ Pattern - Modern Python Cookiecutter Project

Pattern is a modern, opinionated, cookiecutter template for your next Python project. Included is modern tooling and dependencies with sensible rules and settings. Also included is all the boilerplate documentation, GitHub actions, and project extras you would need to create good foundation for your next python project.

Setup New Project

Note

Make sure you have UV installed before you start.

Create new project:

uvx cookiecutter gh:wyattferguson/pattern

Alternatively you can use Cruft:

uvx cruft create gh:wyattferguson/pattern

Then just follow the prompts, pick the tools you want to install, and watch the magic happen.

Features

Everything comes pre-configured to work out of the box. On setup you can pick and choose what extras to install or to leave behind.

  • ๐Ÿ“ฆ UV - Package and project manager
  • ๐Ÿฆ€ Ruff - Linter and code formatter.
  • ๐Ÿ› Typechecking with Ty or Mypy.
  • ๐Ÿงช Pytest - Testing
  • ๐Ÿ”ญ Coverage - Test coverage.
  • ๐Ÿง Nox - Testing in multiple Python environments.
  • ๐Ÿ›ฉ๏ธ Taskipy - Task runner for CLI shortcuts.
  • ๐Ÿ“ผ Portray - Doc generation and Github Pages deployment.
  • ๐Ÿฅก PyPI package publishing.
  • ๐Ÿน GitHub Templates for documentation, feature requests, general reports, bug reports, and pull requests.
  • ๐ŸŒต Pre-commit - Linting, formatting, and common bug checks on Git commits.
  • ๐Ÿ“‘ Changelog, Code of Conduct, Contributing Guide, and Citation templates.
  • ๐Ÿ‹ Docker support including extensive dockerignore file.
  • ๐Ÿธ VSCode - Settings and extension integrations.
  • ๐Ÿค– Dependabot - Dependency scanning for new versions and security alerts.
  • ๐Ÿง™โ€โ™‚๏ธ Semantic Pull Requests - Enforce pull request titles
  • ๐Ÿšš Cruft Support - Automatic template updates and validation.

Alternative Cookiecutter Projects

If this cookiecutter isn't your cup of tea, you might like one of these alternatives.

Contributing

Contributions or suggestions are more then welcome! If you'd like to enhance to this project, please submit a pull request. For major changes, please open an issue first to discuss what you would like to change.

View our full documentation.

License

MIT License

Contact + Support

Created by Wyatt Ferguson

For any questions or comments heres how you can reach me:

:octocat: Follow me on Github @wyattferguson

๐Ÿ“ฌ Email me at wyattxdev@duck.com

๐Ÿน Follow on BlueSky @wyattf