copier-python 0.12.0__tar.gz → 0.13.0__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.
Files changed (58) hide show
  1. {copier_python-0.12.0 → copier_python-0.13.0}/PKG-INFO +16 -7
  2. {copier_python-0.12.0 → copier_python-0.13.0}/README.md +14 -5
  3. {copier_python-0.12.0 → copier_python-0.13.0}/docs/project-creation.md +2 -2
  4. {copier_python-0.12.0 → copier_python-0.13.0}/docs/project-development.md +12 -8
  5. {copier_python-0.12.0 → copier_python-0.13.0}/docs/project-release.md +3 -3
  6. {copier_python-0.12.0 → copier_python-0.13.0}/docs/project-setup.md +1 -1
  7. copier_python-0.13.0/docs/requirements.md +28 -0
  8. copier_python-0.13.0/tests/template/__snapshots__/test_agents.ambr +15 -0
  9. {copier_python-0.12.0 → copier_python-0.13.0}/tests/template/__snapshots__/test_contributing.ambr +18 -17
  10. {copier_python-0.12.0 → copier_python-0.13.0}/tests/template/__snapshots__/test_dockerfile.ambr +18 -6
  11. {copier_python-0.12.0 → copier_python-0.13.0}/tests/template/__snapshots__/test_docs.ambr +168 -160
  12. copier_python-0.13.0/tests/template/__snapshots__/test_mise_toml.ambr +1809 -0
  13. {copier_python-0.12.0 → copier_python-0.13.0}/tests/template/__snapshots__/test_pyproject.ambr +0 -3162
  14. {copier_python-0.12.0 → copier_python-0.13.0}/tests/template/__snapshots__/test_workflows.ambr +292 -146
  15. copier_python-0.13.0/tests/template/test_mise_toml.py +40 -0
  16. {copier_python-0.12.0 → copier_python-0.13.0}/tests/template/test_template.py +2 -2
  17. copier_python-0.12.0/docs/requirements.md +0 -24
  18. copier_python-0.12.0/tests/template/__snapshots__/test_agents.ambr +0 -14
  19. {copier_python-0.12.0 → copier_python-0.13.0}/.gitignore +0 -0
  20. {copier_python-0.12.0 → copier_python-0.13.0}/AGENTS.md +0 -0
  21. {copier_python-0.12.0 → copier_python-0.13.0}/CONTRIBUTING.md +0 -0
  22. {copier_python-0.12.0 → copier_python-0.13.0}/LICENSE +0 -0
  23. {copier_python-0.12.0 → copier_python-0.13.0}/copier_python/__init__.py +0 -0
  24. {copier_python-0.12.0 → copier_python-0.13.0}/copier_python/__main__.py +0 -0
  25. {copier_python-0.12.0 → copier_python-0.13.0}/copier_python/py.typed +0 -0
  26. {copier_python-0.12.0 → copier_python-0.13.0}/copier_python/repo.py +0 -0
  27. {copier_python-0.12.0 → copier_python-0.13.0}/copier_python/update.py +0 -0
  28. {copier_python-0.12.0 → copier_python-0.13.0}/docs/contributing.md +0 -0
  29. {copier_python-0.12.0 → copier_python-0.13.0}/docs/development/requirements.md +0 -0
  30. {copier_python-0.12.0 → copier_python-0.13.0}/docs/development/updates.md +0 -0
  31. {copier_python-0.12.0 → copier_python-0.13.0}/docs/development/workflow.md +0 -0
  32. {copier_python-0.12.0 → copier_python-0.13.0}/docs/index.md +0 -0
  33. {copier_python-0.12.0 → copier_python-0.13.0}/docs/license.md +0 -0
  34. {copier_python-0.12.0 → copier_python-0.13.0}/docs/project-updates.md +0 -0
  35. {copier_python-0.12.0 → copier_python-0.13.0}/docs/releasing.md +0 -0
  36. {copier_python-0.12.0 → copier_python-0.13.0}/docs/setup.md +0 -0
  37. {copier_python-0.12.0 → copier_python-0.13.0}/pyproject.toml +0 -0
  38. {copier_python-0.12.0 → copier_python-0.13.0}/tests/__init__.py +0 -0
  39. {copier_python-0.12.0 → copier_python-0.13.0}/tests/conftest.py +0 -0
  40. {copier_python-0.12.0 → copier_python-0.13.0}/tests/template/__init__.py +0 -0
  41. {copier_python-0.12.0 → copier_python-0.13.0}/tests/template/__snapshots__/test_compose.ambr +0 -0
  42. {copier_python-0.12.0 → copier_python-0.13.0}/tests/template/__snapshots__/test_license.ambr +0 -0
  43. {copier_python-0.12.0 → copier_python-0.13.0}/tests/template/__snapshots__/test_readme.ambr +0 -0
  44. {copier_python-0.12.0 → copier_python-0.13.0}/tests/template/__snapshots__/test_zensical.ambr +0 -0
  45. {copier_python-0.12.0 → copier_python-0.13.0}/tests/template/test_agents.py +0 -0
  46. {copier_python-0.12.0 → copier_python-0.13.0}/tests/template/test_compose.py +0 -0
  47. {copier_python-0.12.0 → copier_python-0.13.0}/tests/template/test_contributing.py +0 -0
  48. {copier_python-0.12.0 → copier_python-0.13.0}/tests/template/test_dockerfile.py +0 -0
  49. {copier_python-0.12.0 → copier_python-0.13.0}/tests/template/test_docs.py +0 -0
  50. {copier_python-0.12.0 → copier_python-0.13.0}/tests/template/test_license.py +0 -0
  51. {copier_python-0.12.0 → copier_python-0.13.0}/tests/template/test_pyproject.py +0 -0
  52. {copier_python-0.12.0 → copier_python-0.13.0}/tests/template/test_readme.py +0 -0
  53. {copier_python-0.12.0 → copier_python-0.13.0}/tests/template/test_structure.py +0 -0
  54. {copier_python-0.12.0 → copier_python-0.13.0}/tests/template/test_workflows.py +0 -0
  55. {copier_python-0.12.0 → copier_python-0.13.0}/tests/template/test_zensical.py +0 -0
  56. {copier_python-0.12.0 → copier_python-0.13.0}/tests/test_update.py +0 -0
  57. {copier_python-0.12.0/tests/template → copier_python-0.13.0/tests}/test_version.py +0 -0
  58. {copier_python-0.12.0 → copier_python-0.13.0}/tests/utils.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: copier-python
3
- Version: 0.12.0
3
+ Version: 0.13.0
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
@@ -40,8 +40,13 @@ Description-Content-Type: text/markdown
40
40
 
41
41
  ## Quick start
42
42
 
43
- With [Astral's **uv**][uv] and [**Copier**][copier] (`uv tool install copier`)
44
- installed:
43
+ Install required software:
44
+
45
+ - [**mise-en-place**][mise]: `curl https://mise.run | sh` or
46
+ [alternate installation method][mise-installation]
47
+ - [**Copier**][copier]: `mise use -g copier` or `uv tool install copier`
48
+
49
+ Create a new project from the template:
45
50
 
46
51
  ```sh
47
52
  copier copy "gh:smkent/copier-python" /new/project/path
@@ -51,6 +56,10 @@ copier copy "gh:smkent/copier-python" /new/project/path
51
56
 
52
57
  ## Features
53
58
 
59
+ * [**mise-en-place**][mise] ("mise") for development toolchain management
60
+
61
+ [![mise][mise-badge]][mise]
62
+
54
63
  * [Astral][astral] toolset: [**uv**][uv], [**ruff**][ruff], and [**ty**][ty]
55
64
 
56
65
  [![uv][uv-badge]][uv]
@@ -72,8 +81,6 @@ copier copy "gh:smkent/copier-python" /new/project/path
72
81
  * [**pytest**][pytest] test framework with [**codecov.io**][codecovio] support
73
82
  * [**Zensical**][zensical] project documentation with automatic deployment to
74
83
  [**GitHub Pages**][github-pages]
75
- * [**Poe the Poet**][poethepoet] for task shortcuts such as
76
- `poe lint`, `poe test`
77
84
 
78
85
  ## Credits
79
86
 
@@ -91,7 +98,9 @@ This template was inspired by [pawamoy/copier-uv][copier-uv] and
91
98
  [ghcr-docs]: https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry
92
99
  [github-actions]: https://github.com/features/actions
93
100
  [github-pages]: https://pages.github.com
94
- [poethepoet]: https://poethepoet.natn.io/
101
+ [mise]: https://mise.jdx.dev
102
+ [mise-installation]: https://mise.jdx.dev/installing-mise.html
103
+ [mise-badge]: https://mise-versions.jdx.dev/badge.svg
95
104
  [pre-commit]: https://pre-commit.com/
96
105
  [prek-badge]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/j178/prek/master/docs/assets/badge-v0.json
97
106
  [prek]: https://prek.j178.dev/
@@ -10,8 +10,13 @@
10
10
 
11
11
  ## Quick start
12
12
 
13
- With [Astral's **uv**][uv] and [**Copier**][copier] (`uv tool install copier`)
14
- installed:
13
+ Install required software:
14
+
15
+ - [**mise-en-place**][mise]: `curl https://mise.run | sh` or
16
+ [alternate installation method][mise-installation]
17
+ - [**Copier**][copier]: `mise use -g copier` or `uv tool install copier`
18
+
19
+ Create a new project from the template:
15
20
 
16
21
  ```sh
17
22
  copier copy "gh:smkent/copier-python" /new/project/path
@@ -21,6 +26,10 @@ copier copy "gh:smkent/copier-python" /new/project/path
21
26
 
22
27
  ## Features
23
28
 
29
+ * [**mise-en-place**][mise] ("mise") for development toolchain management
30
+
31
+ [![mise][mise-badge]][mise]
32
+
24
33
  * [Astral][astral] toolset: [**uv**][uv], [**ruff**][ruff], and [**ty**][ty]
25
34
 
26
35
  [![uv][uv-badge]][uv]
@@ -42,8 +51,6 @@ copier copy "gh:smkent/copier-python" /new/project/path
42
51
  * [**pytest**][pytest] test framework with [**codecov.io**][codecovio] support
43
52
  * [**Zensical**][zensical] project documentation with automatic deployment to
44
53
  [**GitHub Pages**][github-pages]
45
- * [**Poe the Poet**][poethepoet] for task shortcuts such as
46
- `poe lint`, `poe test`
47
54
 
48
55
  ## Credits
49
56
 
@@ -61,7 +68,9 @@ This template was inspired by [pawamoy/copier-uv][copier-uv] and
61
68
  [ghcr-docs]: https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry
62
69
  [github-actions]: https://github.com/features/actions
63
70
  [github-pages]: https://pages.github.com
64
- [poethepoet]: https://poethepoet.natn.io/
71
+ [mise]: https://mise.jdx.dev
72
+ [mise-installation]: https://mise.jdx.dev/installing-mise.html
73
+ [mise-badge]: https://mise-versions.jdx.dev/badge.svg
65
74
  [pre-commit]: https://pre-commit.com/
66
75
  [prek-badge]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/j178/prek/master/docs/assets/badge-v0.json
67
76
  [prek]: https://prek.j178.dev/
@@ -45,13 +45,13 @@ Set **Repository name** to your chosen project name.
45
45
  To complete project initialization, run:
46
46
 
47
47
  ```sh
48
- poe init
48
+ mise run init
49
49
  ```
50
50
 
51
51
  This will:
52
52
 
53
53
  1. Create the local git repository
54
- 2. Install dependencies and git hooks (same as `poe setup`)
54
+ 2. Install tools, dependencies, and git hooks (same as `mise install`)
55
55
  3. Create an initial commit with the newly created project contents
56
56
  4. Add your GitHub repository as the `origin` remote
57
57
  (when `project_visibility: public`)
@@ -7,23 +7,27 @@ icon: lucide/braces
7
7
 
8
8
  ## Cloning the repository
9
9
 
10
- Run `poe setup` in new repository clones to enable git hooks:
11
-
12
10
  ```sh
13
11
  git clone https://github.com/<github_user>/<project_name>
14
12
  cd project_name
15
- poe setup # Enables git hooks
13
+ ```
14
+
15
+ Run `mise install` in new repository clones to install tools, dependencies, and
16
+ git hooks:
17
+
18
+ ```sh
19
+ mise install
16
20
  ```
17
21
 
18
22
  ## Development tools
19
23
 
20
- * `poe lint`: Run formatters and static checks
21
- * `poe test`: Run tests
24
+ * `mise run lint`: Run formatters and static checks
25
+ * `mise run test`: Run tests
22
26
 
23
27
  The `lint` and `test` tasks can also be run as a single combined command with:
24
28
 
25
29
  ```sh
26
- poe lt
30
+ mise run lt
27
31
  ```
28
32
 
29
33
  ## Documentation server
@@ -31,11 +35,11 @@ poe lt
31
35
  Start the development server with:
32
36
 
33
37
  ```sh
34
- poe docs
38
+ mise run docs
35
39
  ```
36
40
 
37
41
  The documentation site will be served at:
38
42
 
39
43
  [**http://localhost:8000**](http://localhost:8000){ .md-button .md-button--primary target="_blank" }
40
44
 
41
- To use a different bind host/port, run `poe --help docs` for arguments info.
45
+ To use a different bind host/port, run `mise run docs --help` for usage info.
@@ -7,11 +7,11 @@ icon: lucide/rocket
7
7
 
8
8
  Release version numbers should follow [Semantic Versioning][semver].
9
9
 
10
- To create a release, run `poe release` with one of `patch`, `minor`, or `major`
11
- corresponding to the version number component to update:
10
+ To create a release, run `mise run release` with one of `patch`, `minor`, or
11
+ `major` corresponding to the version number component to update:
12
12
 
13
13
  ```sh
14
- poe release patch|minor|major
14
+ mise run release patch|minor|major
15
15
  ```
16
16
 
17
17
  A new tag with the new release version number will be created automatically
@@ -10,7 +10,7 @@ icon: lucide/settings
10
10
  these instructions are also present in your new project along with links
11
11
  directly to your project's specific settings pages! To view:
12
12
 
13
- 1. Start the local documentation server: `poe docs`
13
+ 1. Start the local documentation server: `mise run docs`
14
14
  2. In your browser:
15
15
 
16
16
  1. Open **<http://localhost:8000>**
@@ -0,0 +1,28 @@
1
+ ---
2
+ title: Required software
3
+ icon: lucide/bookmark-check
4
+ ---
5
+
6
+ # Required software
7
+
8
+ - [x] [**git** for verson control][git]
9
+ - [x] [**mise**][mise] tool manager: `curl https://mise.run | sh` or
10
+ [alternate installation method][mise-installation]
11
+
12
+ !!! info
13
+
14
+ `mise` ensures additional software is available, such as:
15
+
16
+ * A [supported version][python-versions] of [**Python**][python]
17
+ * [Astral's **uv** Python project manager][uv]
18
+
19
+ - [x] [**Copier**][copier]: `mise use -g copier`
20
+ / `uv tool install copier` / `pipx install copier`
21
+
22
+ [copier]: https://copier.readthedocs.io
23
+ [git]: https://git-scm.com
24
+ [mise-installation]: https://mise.jdx.dev/installing-mise.html
25
+ [mise]: https://mise.jdx.dev
26
+ [python-versions]: https://devguide.python.org/versions/
27
+ [python]: https://python.org
28
+ [uv]: https://docs.astral.sh/uv/
@@ -0,0 +1,15 @@
1
+ # serializer version: 1
2
+ # name: test_agents
3
+ '''
4
+ # Environment/Tools
5
+
6
+ * `mise` manages dev tools and tasks, including `uv` which manages Python and dependencies.
7
+ * Use `uv add`/`uv run python` instead of bare `pip`/`python`
8
+ * `mise install`: After-clone setup (install tools, dependencies, pre-commit hooks)
9
+ * `mise run lint`: Pre-commit hooks (via `pre-commit`-compatible `prek`) including lint, format, type check (ruff, ty)
10
+ * `mise run test`: Run tests (accepts pytest arguments)
11
+ * `mise run lt`: Lint+test (no arguments)
12
+ * `mise run snapup`: Update test snapshots (syrupy, accepts pytest arguments)
13
+
14
+ '''
15
+ # ---
@@ -39,22 +39,22 @@
39
39
 
40
40
  ### Prerequisites
41
41
 
42
- - [x] A [supported version][python-versions] of [**Python**][python]
43
- - [x] [**git** for verson control][git]
44
- - [x] [Astral's **uv** Python project manager][uv]: `pip install uv` or
45
- [other supported method][uv-installation]
46
- - [x] [**Copier**][copier]: `uv tool install copier`
47
- - [x] [Poe the Poet][poethepoet] (recommended): `uv tool install poethepoet`
42
+ - [x] [**git** for version control][git]
43
+ - [x] [**mise**][mise] tool manager: `curl https://mise.run | sh` or
44
+ [alternate installation method][mise-installation]
48
45
 
49
- This provides `poe` without the `uv run` prefix,
50
- e.g. `poe test` instead of `uv run poe test`
46
+ !!! info
47
+
48
+ `mise` ensures additional software is available, such as:
49
+
50
+ * A [supported version][python-versions] of [**Python**][python]
51
+ * [Astral's **uv** Python project manager][uv]
51
52
 
52
- [copier]: https://copier.readthedocs.io
53
53
  [git]: https://git-scm.com
54
- [poethepoet]: https://poethepoet.natn.io/
54
+ [mise-installation]: https://mise.jdx.dev/installing-mise.html
55
+ [mise]: https://mise.jdx.dev
55
56
  [python-versions]: https://devguide.python.org/versions/
56
57
  [python]: https://python.org
57
- [uv-installation]: https://docs.astral.sh/uv/getting-started/installation/
58
58
  [uv]: https://docs.astral.sh/uv/
59
59
 
60
60
  ### Project development workflow
@@ -66,21 +66,22 @@
66
66
  cd PKFire
67
67
  ```
68
68
 
69
- Run `poe setup` in new repository clones to enable git hooks:
69
+ Run `mise install` in new repository clones to install tools, dependencies, and
70
+ git hooks:
70
71
 
71
72
  ```sh
72
- poe setup # Enables git hooks
73
+ mise install
73
74
  ```
74
75
 
75
76
  #### Development tools
76
77
 
77
- * `poe lint`: Run formatters and static checks
78
- * `poe test`: Run tests
78
+ * `mise run lint`: Run formatters and static checks
79
+ * `mise run test`: Run tests
79
80
 
80
81
  The `lint` and `test` tasks can also be run as a single combined command with:
81
82
 
82
83
  ```sh
83
- poe lt
84
+ mise run lt
84
85
  ```
85
86
 
86
87
  ### Test snapshots
@@ -89,7 +90,7 @@
89
90
  updated by running:
90
91
 
91
92
  ```sh
92
- poe snapup
93
+ mise run snapup
93
94
  ```
94
95
 
95
96
  ### Applying copier-python template updates
@@ -1,7 +1,9 @@
1
1
  # serializer version: 1
2
2
  # name: test_workflows_container[3.12-3.10]
3
3
  '''
4
- FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim AS builder
4
+ FROM python:3.12-slim AS builder
5
+
6
+ COPY --from=ghcr.io/astral-sh/uv /uv /uvx /bin/
5
7
 
6
8
  WORKDIR /app
7
9
 
@@ -28,7 +30,9 @@
28
30
  # ---
29
31
  # name: test_workflows_container[3.12-3.12]
30
32
  '''
31
- FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim AS builder
33
+ FROM python:3.12-slim AS builder
34
+
35
+ COPY --from=ghcr.io/astral-sh/uv /uv /uvx /bin/
32
36
 
33
37
  WORKDIR /app
34
38
 
@@ -55,7 +59,9 @@
55
59
  # ---
56
60
  # name: test_workflows_container[3.14-3.10]
57
61
  '''
58
- FROM ghcr.io/astral-sh/uv:python3.14-bookworm-slim AS builder
62
+ FROM python:3.14-slim AS builder
63
+
64
+ COPY --from=ghcr.io/astral-sh/uv /uv /uvx /bin/
59
65
 
60
66
  WORKDIR /app
61
67
 
@@ -82,7 +88,9 @@
82
88
  # ---
83
89
  # name: test_workflows_container[3.14-3.12]
84
90
  '''
85
- FROM ghcr.io/astral-sh/uv:python3.14-bookworm-slim AS builder
91
+ FROM python:3.14-slim AS builder
92
+
93
+ COPY --from=ghcr.io/astral-sh/uv /uv /uvx /bin/
86
94
 
87
95
  WORKDIR /app
88
96
 
@@ -109,7 +117,9 @@
109
117
  # ---
110
118
  # name: test_workflows_container[No maximum-3.10]
111
119
  '''
112
- FROM ghcr.io/astral-sh/uv:python3.14-bookworm-slim AS builder
120
+ FROM python:3.14-slim AS builder
121
+
122
+ COPY --from=ghcr.io/astral-sh/uv /uv /uvx /bin/
113
123
 
114
124
  WORKDIR /app
115
125
 
@@ -136,7 +146,9 @@
136
146
  # ---
137
147
  # name: test_workflows_container[No maximum-3.12]
138
148
  '''
139
- FROM ghcr.io/astral-sh/uv:python3.14-bookworm-slim AS builder
149
+ FROM python:3.14-slim AS builder
150
+
151
+ COPY --from=ghcr.io/astral-sh/uv /uv /uvx /bin/
140
152
 
141
153
  WORKDIR /app
142
154