Generated Project Structure Reference¶
The file tree produced by copier-py with all options enabled. Files marked as conditional are only included based on configuration.
project-root/
├── .copier-answers.yml
├── .envrc # (conditional: should_use_direnv)
├── .github/
│ ├── dependabot.yml # (conditional: should_install_github_dependabot)
│ ├── labeler.yml # (conditional: should_install_github_actions)
│ ├── release-drafter.yml # (conditional: should_install_github_actions)
│ └── workflows/ # (conditional: should_install_github_actions)
│ ├── auto-approve-merge-dependabot.yml
│ ├── ci.yml
│ ├── codeql.yml
│ ├── commitlint.yml
│ ├── docs.yml
│ ├── hadolint.yml
│ ├── pr-labeler.yml
│ ├── pr-size-labeling.yml
│ ├── publish.yml
│ ├── release-drafter.yml
│ └── trufflehog.yml
├── .gitignore
├── .konchrc
├── .pre-commit-config.yaml
├── .secrets.baseline
├── AUTHORS.rst # (conditional: should_create_author_files)
├── Dockerfile
├── Justfile
├── LICENSE
├── README.md
├── commitlint.config.js
├── docs/
│ ├── Makefile
│ ├── _static/
│ ├── conf.py
│ ├── getting_started/
│ │ └── getting_started.rst
│ ├── index.rst
│ ├── make.bat
│ ├── roadmap/
│ │ └── roadmap.rst
│ ├── todo/
│ │ └── todo.rst
│ └── usage/
│ └── usage.rst
├── pyproject.toml
├── src/
│ └── {package_name}/
│ └── __init__.py
├── tests/
│ ├── conftest.py
│ └── test_{package_name}.py
└── tox.ini
File descriptions¶
Root files¶
File |
Description |
|---|---|
|
Stores answers from copier generation. Used by |
|
direnv configuration with |
|
Standard Python gitignore with additional entries for tox, coverage, and docs artifacts. |
|
konch shell configuration with IPython support. |
|
Pre-commit hook configuration including ruff, mypy, bashate, commitlint, detect-secrets, typos, and deptry. |
|
Baseline file for detect-secrets to track known/allowed secrets. |
|
Project authors list. |
|
Commitlint configuration enforcing Conventional Commits. |
|
Multi-stage Docker build with development, testing, and production stages. Final stage runs as a non-root user. |
|
Task runner commands wrapping uv, tox, and sphinx operations. Run |
|
Project license file. |
|
Project documentation with badges, features, getting started, and usage sections. |
|
Project metadata, dependencies, and tool configuration (ruff, mypy, pytest, coverage). |
|
Tox configuration defining test, coverage, lint, and docs environments. |
Source code¶
Path |
Description |
|---|---|
|
Package source directory using src layout. |
|
Package init with |
Tests¶
Path |
Description |
|---|---|
|
Shared pytest fixtures. |
|
Starter test verifying the package version. |
Documentation¶
Path |
Description |
|---|---|
|
Sphinx configuration with selected theme and MyST parser. |
|
Documentation root page with toctree. |
|
Getting started documentation section. |
|
Usage documentation section. |
|
Roadmap documentation section. |
|
TODO tracking section. |
GitHub configuration¶
Path |
Description |
|---|---|
|
Dependabot configuration for pip and GitHub Actions dependency updates. |
|
PR labeler rules mapping file paths to labels. |
|
Release drafter configuration for automated release notes. |
GitHub Actions workflows¶
Workflow |
Trigger |
Description |
|---|---|---|
|
Push, PR |
Runs tests across Python version matrix, linting, and type checking. |
|
Push to main, release |
Builds package and publishes to configured destinations. |
|
Push to main, weekly |
CodeQL security analysis. |
|
Push, PR |
Dockerfile linting. |
|
PR |
Validates commit messages against Conventional Commits. |
|
Push, PR |
Scans for leaked secrets. |
|
Push to main, release |
Builds and publishes Sphinx documentation to GitHub Pages. |
|
Push to main |
Drafts release notes from merged PRs. |
|
PR |
Adds size labels (XS, S, M, L, XL) to PRs. |
|
PR |
Adds labels based on file paths changed. |
|
PR |
Auto-approves and merges minor/patch Dependabot PRs. |