copier-python 0.16.0__tar.gz → 0.16.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {copier_python-0.16.0 → copier_python-0.16.1}/PKG-INFO +1 -1
- copier_python-0.16.1/pyproject.toml +139 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/__snapshots__/test_mise_toml.ambr +16 -16
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/__snapshots__/test_workflows.ambr +100 -20
- copier_python-0.16.0/pyproject.toml +0 -147
- {copier_python-0.16.0 → copier_python-0.16.1}/.gitignore +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/AGENTS.md +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/CONTRIBUTING.md +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/LICENSE +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/README.md +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/copier_python/__init__.py +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/copier_python/__main__.py +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/copier_python/py.typed +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/copier_python/repo.py +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/copier_python/update.py +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/docs/contributing.md +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/docs/development/requirements.md +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/docs/development/updates.md +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/docs/development/workflow.md +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/docs/index.md +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/docs/license.md +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/docs/project-creation.md +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/docs/project-development.md +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/docs/project-release.md +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/docs/project-setup.md +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/docs/project-updates.md +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/docs/releasing.md +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/docs/requirements.md +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/docs/setup.md +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/__init__.py +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/conftest.py +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/__init__.py +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/__snapshots__/test_agents.ambr +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/__snapshots__/test_compose.ambr +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/__snapshots__/test_contributing.ambr +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/__snapshots__/test_dockerfile.ambr +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/__snapshots__/test_docs.ambr +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/__snapshots__/test_license.ambr +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/__snapshots__/test_pyproject.ambr +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/__snapshots__/test_readme.ambr +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/__snapshots__/test_zensical.ambr +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/test_agents.py +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/test_compose.py +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/test_contributing.py +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/test_dockerfile.py +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/test_docs.py +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/test_license.py +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/test_mise_toml.py +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/test_pyproject.py +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/test_readme.py +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/test_structure.py +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/test_template.py +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/test_workflows.py +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/template/test_zensical.py +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/test_update.py +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/test_version.py +0 -0
- {copier_python-0.16.0 → copier_python-0.16.1}/tests/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: copier-python
|
|
3
|
-
Version: 0.16.
|
|
3
|
+
Version: 0.16.1
|
|
4
4
|
Summary: Copier template for Python projects with modern tooling
|
|
5
5
|
Project-URL: Homepage, https://smkent.github.io/copier-python
|
|
6
6
|
Project-URL: Repository, https://github.com/smkent/copier-python
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling", "uv-dynamic-versioning"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "copier-python"
|
|
7
|
+
dynamic = ["version"]
|
|
8
|
+
description = "Copier template for Python projects with modern tooling"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = "MIT"
|
|
11
|
+
license-files = ["LICENSE"]
|
|
12
|
+
requires-python = ">=3.10"
|
|
13
|
+
authors = [{ name = "Stephen Kent", email = "smkent@smkent.net" }]
|
|
14
|
+
classifiers = [
|
|
15
|
+
"Development Status :: 3 - Alpha",
|
|
16
|
+
"Intended Audience :: Developers",
|
|
17
|
+
"Programming Language :: Python :: 3",
|
|
18
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
19
|
+
"Programming Language :: Python :: 3.10",
|
|
20
|
+
"Programming Language :: Python :: 3.11",
|
|
21
|
+
"Programming Language :: Python :: 3.12",
|
|
22
|
+
"Programming Language :: Python :: 3.13",
|
|
23
|
+
"Programming Language :: Python :: 3.14",
|
|
24
|
+
"Topic :: Documentation",
|
|
25
|
+
"Topic :: Software Development",
|
|
26
|
+
"Topic :: Utilities",
|
|
27
|
+
"Typing :: Typed",
|
|
28
|
+
]
|
|
29
|
+
keywords = []
|
|
30
|
+
dependencies = [
|
|
31
|
+
"pyyaml>=6",
|
|
32
|
+
"rich>=15",
|
|
33
|
+
"typer>=0.9",
|
|
34
|
+
"typing_extensions>=4.1; python_version < '3.12'",
|
|
35
|
+
]
|
|
36
|
+
|
|
37
|
+
[project.scripts]
|
|
38
|
+
copier-python = "copier_python.__main__:main"
|
|
39
|
+
|
|
40
|
+
[project.urls]
|
|
41
|
+
Homepage = "https://smkent.github.io/copier-python"
|
|
42
|
+
Repository = "https://github.com/smkent/copier-python"
|
|
43
|
+
Issues = "https://github.com/smkent/copier-python/issues"
|
|
44
|
+
|
|
45
|
+
[dependency-groups]
|
|
46
|
+
dev = [
|
|
47
|
+
"bump-my-version>=1.3.0",
|
|
48
|
+
"copier>=9",
|
|
49
|
+
"poethepoet>=0.46",
|
|
50
|
+
"pysentry-rs>=0.4",
|
|
51
|
+
"pytest>=9",
|
|
52
|
+
"pytest-cov>=7",
|
|
53
|
+
"pytest-sugar>=1",
|
|
54
|
+
"pytest-xdist>=3",
|
|
55
|
+
"ruff>=0.15",
|
|
56
|
+
"syrupy>=5",
|
|
57
|
+
"ty>=0.0.49",
|
|
58
|
+
"typing-extensions>=4",
|
|
59
|
+
]
|
|
60
|
+
docs = ["zensical>=0.0.45"]
|
|
61
|
+
|
|
62
|
+
[tool.bumpversion]
|
|
63
|
+
commit = false
|
|
64
|
+
tag = true
|
|
65
|
+
tag_name = "v{new_version}"
|
|
66
|
+
tag_message = ""
|
|
67
|
+
push = true
|
|
68
|
+
|
|
69
|
+
[tool.hatch.build.targets.sdist]
|
|
70
|
+
include = ["/copier_python", "/tests", "*.md", "LICENSE"]
|
|
71
|
+
|
|
72
|
+
[tool.hatch.version]
|
|
73
|
+
source = "uv-dynamic-versioning"
|
|
74
|
+
|
|
75
|
+
[tool.pytest]
|
|
76
|
+
addopts = [
|
|
77
|
+
"-ra",
|
|
78
|
+
"--cov=copier_python",
|
|
79
|
+
"--strict-config",
|
|
80
|
+
"--strict-markers",
|
|
81
|
+
"--numprocesses",
|
|
82
|
+
"auto",
|
|
83
|
+
]
|
|
84
|
+
testpaths = ["tests"]
|
|
85
|
+
|
|
86
|
+
[tool.coverage.run]
|
|
87
|
+
source = ["copier_python"]
|
|
88
|
+
branch = true
|
|
89
|
+
|
|
90
|
+
[tool.coverage.report]
|
|
91
|
+
show_missing = true
|
|
92
|
+
skip_covered = true
|
|
93
|
+
exclude_lines = ["pragma: no cover", "if TYPE_CHECKING:", "@abstractmethod"]
|
|
94
|
+
|
|
95
|
+
[tool.ruff]
|
|
96
|
+
line-length = 79
|
|
97
|
+
output-format = "concise"
|
|
98
|
+
target-version = "py310"
|
|
99
|
+
|
|
100
|
+
[tool.ruff.lint]
|
|
101
|
+
select = ["ALL"]
|
|
102
|
+
ignore = [
|
|
103
|
+
"ANN401", # Dynamically typed expressions (typing.Any) are disallowed
|
|
104
|
+
"COM812", # Trailing comma missing
|
|
105
|
+
"CPY001", # Missing copyright notice at top of file
|
|
106
|
+
"D1", # Missing docstring presence rules
|
|
107
|
+
"EM", # flake8-errmsg
|
|
108
|
+
"G004", # Logging statement uses f-string
|
|
109
|
+
"PLR", # pylint Refactor
|
|
110
|
+
"S607", # Starting a process with a partial executable path
|
|
111
|
+
"TD", # flake8-todos
|
|
112
|
+
"TRY003", # Avoid specifying long messages outside the exception class
|
|
113
|
+
]
|
|
114
|
+
|
|
115
|
+
[tool.ruff.lint.isort]
|
|
116
|
+
known-first-party = ["copier_python"]
|
|
117
|
+
|
|
118
|
+
[tool.ruff.lint.per-file-ignores]
|
|
119
|
+
"tests/**/*.py" = [
|
|
120
|
+
"ARG", # flake8-unused-arguments
|
|
121
|
+
"S101", # Use of assert detected
|
|
122
|
+
]
|
|
123
|
+
|
|
124
|
+
[tool.ruff.lint.pydocstyle]
|
|
125
|
+
convention = "google"
|
|
126
|
+
|
|
127
|
+
[tool.ty.src]
|
|
128
|
+
include = ["copier_python/", "tests/"]
|
|
129
|
+
|
|
130
|
+
[tool.ty.terminal]
|
|
131
|
+
error-on-warning = true
|
|
132
|
+
output-format = "concise"
|
|
133
|
+
|
|
134
|
+
[tool.uv]
|
|
135
|
+
default-groups = ["dev", "docs"]
|
|
136
|
+
|
|
137
|
+
[tool.uv-dynamic-versioning]
|
|
138
|
+
pattern = "default"
|
|
139
|
+
fallback-version = "0.0.0"
|
{copier_python-0.16.0 → copier_python-0.16.1}/tests/template/__snapshots__/test_mise_toml.ambr
RENAMED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
[hooks]
|
|
7
7
|
postinstall = [
|
|
8
8
|
"uv sync",
|
|
9
|
-
"[ -d .git ] && prek install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
9
|
+
"[ -d .git ] && prek --quiet install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
10
10
|
]
|
|
11
11
|
|
|
12
12
|
[tools]
|
|
@@ -123,7 +123,7 @@
|
|
|
123
123
|
[hooks]
|
|
124
124
|
postinstall = [
|
|
125
125
|
"uv sync",
|
|
126
|
-
"[ -d .git ] && prek install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
126
|
+
"[ -d .git ] && prek --quiet install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
127
127
|
]
|
|
128
128
|
|
|
129
129
|
[tools]
|
|
@@ -247,7 +247,7 @@
|
|
|
247
247
|
[hooks]
|
|
248
248
|
postinstall = [
|
|
249
249
|
"uv sync",
|
|
250
|
-
"[ -d .git ] && prek install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
250
|
+
"[ -d .git ] && prek --quiet install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
251
251
|
]
|
|
252
252
|
|
|
253
253
|
[tools]
|
|
@@ -350,7 +350,7 @@
|
|
|
350
350
|
[hooks]
|
|
351
351
|
postinstall = [
|
|
352
352
|
"uv sync",
|
|
353
|
-
"[ -d .git ] && prek install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
353
|
+
"[ -d .git ] && prek --quiet install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
354
354
|
]
|
|
355
355
|
|
|
356
356
|
[tools]
|
|
@@ -460,7 +460,7 @@
|
|
|
460
460
|
[hooks]
|
|
461
461
|
postinstall = [
|
|
462
462
|
"uv sync",
|
|
463
|
-
"[ -d .git ] && prek install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
463
|
+
"[ -d .git ] && prek --quiet install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
464
464
|
]
|
|
465
465
|
|
|
466
466
|
[tools]
|
|
@@ -582,7 +582,7 @@
|
|
|
582
582
|
[hooks]
|
|
583
583
|
postinstall = [
|
|
584
584
|
"uv sync",
|
|
585
|
-
"[ -d .git ] && prek install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
585
|
+
"[ -d .git ] && prek --quiet install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
586
586
|
]
|
|
587
587
|
|
|
588
588
|
[tools]
|
|
@@ -711,7 +711,7 @@
|
|
|
711
711
|
[hooks]
|
|
712
712
|
postinstall = [
|
|
713
713
|
"uv sync",
|
|
714
|
-
"[ -d .git ] && prek install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
714
|
+
"[ -d .git ] && prek --quiet install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
715
715
|
]
|
|
716
716
|
|
|
717
717
|
[tools]
|
|
@@ -819,7 +819,7 @@
|
|
|
819
819
|
[hooks]
|
|
820
820
|
postinstall = [
|
|
821
821
|
"uv sync",
|
|
822
|
-
"[ -d .git ] && prek install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
822
|
+
"[ -d .git ] && prek --quiet install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
823
823
|
]
|
|
824
824
|
|
|
825
825
|
[tools]
|
|
@@ -934,7 +934,7 @@
|
|
|
934
934
|
[hooks]
|
|
935
935
|
postinstall = [
|
|
936
936
|
"uv sync",
|
|
937
|
-
"[ -d .git ] && prek install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
937
|
+
"[ -d .git ] && prek --quiet install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
938
938
|
]
|
|
939
939
|
|
|
940
940
|
[tools]
|
|
@@ -1051,7 +1051,7 @@
|
|
|
1051
1051
|
[hooks]
|
|
1052
1052
|
postinstall = [
|
|
1053
1053
|
"uv sync",
|
|
1054
|
-
"[ -d .git ] && prek install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
1054
|
+
"[ -d .git ] && prek --quiet install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
1055
1055
|
]
|
|
1056
1056
|
|
|
1057
1057
|
[tools]
|
|
@@ -1175,7 +1175,7 @@
|
|
|
1175
1175
|
[hooks]
|
|
1176
1176
|
postinstall = [
|
|
1177
1177
|
"uv sync",
|
|
1178
|
-
"[ -d .git ] && prek install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
1178
|
+
"[ -d .git ] && prek --quiet install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
1179
1179
|
]
|
|
1180
1180
|
|
|
1181
1181
|
[tools]
|
|
@@ -1278,7 +1278,7 @@
|
|
|
1278
1278
|
[hooks]
|
|
1279
1279
|
postinstall = [
|
|
1280
1280
|
"uv sync",
|
|
1281
|
-
"[ -d .git ] && prek install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
1281
|
+
"[ -d .git ] && prek --quiet install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
1282
1282
|
]
|
|
1283
1283
|
|
|
1284
1284
|
[tools]
|
|
@@ -1388,7 +1388,7 @@
|
|
|
1388
1388
|
[hooks]
|
|
1389
1389
|
postinstall = [
|
|
1390
1390
|
"uv sync",
|
|
1391
|
-
"[ -d .git ] && prek install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
1391
|
+
"[ -d .git ] && prek --quiet install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
1392
1392
|
]
|
|
1393
1393
|
|
|
1394
1394
|
[tools]
|
|
@@ -1510,7 +1510,7 @@
|
|
|
1510
1510
|
[hooks]
|
|
1511
1511
|
postinstall = [
|
|
1512
1512
|
"uv sync",
|
|
1513
|
-
"[ -d .git ] && prek install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
1513
|
+
"[ -d .git ] && prek --quiet install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
1514
1514
|
]
|
|
1515
1515
|
|
|
1516
1516
|
[tools]
|
|
@@ -1639,7 +1639,7 @@
|
|
|
1639
1639
|
[hooks]
|
|
1640
1640
|
postinstall = [
|
|
1641
1641
|
"uv sync",
|
|
1642
|
-
"[ -d .git ] && prek install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
1642
|
+
"[ -d .git ] && prek --quiet install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
1643
1643
|
]
|
|
1644
1644
|
|
|
1645
1645
|
[tools]
|
|
@@ -1747,7 +1747,7 @@
|
|
|
1747
1747
|
[hooks]
|
|
1748
1748
|
postinstall = [
|
|
1749
1749
|
"uv sync",
|
|
1750
|
-
"[ -d .git ] && prek install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
1750
|
+
"[ -d .git ] && prek --quiet install || { echo \"No git repository found. If this is a new project, run \\`mise run init\\` to create it.\"; }",
|
|
1751
1751
|
]
|
|
1752
1752
|
|
|
1753
1753
|
[tools]
|
{copier_python-0.16.0 → copier_python-0.16.1}/tests/template/__snapshots__/test_workflows.ambr
RENAMED
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
- name: 💾 Check out repository
|
|
33
33
|
uses: actions/checkout@v7
|
|
34
34
|
|
|
35
|
-
- name: 📦
|
|
35
|
+
- name: 📦 Cache uv managed packages
|
|
36
36
|
uses: actions/cache@v6
|
|
37
37
|
with:
|
|
38
38
|
path: ~/.cache/uv
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
with:
|
|
76
76
|
fetch-depth: 0
|
|
77
77
|
|
|
78
|
-
- name: 📦
|
|
78
|
+
- name: 📦 Cache uv managed packages
|
|
79
79
|
uses: actions/cache@v6
|
|
80
80
|
with:
|
|
81
81
|
path: ~/.cache/uv
|
|
@@ -103,6 +103,14 @@
|
|
|
103
103
|
with:
|
|
104
104
|
fetch-depth: 0
|
|
105
105
|
|
|
106
|
+
- name: 📦 Cache uv managed packages
|
|
107
|
+
uses: actions/cache@v6
|
|
108
|
+
with:
|
|
109
|
+
path: ~/.cache/uv
|
|
110
|
+
key: uv-${{ runner.os }}-${{ hashFiles('pyproject.toml', 'uv.lock') }}
|
|
111
|
+
restore-keys: |
|
|
112
|
+
uv-${{ runner.os }}-
|
|
113
|
+
|
|
106
114
|
- name: 🍳 Set up mise
|
|
107
115
|
uses: jdx/mise-action@v4
|
|
108
116
|
with:
|
|
@@ -147,7 +155,7 @@
|
|
|
147
155
|
- name: 💾 Check out repository
|
|
148
156
|
uses: actions/checkout@v7
|
|
149
157
|
|
|
150
|
-
- name: 📦
|
|
158
|
+
- name: 📦 Cache uv managed packages
|
|
151
159
|
uses: actions/cache@v6
|
|
152
160
|
with:
|
|
153
161
|
path: ~/.cache/uv
|
|
@@ -178,7 +186,7 @@
|
|
|
178
186
|
with:
|
|
179
187
|
fetch-depth: 0
|
|
180
188
|
|
|
181
|
-
- name: 📦
|
|
189
|
+
- name: 📦 Cache uv managed packages
|
|
182
190
|
uses: actions/cache@v6
|
|
183
191
|
with:
|
|
184
192
|
path: ~/.cache/uv
|
|
@@ -206,6 +214,14 @@
|
|
|
206
214
|
with:
|
|
207
215
|
fetch-depth: 0
|
|
208
216
|
|
|
217
|
+
- name: 📦 Cache uv managed packages
|
|
218
|
+
uses: actions/cache@v6
|
|
219
|
+
with:
|
|
220
|
+
path: ~/.cache/uv
|
|
221
|
+
key: uv-${{ runner.os }}-${{ hashFiles('pyproject.toml', 'uv.lock') }}
|
|
222
|
+
restore-keys: |
|
|
223
|
+
uv-${{ runner.os }}-
|
|
224
|
+
|
|
209
225
|
- name: 🍳 Set up mise
|
|
210
226
|
uses: jdx/mise-action@v4
|
|
211
227
|
with:
|
|
@@ -250,7 +266,7 @@
|
|
|
250
266
|
- name: 💾 Check out repository
|
|
251
267
|
uses: actions/checkout@v7
|
|
252
268
|
|
|
253
|
-
- name: 📦
|
|
269
|
+
- name: 📦 Cache uv managed packages
|
|
254
270
|
uses: actions/cache@v6
|
|
255
271
|
with:
|
|
256
272
|
path: ~/.cache/uv
|
|
@@ -294,6 +310,14 @@
|
|
|
294
310
|
with:
|
|
295
311
|
fetch-depth: 0
|
|
296
312
|
|
|
313
|
+
- name: 📦 Cache uv managed packages
|
|
314
|
+
uses: actions/cache@v6
|
|
315
|
+
with:
|
|
316
|
+
path: ~/.cache/uv
|
|
317
|
+
key: uv-${{ runner.os }}-${{ hashFiles('pyproject.toml', 'uv.lock') }}
|
|
318
|
+
restore-keys: |
|
|
319
|
+
uv-${{ runner.os }}-
|
|
320
|
+
|
|
297
321
|
- name: 🍳 Set up mise
|
|
298
322
|
uses: jdx/mise-action@v4
|
|
299
323
|
with:
|
|
@@ -338,7 +362,7 @@
|
|
|
338
362
|
- name: 💾 Check out repository
|
|
339
363
|
uses: actions/checkout@v7
|
|
340
364
|
|
|
341
|
-
- name: 📦
|
|
365
|
+
- name: 📦 Cache uv managed packages
|
|
342
366
|
uses: actions/cache@v6
|
|
343
367
|
with:
|
|
344
368
|
path: ~/.cache/uv
|
|
@@ -370,6 +394,14 @@
|
|
|
370
394
|
with:
|
|
371
395
|
fetch-depth: 0
|
|
372
396
|
|
|
397
|
+
- name: 📦 Cache uv managed packages
|
|
398
|
+
uses: actions/cache@v6
|
|
399
|
+
with:
|
|
400
|
+
path: ~/.cache/uv
|
|
401
|
+
key: uv-${{ runner.os }}-${{ hashFiles('pyproject.toml', 'uv.lock') }}
|
|
402
|
+
restore-keys: |
|
|
403
|
+
uv-${{ runner.os }}-
|
|
404
|
+
|
|
373
405
|
- name: 🍳 Set up mise
|
|
374
406
|
uses: jdx/mise-action@v4
|
|
375
407
|
with:
|
|
@@ -412,7 +444,7 @@
|
|
|
412
444
|
- name: 💾 Check out repository
|
|
413
445
|
uses: actions/checkout@v7
|
|
414
446
|
|
|
415
|
-
- name: 📦
|
|
447
|
+
- name: 📦 Cache uv managed packages
|
|
416
448
|
uses: actions/cache@v6
|
|
417
449
|
with:
|
|
418
450
|
path: ~/.cache/uv
|
|
@@ -455,7 +487,7 @@
|
|
|
455
487
|
with:
|
|
456
488
|
fetch-depth: 0
|
|
457
489
|
|
|
458
|
-
- name: 📦
|
|
490
|
+
- name: 📦 Cache uv managed packages
|
|
459
491
|
uses: actions/cache@v6
|
|
460
492
|
with:
|
|
461
493
|
path: ~/.cache/uv
|
|
@@ -483,6 +515,14 @@
|
|
|
483
515
|
with:
|
|
484
516
|
fetch-depth: 0
|
|
485
517
|
|
|
518
|
+
- name: 📦 Cache uv managed packages
|
|
519
|
+
uses: actions/cache@v6
|
|
520
|
+
with:
|
|
521
|
+
path: ~/.cache/uv
|
|
522
|
+
key: uv-${{ runner.os }}-${{ hashFiles('pyproject.toml', 'uv.lock') }}
|
|
523
|
+
restore-keys: |
|
|
524
|
+
uv-${{ runner.os }}-
|
|
525
|
+
|
|
486
526
|
- name: 🍳 Set up mise
|
|
487
527
|
uses: jdx/mise-action@v4
|
|
488
528
|
with:
|
|
@@ -523,7 +563,7 @@
|
|
|
523
563
|
- name: 💾 Check out repository
|
|
524
564
|
uses: actions/checkout@v7
|
|
525
565
|
|
|
526
|
-
- name: 📦
|
|
566
|
+
- name: 📦 Cache uv managed packages
|
|
527
567
|
uses: actions/cache@v6
|
|
528
568
|
with:
|
|
529
569
|
path: ~/.cache/uv
|
|
@@ -566,7 +606,7 @@
|
|
|
566
606
|
with:
|
|
567
607
|
fetch-depth: 0
|
|
568
608
|
|
|
569
|
-
- name: 📦
|
|
609
|
+
- name: 📦 Cache uv managed packages
|
|
570
610
|
uses: actions/cache@v6
|
|
571
611
|
with:
|
|
572
612
|
path: ~/.cache/uv
|
|
@@ -594,6 +634,14 @@
|
|
|
594
634
|
with:
|
|
595
635
|
fetch-depth: 0
|
|
596
636
|
|
|
637
|
+
- name: 📦 Cache uv managed packages
|
|
638
|
+
uses: actions/cache@v6
|
|
639
|
+
with:
|
|
640
|
+
path: ~/.cache/uv
|
|
641
|
+
key: uv-${{ runner.os }}-${{ hashFiles('pyproject.toml', 'uv.lock') }}
|
|
642
|
+
restore-keys: |
|
|
643
|
+
uv-${{ runner.os }}-
|
|
644
|
+
|
|
597
645
|
- name: 🍳 Set up mise
|
|
598
646
|
uses: jdx/mise-action@v4
|
|
599
647
|
with:
|
|
@@ -638,7 +686,7 @@
|
|
|
638
686
|
- name: 💾 Check out repository
|
|
639
687
|
uses: actions/checkout@v7
|
|
640
688
|
|
|
641
|
-
- name: 📦
|
|
689
|
+
- name: 📦 Cache uv managed packages
|
|
642
690
|
uses: actions/cache@v6
|
|
643
691
|
with:
|
|
644
692
|
path: ~/.cache/uv
|
|
@@ -681,7 +729,7 @@
|
|
|
681
729
|
with:
|
|
682
730
|
fetch-depth: 0
|
|
683
731
|
|
|
684
|
-
- name: 📦
|
|
732
|
+
- name: 📦 Cache uv managed packages
|
|
685
733
|
uses: actions/cache@v6
|
|
686
734
|
with:
|
|
687
735
|
path: ~/.cache/uv
|
|
@@ -709,6 +757,14 @@
|
|
|
709
757
|
with:
|
|
710
758
|
fetch-depth: 0
|
|
711
759
|
|
|
760
|
+
- name: 📦 Cache uv managed packages
|
|
761
|
+
uses: actions/cache@v6
|
|
762
|
+
with:
|
|
763
|
+
path: ~/.cache/uv
|
|
764
|
+
key: uv-${{ runner.os }}-${{ hashFiles('pyproject.toml', 'uv.lock') }}
|
|
765
|
+
restore-keys: |
|
|
766
|
+
uv-${{ runner.os }}-
|
|
767
|
+
|
|
712
768
|
- name: 🍳 Set up mise
|
|
713
769
|
uses: jdx/mise-action@v4
|
|
714
770
|
with:
|
|
@@ -751,7 +807,7 @@
|
|
|
751
807
|
- name: 💾 Check out repository
|
|
752
808
|
uses: actions/checkout@v7
|
|
753
809
|
|
|
754
|
-
- name: 📦
|
|
810
|
+
- name: 📦 Cache uv managed packages
|
|
755
811
|
uses: actions/cache@v6
|
|
756
812
|
with:
|
|
757
813
|
path: ~/.cache/uv
|
|
@@ -794,7 +850,7 @@
|
|
|
794
850
|
with:
|
|
795
851
|
fetch-depth: 0
|
|
796
852
|
|
|
797
|
-
- name: 📦
|
|
853
|
+
- name: 📦 Cache uv managed packages
|
|
798
854
|
uses: actions/cache@v6
|
|
799
855
|
with:
|
|
800
856
|
path: ~/.cache/uv
|
|
@@ -822,6 +878,14 @@
|
|
|
822
878
|
with:
|
|
823
879
|
fetch-depth: 0
|
|
824
880
|
|
|
881
|
+
- name: 📦 Cache uv managed packages
|
|
882
|
+
uses: actions/cache@v6
|
|
883
|
+
with:
|
|
884
|
+
path: ~/.cache/uv
|
|
885
|
+
key: uv-${{ runner.os }}-${{ hashFiles('pyproject.toml', 'uv.lock') }}
|
|
886
|
+
restore-keys: |
|
|
887
|
+
uv-${{ runner.os }}-
|
|
888
|
+
|
|
825
889
|
- name: 🍳 Set up mise
|
|
826
890
|
uses: jdx/mise-action@v4
|
|
827
891
|
with:
|
|
@@ -866,7 +930,7 @@
|
|
|
866
930
|
- name: 💾 Check out repository
|
|
867
931
|
uses: actions/checkout@v7
|
|
868
932
|
|
|
869
|
-
- name: 📦
|
|
933
|
+
- name: 📦 Cache uv managed packages
|
|
870
934
|
uses: actions/cache@v6
|
|
871
935
|
with:
|
|
872
936
|
path: ~/.cache/uv
|
|
@@ -909,7 +973,7 @@
|
|
|
909
973
|
with:
|
|
910
974
|
fetch-depth: 0
|
|
911
975
|
|
|
912
|
-
- name: 📦
|
|
976
|
+
- name: 📦 Cache uv managed packages
|
|
913
977
|
uses: actions/cache@v6
|
|
914
978
|
with:
|
|
915
979
|
path: ~/.cache/uv
|
|
@@ -937,6 +1001,14 @@
|
|
|
937
1001
|
with:
|
|
938
1002
|
fetch-depth: 0
|
|
939
1003
|
|
|
1004
|
+
- name: 📦 Cache uv managed packages
|
|
1005
|
+
uses: actions/cache@v6
|
|
1006
|
+
with:
|
|
1007
|
+
path: ~/.cache/uv
|
|
1008
|
+
key: uv-${{ runner.os }}-${{ hashFiles('pyproject.toml', 'uv.lock') }}
|
|
1009
|
+
restore-keys: |
|
|
1010
|
+
uv-${{ runner.os }}-
|
|
1011
|
+
|
|
940
1012
|
- name: 🍳 Set up mise
|
|
941
1013
|
uses: jdx/mise-action@v4
|
|
942
1014
|
with:
|
|
@@ -979,7 +1051,7 @@
|
|
|
979
1051
|
- name: 💾 Check out repository
|
|
980
1052
|
uses: actions/checkout@v7
|
|
981
1053
|
|
|
982
|
-
- name: 📦
|
|
1054
|
+
- name: 📦 Cache uv managed packages
|
|
983
1055
|
uses: actions/cache@v6
|
|
984
1056
|
with:
|
|
985
1057
|
path: ~/.cache/uv
|
|
@@ -1022,7 +1094,7 @@
|
|
|
1022
1094
|
with:
|
|
1023
1095
|
fetch-depth: 0
|
|
1024
1096
|
|
|
1025
|
-
- name: 📦
|
|
1097
|
+
- name: 📦 Cache uv managed packages
|
|
1026
1098
|
uses: actions/cache@v6
|
|
1027
1099
|
with:
|
|
1028
1100
|
path: ~/.cache/uv
|
|
@@ -1050,6 +1122,14 @@
|
|
|
1050
1122
|
with:
|
|
1051
1123
|
fetch-depth: 0
|
|
1052
1124
|
|
|
1125
|
+
- name: 📦 Cache uv managed packages
|
|
1126
|
+
uses: actions/cache@v6
|
|
1127
|
+
with:
|
|
1128
|
+
path: ~/.cache/uv
|
|
1129
|
+
key: uv-${{ runner.os }}-${{ hashFiles('pyproject.toml', 'uv.lock') }}
|
|
1130
|
+
restore-keys: |
|
|
1131
|
+
uv-${{ runner.os }}-
|
|
1132
|
+
|
|
1053
1133
|
- name: 🍳 Set up mise
|
|
1054
1134
|
uses: jdx/mise-action@v4
|
|
1055
1135
|
with:
|
|
@@ -1082,7 +1162,7 @@
|
|
|
1082
1162
|
with:
|
|
1083
1163
|
fetch-depth: 0
|
|
1084
1164
|
|
|
1085
|
-
- name: 📦
|
|
1165
|
+
- name: 📦 Cache uv managed packages
|
|
1086
1166
|
uses: actions/cache@v6
|
|
1087
1167
|
with:
|
|
1088
1168
|
path: ~/.cache/uv
|
|
@@ -1151,7 +1231,7 @@
|
|
|
1151
1231
|
with:
|
|
1152
1232
|
fetch-depth: 0
|
|
1153
1233
|
|
|
1154
|
-
- name: 📦
|
|
1234
|
+
- name: 📦 Cache uv managed packages
|
|
1155
1235
|
uses: actions/cache@v6
|
|
1156
1236
|
with:
|
|
1157
1237
|
path: ~/.cache/uv
|
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
[build-system]
|
|
2
|
-
requires = ["hatchling", "uv-dynamic-versioning"]
|
|
3
|
-
build-backend = "hatchling.build"
|
|
4
|
-
|
|
5
|
-
[project]
|
|
6
|
-
name = "copier-python"
|
|
7
|
-
dynamic = ["version"]
|
|
8
|
-
description = "Copier template for Python projects with modern tooling"
|
|
9
|
-
readme = "README.md"
|
|
10
|
-
license = "MIT"
|
|
11
|
-
license-files = ["LICENSE"]
|
|
12
|
-
requires-python = ">=3.10"
|
|
13
|
-
authors = [
|
|
14
|
-
{ name = "Stephen Kent", email = "smkent@smkent.net" },
|
|
15
|
-
]
|
|
16
|
-
classifiers = [
|
|
17
|
-
"Development Status :: 3 - Alpha",
|
|
18
|
-
"Intended Audience :: Developers",
|
|
19
|
-
"Programming Language :: Python :: 3",
|
|
20
|
-
"Programming Language :: Python :: 3 :: Only",
|
|
21
|
-
"Programming Language :: Python :: 3.10",
|
|
22
|
-
"Programming Language :: Python :: 3.11",
|
|
23
|
-
"Programming Language :: Python :: 3.12",
|
|
24
|
-
"Programming Language :: Python :: 3.13",
|
|
25
|
-
"Programming Language :: Python :: 3.14",
|
|
26
|
-
"Topic :: Documentation",
|
|
27
|
-
"Topic :: Software Development",
|
|
28
|
-
"Topic :: Utilities",
|
|
29
|
-
"Typing :: Typed",
|
|
30
|
-
]
|
|
31
|
-
keywords = []
|
|
32
|
-
dependencies = [
|
|
33
|
-
"pyyaml>=6",
|
|
34
|
-
"rich>=15",
|
|
35
|
-
"typer>=0.9",
|
|
36
|
-
"typing_extensions>=4.1; python_version < '3.12'",
|
|
37
|
-
]
|
|
38
|
-
|
|
39
|
-
[project.scripts]
|
|
40
|
-
copier-python = "copier_python.__main__:main"
|
|
41
|
-
|
|
42
|
-
[project.urls]
|
|
43
|
-
Homepage = "https://smkent.github.io/copier-python"
|
|
44
|
-
Repository = "https://github.com/smkent/copier-python"
|
|
45
|
-
Issues = "https://github.com/smkent/copier-python/issues"
|
|
46
|
-
|
|
47
|
-
[dependency-groups]
|
|
48
|
-
dev = [
|
|
49
|
-
"bump-my-version>=1.3.0",
|
|
50
|
-
"copier>=9",
|
|
51
|
-
"poethepoet>=0.46",
|
|
52
|
-
"pysentry-rs>=0.4",
|
|
53
|
-
"pytest>=9",
|
|
54
|
-
"pytest-cov>=7",
|
|
55
|
-
"pytest-sugar>=1",
|
|
56
|
-
"pytest-xdist>=3",
|
|
57
|
-
"ruff>=0.15",
|
|
58
|
-
"syrupy>=5",
|
|
59
|
-
"ty>=0.0.49",
|
|
60
|
-
"typing-extensions>=4",
|
|
61
|
-
]
|
|
62
|
-
docs = [
|
|
63
|
-
"zensical>=0.0.45",
|
|
64
|
-
]
|
|
65
|
-
|
|
66
|
-
[tool.bumpversion]
|
|
67
|
-
commit = false
|
|
68
|
-
tag = true
|
|
69
|
-
tag_name = "v{new_version}"
|
|
70
|
-
tag_message = ""
|
|
71
|
-
push = true
|
|
72
|
-
|
|
73
|
-
[tool.hatch.build.targets.sdist]
|
|
74
|
-
include = ["/copier_python", "/tests", "*.md", "LICENSE"]
|
|
75
|
-
|
|
76
|
-
[tool.hatch.version]
|
|
77
|
-
source = "uv-dynamic-versioning"
|
|
78
|
-
|
|
79
|
-
[tool.pytest]
|
|
80
|
-
addopts = [
|
|
81
|
-
"-ra",
|
|
82
|
-
"--cov=copier_python",
|
|
83
|
-
"--strict-config",
|
|
84
|
-
"--strict-markers",
|
|
85
|
-
"--numprocesses",
|
|
86
|
-
"auto",
|
|
87
|
-
]
|
|
88
|
-
testpaths = ["tests"]
|
|
89
|
-
|
|
90
|
-
[tool.coverage.run]
|
|
91
|
-
source = ["copier_python"]
|
|
92
|
-
branch = true
|
|
93
|
-
|
|
94
|
-
[tool.coverage.report]
|
|
95
|
-
show_missing = true
|
|
96
|
-
skip_covered = true
|
|
97
|
-
exclude_lines = [
|
|
98
|
-
"pragma: no cover",
|
|
99
|
-
"if TYPE_CHECKING:",
|
|
100
|
-
"@abstractmethod",
|
|
101
|
-
]
|
|
102
|
-
|
|
103
|
-
[tool.ruff]
|
|
104
|
-
line-length = 79
|
|
105
|
-
output-format = "concise"
|
|
106
|
-
target-version = "py310"
|
|
107
|
-
|
|
108
|
-
[tool.ruff.lint]
|
|
109
|
-
select = ["ALL"]
|
|
110
|
-
ignore = [
|
|
111
|
-
"ANN401", # Dynamically typed expressions (typing.Any) are disallowed
|
|
112
|
-
"COM812", # Trailing comma missing
|
|
113
|
-
"CPY001", # Missing copyright notice at top of file
|
|
114
|
-
"D1", # Missing docstring presence rules
|
|
115
|
-
"EM", # flake8-errmsg
|
|
116
|
-
"G004", # Logging statement uses f-string
|
|
117
|
-
"PLR", # pylint Refactor
|
|
118
|
-
"S607", # Starting a process with a partial executable path
|
|
119
|
-
"TD", # flake8-todos
|
|
120
|
-
"TRY003", # Avoid specifying long messages outside the exception class
|
|
121
|
-
]
|
|
122
|
-
|
|
123
|
-
[tool.ruff.lint.isort]
|
|
124
|
-
known-first-party = ["copier_python"]
|
|
125
|
-
|
|
126
|
-
[tool.ruff.lint.per-file-ignores]
|
|
127
|
-
"tests/**/*.py" = [
|
|
128
|
-
"ARG", # flake8-unused-arguments
|
|
129
|
-
"S101", # Use of assert detected
|
|
130
|
-
]
|
|
131
|
-
|
|
132
|
-
[tool.ruff.lint.pydocstyle]
|
|
133
|
-
convention = "google"
|
|
134
|
-
|
|
135
|
-
[tool.ty.src]
|
|
136
|
-
include = ["copier_python/", "tests/"]
|
|
137
|
-
|
|
138
|
-
[tool.ty.terminal]
|
|
139
|
-
error-on-warning = true
|
|
140
|
-
output-format = "concise"
|
|
141
|
-
|
|
142
|
-
[tool.uv]
|
|
143
|
-
default-groups = ["dev", "docs"]
|
|
144
|
-
|
|
145
|
-
[tool.uv-dynamic-versioning]
|
|
146
|
-
pattern = "default"
|
|
147
|
-
fallback-version = "0.0.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{copier_python-0.16.0 → copier_python-0.16.1}/tests/template/__snapshots__/test_compose.ambr
RENAMED
|
File without changes
|
{copier_python-0.16.0 → copier_python-0.16.1}/tests/template/__snapshots__/test_contributing.ambr
RENAMED
|
File without changes
|
{copier_python-0.16.0 → copier_python-0.16.1}/tests/template/__snapshots__/test_dockerfile.ambr
RENAMED
|
File without changes
|
|
File without changes
|
{copier_python-0.16.0 → copier_python-0.16.1}/tests/template/__snapshots__/test_license.ambr
RENAMED
|
File without changes
|
{copier_python-0.16.0 → copier_python-0.16.1}/tests/template/__snapshots__/test_pyproject.ambr
RENAMED
|
File without changes
|
|
File without changes
|
{copier_python-0.16.0 → copier_python-0.16.1}/tests/template/__snapshots__/test_zensical.ambr
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|