A highly opinionated Python template built for Human π€ and AI π€ devs, featuring AI-friendly configurations for Cursor, CodeRabbit, and future AI tools. Your AI collegues deserve better πͺ
- Modern Python 3.12 setup
- Poetry for dependency management
- Ruff for lightning-fast linting
- Pytest with coverage reporting
- Deptry for dependency analysis
- GitHub Actions CI pipeline
- Pre-configured settings for:
- Type checking with mypy
- Code formatting
- Git ignore patterns
- Dependency analysis with Deptry
- Cursor prompt
- CodeRabbit AI code review
cookiecutter-python-template/
βββ assets/
β βββ logo.png
βββ cookiecutter.json
βββ hooks/
β βββ post_gen_project.py
βββ {{cookiecutter.project_slug}}/
βββ .github/
β βββ workflows/
β βββ ci.yml
βββ {{cookiecutter.project_slug}}/
β βββ __init__.py
β βββ settings/
β β βββ __init__.py
β β βββ settings.py
β βββ main.py
βββ tests/
β βββ __init__.py
β βββ test_main.py
βββ .gitignore
βββ .cursorrules
βββ .coderabbit.yaml
βββ makefile
βββ pyproject.toml
βββ README.md
- First, ensure you have cookiecutter installed:
pip install -U cookiecutter
-
Create a new repository on GitHub (or other git provider)
-
Generate a new Python project:
cookiecutter https://github.com/rrozb/pycutter.git
- Set up remote repository:
git remote add origin <your-repo-url>
git branch -M main
- Commit and push:
git add .
git commit -m "Initial commit"
git push origin main
- Start coding π» & follow the new project's README.md.
- Python 3.12+
- Cookiecutter
- Poetry (will be installed automatically)
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a new branch (
git checkout -b feature/amazing-feature
) - Make your changes
- Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Or just open an issue π
- Figure out how to improve repo for Devin
- Add a guide for AI assisted development.
- Add documentation support.
- Built with Cookiecutter
- Coded with Cursor and Claude
- Logo made with Gemini 2