This release is a pre-release and may not be stable for production use.
copiertv
📋 A generic validator for Copier templates. Instantiates templates with various preset answer files (variants) and runs configurable validation commands against the generated projects.
Key Features
Configurable validation commands: Define validation commands in a TOML configuration file. The tool is agnostic about what gets validated.
Configurable answers directory: Specify where variant answer files live. No hardcoded convention imposed.
Placeholder interpolation: Use {template_directory}, {project_directory}, {temporary_directory}, and {variant} in command args and working directories.
Copier Python API: Uses copier.run_copy directly instead of shelling out to a subprocess.
Configuration hierarchy: CLI arguments, per-project config, and per-user config (via emcd-appcore) with clear precedence.
Structured error handling: Domain-specific exceptions with Markdown rendering for terminal display.
Installation 📦
Method: Install Executable Script
Install via the uv tool command:
uv tool install copiertv
or, run directly with uvx:
uvx copiertv
Or, install via pipx:
pipx install copiertv
Method: Install Python Package
Install via uv pip command:
uv pip install copiertv
Or, install via pip:
pip install copiertv
Usage
Survey Variants
List available template variants (reads answers directory from configuration):
copiertv survey
Validate a Variant
Validate a template variant:
copiertv validate default
Preserve the generated project for inspection:
copiertv validate --preserve default
Configuration File
Create .auxiliary/configuration/copiertv/general.toml in your template repository:
[answers] directory = "data/copier" [[commands]] args = ["hatch", "env", "prune"] [[commands]] args = ["hatch", "--env", "develop", "run", "make-all"] [options] preserve = false unsafe = false
Commands support placeholder interpolation for paths:
[[commands]]
args = ["make", "check", "--source", "{project_directory}"]
cwd = "{template_directory}"
Available placeholders: {template_directory}, {project_directory}, {temporary_directory}, {variant}.
Contribution 🤝
Contribution to this project is welcome! However, it must follow the code of conduct for the project.
Please file bug reports and feature requests in the issue tracker or submit pull requests to improve the source code or documentation.
For development guidance and standards, please see the development guide.
Additional Indicia
Metadata
Release files for copiertv 1.0a2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| copiertv-1.0a2.tar.gz | 18.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| copiertv-1.0a2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.7 kB
Release files / copiertv-1.0a2.tar.gz
| Download URL | copiertv-1.0a2.tar.gz |
|---|---|
| Size | 18.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
20aaf37278888fc4e5e491c47eb5dc8a0641e35242e0042ffffdc95ce8f46050
|
|
BLAKE2b-256 checksum How to use checksums |
a07397c3c7982b1dfc610b842a3080bcfcadff08672fe7457e363fce0092cad8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 10, 2026.
Transparency logRelease files / copiertv-1.0a2-py3-none-any.whl
| Download URL | copiertv-1.0a2-py3-none-any.whl |
|---|---|
| Size | 22.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
23185bc1e35bf1db2f84cf18939a65fa6e203a52f75631139ecab40c6a2ad89a
|
|
BLAKE2b-256 checksum How to use checksums |
e80ca53d1feb78bf2125b0785db9a1eae4272805398a993c3b168e16116dd774
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 10, 2026.
Transparency log