This is a Cookiecutter template for generating Python projects with integrated best practices for code quality, testing, security, documentation, and CI/CD.
- Review
README.mdfor template overview and features - Check
AGENTS.mdin generated projects for project-specific instructions - Understand this is a dynamic generator, not a static project
- cookiecutter.json: Template variables (metadata, Python version, optional features)
- hooks/post_gen_project.py: Removes disabled optional folders post-generation
- Makefile: Workflow commands (
setup,lint,code-check,test,pipeline) - .github/actions/: Reusable GitHub Actions for CI/CD
- Files use Jinja2 syntax:
{{ cookiecutter.project_name }} - Preserve template delimiters and conditional blocks when modifying
- Invalid syntax breaks project generation
Run make pipeline to execute:
- Linting (Ruff, isort)
- Type checking (Mypy)
- Complexity analysis (Complexipy)
- Security scanning (Bandit)
- Tests (Pytest)
- This generates projects; each instance differs based on
cookiecutter.jsonchoices - Optional features:
.devcontainer/,.vscode/,notebooks/,prompts/ - Always validate changes with
make pipeline - Never break Jinja2 template syntax