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

.copier-answers.yml

Stores answers from copier generation. Used by copier update to remember previous choices.

.envrc

direnv configuration with use uv layout for automatic virtual environment activation.

.gitignore

Standard Python gitignore with additional entries for tox, coverage, and docs artifacts.

.konchrc

konch shell configuration with IPython support.

.pre-commit-config.yaml

Pre-commit hook configuration including ruff, mypy, bashate, commitlint, detect-secrets, typos, and deptry.

.secrets.baseline

Baseline file for detect-secrets to track known/allowed secrets.

AUTHORS.rst

Project authors list.

commitlint.config.js

Commitlint configuration enforcing Conventional Commits.

Dockerfile

Multi-stage Docker build with development, testing, and production stages. Final stage runs as a non-root user.

Justfile

Task runner commands wrapping uv, tox, and sphinx operations. Run just to see available commands.

LICENSE

Project license file.

README.md

Project documentation with badges, features, getting started, and usage sections.

pyproject.toml

Project metadata, dependencies, and tool configuration (ruff, mypy, pytest, coverage).

tox.ini

Tox configuration defining test, coverage, lint, and docs environments.

Source code

Path

Description

src/{package_name}/

Package source directory using src layout.

src/{package_name}/__init__.py

Package init with __version__ set to the configured version.

Tests

Path

Description

tests/conftest.py

Shared pytest fixtures.

tests/test_{package_name}.py

Starter test verifying the package version.

Documentation

Path

Description

docs/conf.py

Sphinx configuration with selected theme and MyST parser.

docs/index.rst

Documentation root page with toctree.

docs/getting_started/

Getting started documentation section.

docs/usage/

Usage documentation section.

docs/roadmap/

Roadmap documentation section.

docs/todo/

TODO tracking section.

GitHub configuration

Path

Description

.github/dependabot.yml

Dependabot configuration for pip and GitHub Actions dependency updates.

.github/labeler.yml

PR labeler rules mapping file paths to labels.

.github/release-drafter.yml

Release drafter configuration for automated release notes.

GitHub Actions workflows

Workflow

Trigger

Description

ci.yml

Push, PR

Runs tests across Python version matrix, linting, and type checking.

publish.yml

Push to main, release

Builds package and publishes to configured destinations.

codeql.yml

Push to main, weekly

CodeQL security analysis.

hadolint.yml

Push, PR

Dockerfile linting.

commitlint.yml

PR

Validates commit messages against Conventional Commits.

trufflehog.yml

Push, PR

Scans for leaked secrets.

docs.yml

Push to main, release

Builds and publishes Sphinx documentation to GitHub Pages.

release-drafter.yml

Push to main

Drafts release notes from merged PRs.

pr-size-labeling.yml

PR

Adds size labels (XS, S, M, L, XL) to PRs.

pr-labeler.yml

PR

Adds labels based on file paths changed.

auto-approve-merge-dependabot.yml

PR

Auto-approves and merges minor/patch Dependabot PRs.