copier-python 0.1.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.
- copier_python-0.1.0/.gitignore +19 -0
- copier_python-0.1.0/CHANGELOG.md +10 -0
- copier_python-0.1.0/CONTRIBUTING.md +30 -0
- copier_python-0.1.0/LICENSE +21 -0
- copier_python-0.1.0/MAINTAINING.md +68 -0
- copier_python-0.1.0/PKG-INFO +59 -0
- copier_python-0.1.0/README.md +33 -0
- copier_python-0.1.0/copier_python/__init__.py +8 -0
- copier_python-0.1.0/copier_python/py.typed +0 -0
- copier_python-0.1.0/docs/api.md +3 -0
- copier_python-0.1.0/docs/changelog.md +5 -0
- copier_python-0.1.0/docs/contributing.md +5 -0
- copier_python-0.1.0/docs/index.md +5 -0
- copier_python-0.1.0/docs/license.md +9 -0
- copier_python-0.1.0/docs/maintaining.md +5 -0
- copier_python-0.1.0/pyproject.toml +219 -0
- copier_python-0.1.0/tests/__init__.py +0 -0
- copier_python-0.1.0/tests/__snapshots__/test_contributing.ambr +68 -0
- copier_python-0.1.0/tests/__snapshots__/test_license.ambr +221 -0
- copier_python-0.1.0/tests/__snapshots__/test_maintaining.ambr +505 -0
- copier_python-0.1.0/tests/__snapshots__/test_pyproject.ambr +1509 -0
- copier_python-0.1.0/tests/__snapshots__/test_readme.ambr +137 -0
- copier_python-0.1.0/tests/conftest.py +48 -0
- copier_python-0.1.0/tests/test_contributing.py +21 -0
- copier_python-0.1.0/tests/test_license.py +31 -0
- copier_python-0.1.0/tests/test_maintaining.py +38 -0
- copier_python-0.1.0/tests/test_pyproject.py +29 -0
- copier_python-0.1.0/tests/test_readme.py +48 -0
- copier_python-0.1.0/tests/test_structure.py +88 -0
- copier_python-0.1.0/tests/test_template.py +22 -0
- copier_python-0.1.0/tests/test_version.py +5 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
[Unreleased]: https://github.com/smkent/copier-python/commits/main/
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Contributing to copier-python
|
|
2
|
+
|
|
3
|
+
## Development setup
|
|
4
|
+
|
|
5
|
+
### Prerequisites
|
|
6
|
+
|
|
7
|
+
- [Astral's **uv** Python project manager][uv]
|
|
8
|
+
- [`poethepoet`][poe] task runner: `uv tool install poethepoet`
|
|
9
|
+
|
|
10
|
+
### Project setup
|
|
11
|
+
|
|
12
|
+
```sh
|
|
13
|
+
git clone https://github.com/smkent/copier-python
|
|
14
|
+
cd copier-python
|
|
15
|
+
uv sync
|
|
16
|
+
uv run poe setup # Enables pre-commit hooks
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Common tasks
|
|
20
|
+
|
|
21
|
+
| Command | Description |
|
|
22
|
+
|---|---|
|
|
23
|
+
| `poe docs` | Run documentation server locally |
|
|
24
|
+
| `poe lint` | Run all formatters and static checks |
|
|
25
|
+
| `poe lt` | Run all formatters, static checks and tests (`lint` and `test`) |
|
|
26
|
+
| `poe snapup` | Update test snapshots |
|
|
27
|
+
| `poe test` | Run tests |
|
|
28
|
+
|
|
29
|
+
[poe]: https://poethepoet.naln1.net/
|
|
30
|
+
[uv]: https://docs.astral.sh/uv/
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Stephen Kent
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Maintaining copier-python
|
|
2
|
+
|
|
3
|
+
## First time setup
|
|
4
|
+
|
|
5
|
+
These steps only need to be completed once after the project is first created.
|
|
6
|
+
|
|
7
|
+
### GitHub Repository
|
|
8
|
+
|
|
9
|
+
[Settings → General][repo-settings]:
|
|
10
|
+
|
|
11
|
+
- [x] Allow merge commits
|
|
12
|
+
- [ ] Allow squash merging
|
|
13
|
+
- [ ] Allow rebase merging
|
|
14
|
+
- [x] Automatically delete head branches
|
|
15
|
+
|
|
16
|
+
[Settings → Branches][repo-settings-branches] → Add branch protection rule
|
|
17
|
+
for the Default branch (`main`):
|
|
18
|
+
|
|
19
|
+
- [x] Restrict deletions
|
|
20
|
+
- [x] Require a pull request before merging
|
|
21
|
+
- [x] Block force pushes
|
|
22
|
+
|
|
23
|
+
### Renovate
|
|
24
|
+
|
|
25
|
+
Ensure the [Renovate app][renovate] is installed on your account, then
|
|
26
|
+
enable it for `smkent/copier-python`.
|
|
27
|
+
|
|
28
|
+
### PyPI publishing
|
|
29
|
+
|
|
30
|
+
This project uses [trusted publishing][pypi-trusted-publishing] so no API tokens
|
|
31
|
+
need to be stored as secrets.
|
|
32
|
+
|
|
33
|
+
1. On PyPI, add a (pending) trusted publisher in your
|
|
34
|
+
[Trusted Publisher Management][pypi-publishing-settings] settings:
|
|
35
|
+
- Publisher: GitHub Actions
|
|
36
|
+
- Owner: `smkent`
|
|
37
|
+
- Repository: `copier-python`
|
|
38
|
+
- Workflow: `release.yaml`
|
|
39
|
+
- Environment: `pypi`
|
|
40
|
+
2. Create the `pypi` environment in the GitHub repository:
|
|
41
|
+
[Settings → Environments][repo-settings-envs] → New environment → `pypi`
|
|
42
|
+
3. Publish a release by pushing a tag:
|
|
43
|
+
```sh
|
|
44
|
+
git tag 0.1.0 # or your desired first version number
|
|
45
|
+
git push --tags
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### GitHub Pages
|
|
49
|
+
|
|
50
|
+
[Settings → Pages][repo-settings-pages] → Source → GitHub Actions
|
|
51
|
+
|
|
52
|
+
## Releasing
|
|
53
|
+
|
|
54
|
+
1. Update `CHANGELOG.md`: move items from `[Unreleased]` into a new version
|
|
55
|
+
section and update the comparison link at the bottom
|
|
56
|
+
2. Commit and tag:
|
|
57
|
+
```sh
|
|
58
|
+
git tag X.Y.Z
|
|
59
|
+
git push --tags
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
[pypi-publishing-settings]: https://pypi.org/manage/account/publishing/
|
|
63
|
+
[pypi-trusted-publishing]: https://docs.pypi.org/trusted-publishers/
|
|
64
|
+
[renovate]: https://github.com/apps/renovate
|
|
65
|
+
[repo-settings]: https://github.com/smkent/copier-python/settings
|
|
66
|
+
[repo-settings-envs]: https://github.com/smkent/copier-python/settings/environments
|
|
67
|
+
[repo-settings-branches]: https://github.com/smkent/copier-python/settings/branches
|
|
68
|
+
[repo-settings-pages]: https://github.com/smkent/copier-python/settings/pages
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: copier-python
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Copier template for Python projects with modern tooling
|
|
5
|
+
Project-URL: Homepage, https://github.com/smkent/copier-python
|
|
6
|
+
Project-URL: Repository, https://github.com/smkent/copier-python
|
|
7
|
+
Project-URL: Issues, https://github.com/smkent/copier-python/issues
|
|
8
|
+
Author-email: Stephen Kent <smkent@smkent.net>
|
|
9
|
+
License-Expression: MIT
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
20
|
+
Classifier: Topic :: Documentation
|
|
21
|
+
Classifier: Topic :: Software Development
|
|
22
|
+
Classifier: Topic :: Utilities
|
|
23
|
+
Classifier: Typing :: Typed
|
|
24
|
+
Requires-Python: >=3.10
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
|
|
27
|
+
# copier-python
|
|
28
|
+
|
|
29
|
+
[Copier][copier] template for Python projects with modern tooling
|
|
30
|
+
|
|
31
|
+
[](LICENSE)
|
|
32
|
+
[](https://pypi.org/project/copier-python/)
|
|
33
|
+
[](https://pypi.org/project/copier-python/)
|
|
34
|
+
[](https://github.com/smkent/copier-python/actions/workflows/ci.yml)
|
|
35
|
+
[](https://codecov.io/gh/smkent/copier-python)
|
|
36
|
+
[](https://renovatebot.com)
|
|
37
|
+
[](https://github.com/smkent/copier-python)
|
|
38
|
+
|
|
39
|
+
## Prerequisites
|
|
40
|
+
|
|
41
|
+
- [Astral's **uv** Python project manager][uv]
|
|
42
|
+
- [Copier][copier]: `uv tool install copier`
|
|
43
|
+
|
|
44
|
+
## Usage
|
|
45
|
+
|
|
46
|
+
```sh
|
|
47
|
+
copier copy "gh:smkent/copier-python" /new/project/path
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
[copier]: https://copier.readthedocs.io
|
|
51
|
+
[uv]: https://docs.astral.sh/uv/
|
|
52
|
+
|
|
53
|
+
## Credits
|
|
54
|
+
|
|
55
|
+
This template was inspired by [pawamoy/copier-uv][copier-uv] and
|
|
56
|
+
[ritwiktiwari/copier-astral][copier-astral] -- Thanks!
|
|
57
|
+
|
|
58
|
+
[copier-uv]: https://github.com/pawamoy/copier-uv
|
|
59
|
+
[copier-astral]: https://github.com/ritwiktiwari/copier-astral
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# copier-python
|
|
2
|
+
|
|
3
|
+
[Copier][copier] template for Python projects with modern tooling
|
|
4
|
+
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
[](https://pypi.org/project/copier-python/)
|
|
7
|
+
[](https://pypi.org/project/copier-python/)
|
|
8
|
+
[](https://github.com/smkent/copier-python/actions/workflows/ci.yml)
|
|
9
|
+
[](https://codecov.io/gh/smkent/copier-python)
|
|
10
|
+
[](https://renovatebot.com)
|
|
11
|
+
[](https://github.com/smkent/copier-python)
|
|
12
|
+
|
|
13
|
+
## Prerequisites
|
|
14
|
+
|
|
15
|
+
- [Astral's **uv** Python project manager][uv]
|
|
16
|
+
- [Copier][copier]: `uv tool install copier`
|
|
17
|
+
|
|
18
|
+
## Usage
|
|
19
|
+
|
|
20
|
+
```sh
|
|
21
|
+
copier copy "gh:smkent/copier-python" /new/project/path
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
[copier]: https://copier.readthedocs.io
|
|
25
|
+
[uv]: https://docs.astral.sh/uv/
|
|
26
|
+
|
|
27
|
+
## Credits
|
|
28
|
+
|
|
29
|
+
This template was inspired by [pawamoy/copier-uv][copier-uv] and
|
|
30
|
+
[ritwiktiwari/copier-astral][copier-astral] -- Thanks!
|
|
31
|
+
|
|
32
|
+
[copier-uv]: https://github.com/pawamoy/copier-uv
|
|
33
|
+
[copier-astral]: https://github.com/ritwiktiwari/copier-astral
|
|
File without changes
|
|
@@ -0,0 +1,219 @@
|
|
|
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
|
+
|
|
34
|
+
[project.urls]
|
|
35
|
+
Homepage = "https://github.com/smkent/copier-python"
|
|
36
|
+
Repository = "https://github.com/smkent/copier-python"
|
|
37
|
+
Issues = "https://github.com/smkent/copier-python/issues"
|
|
38
|
+
|
|
39
|
+
[dependency-groups]
|
|
40
|
+
dev = [
|
|
41
|
+
"copier>=9",
|
|
42
|
+
"poethepoet>=0.42",
|
|
43
|
+
"prek>=0.3",
|
|
44
|
+
"pysentry-rs>=0.4",
|
|
45
|
+
"pytest>=9.0",
|
|
46
|
+
"pytest-cov>=7.0",
|
|
47
|
+
"pytest-sugar>=1.0",
|
|
48
|
+
"syrupy>=4.0",
|
|
49
|
+
"ruff>=0.15",
|
|
50
|
+
"ty>=0.0.26",
|
|
51
|
+
]
|
|
52
|
+
docs = [
|
|
53
|
+
"mkdocstrings[python]>=1",
|
|
54
|
+
"zensical>=0.0.30",
|
|
55
|
+
]
|
|
56
|
+
|
|
57
|
+
[tool.hatch.build.targets.sdist]
|
|
58
|
+
include = ["/copier_python", "/tests", "*.md", "LICENSE"]
|
|
59
|
+
|
|
60
|
+
[tool.hatch.version]
|
|
61
|
+
source = "uv-dynamic-versioning"
|
|
62
|
+
|
|
63
|
+
[tool.poe.executor]
|
|
64
|
+
type = "uv"
|
|
65
|
+
|
|
66
|
+
[tool.poe.tasks.audit]
|
|
67
|
+
cmd = "pysentry-rs"
|
|
68
|
+
help = "Run dependencies security audit"
|
|
69
|
+
|
|
70
|
+
[tool.poe.tasks.build]
|
|
71
|
+
cmd = "uv build"
|
|
72
|
+
help = "Build distribution package"
|
|
73
|
+
|
|
74
|
+
[tool.poe.tasks.docs-build]
|
|
75
|
+
cmd = "zensical build -c"
|
|
76
|
+
help = "Build documentation site"
|
|
77
|
+
|
|
78
|
+
[tool.poe.tasks.docs]
|
|
79
|
+
sequence = [
|
|
80
|
+
{ref = "docs-build"},
|
|
81
|
+
{cmd = "zensical serve -a \"${host}:${port}\""},
|
|
82
|
+
]
|
|
83
|
+
help = "Run documentation site locally"
|
|
84
|
+
|
|
85
|
+
[tool.poe.tasks.docs.args.host]
|
|
86
|
+
options = ['--host', '-h']
|
|
87
|
+
help = "Bind IP"
|
|
88
|
+
default = "localhost"
|
|
89
|
+
|
|
90
|
+
[tool.poe.tasks.docs.args.port]
|
|
91
|
+
positional = true
|
|
92
|
+
help = "Bind Port"
|
|
93
|
+
default = "8000"
|
|
94
|
+
|
|
95
|
+
[tool.poe.tasks.init]
|
|
96
|
+
sequence = [
|
|
97
|
+
{shell = "[ ! -d .git ] || { echo \"git repository already exists\"; exit 1; }"},
|
|
98
|
+
{cmd = "git init"},
|
|
99
|
+
{cmd = "uv sync"},
|
|
100
|
+
{ref = "setup"},
|
|
101
|
+
{cmd = "git remote add origin https://github.com/smkent/copier-python"},
|
|
102
|
+
{cmd = "git config --local remote.origin.pushurl git@github.com:smkent/copier-python.git"},
|
|
103
|
+
{cmd = "git add ."},
|
|
104
|
+
{cmd = "git commit -m 'Create project from template'"},
|
|
105
|
+
]
|
|
106
|
+
help = "Initialize git repository once on project creation"
|
|
107
|
+
|
|
108
|
+
[tool.poe.tasks.lint]
|
|
109
|
+
cmd = "prek run --all-files"
|
|
110
|
+
help = "Run all formatters and static checks"
|
|
111
|
+
|
|
112
|
+
[tool.poe.tasks.lt]
|
|
113
|
+
sequence = [{ref = "lint"}, {ref = "test"}]
|
|
114
|
+
help = "Run all formatters, static checks and tests"
|
|
115
|
+
|
|
116
|
+
[tool.poe.tasks.setup]
|
|
117
|
+
cmd = "prek install"
|
|
118
|
+
help = "Install git hooks"
|
|
119
|
+
|
|
120
|
+
[tool.poe.tasks.snapup]
|
|
121
|
+
cmd = "pytest --snapshot-update"
|
|
122
|
+
help = "Update test snapshots"
|
|
123
|
+
|
|
124
|
+
[tool.poe.tasks.test]
|
|
125
|
+
cmd = "pytest"
|
|
126
|
+
help = "Run tests"
|
|
127
|
+
|
|
128
|
+
[tool.poe.tasks.test-versions]
|
|
129
|
+
sequence = ["test-py310", "test-py311", "test-py312", "test-py313", "test-py314"]
|
|
130
|
+
help = "Run tests across all Python versions"
|
|
131
|
+
|
|
132
|
+
[tool.poe.tasks.test-py310]
|
|
133
|
+
cmd = "pytest"
|
|
134
|
+
executor = {isolated = true, python = "3.10"}
|
|
135
|
+
help = "Run tests using Python 3.10"
|
|
136
|
+
|
|
137
|
+
[tool.poe.tasks.test-py311]
|
|
138
|
+
cmd = "pytest"
|
|
139
|
+
executor = {isolated = true, python = "3.11"}
|
|
140
|
+
help = "Run tests using Python 3.11"
|
|
141
|
+
|
|
142
|
+
[tool.poe.tasks.test-py312]
|
|
143
|
+
cmd = "pytest"
|
|
144
|
+
executor = {isolated = true, python = "3.12"}
|
|
145
|
+
help = "Run tests using Python 3.12"
|
|
146
|
+
|
|
147
|
+
[tool.poe.tasks.test-py313]
|
|
148
|
+
cmd = "pytest"
|
|
149
|
+
executor = {isolated = true, python = "3.13"}
|
|
150
|
+
help = "Run tests using Python 3.13"
|
|
151
|
+
|
|
152
|
+
[tool.poe.tasks.test-py314]
|
|
153
|
+
cmd = "pytest"
|
|
154
|
+
executor = {isolated = true, python = "3.14"}
|
|
155
|
+
help = "Run tests using Python 3.14"
|
|
156
|
+
|
|
157
|
+
[tool.pytest]
|
|
158
|
+
addopts = [
|
|
159
|
+
"-ra",
|
|
160
|
+
"--cov",
|
|
161
|
+
"--strict-config",
|
|
162
|
+
"--strict-markers",
|
|
163
|
+
]
|
|
164
|
+
testpaths = ["tests"]
|
|
165
|
+
|
|
166
|
+
[tool.coverage.run]
|
|
167
|
+
source = ["copier_python"]
|
|
168
|
+
branch = true
|
|
169
|
+
|
|
170
|
+
[tool.coverage.report]
|
|
171
|
+
show_missing = true
|
|
172
|
+
skip_covered = true
|
|
173
|
+
exclude_lines = [
|
|
174
|
+
"pragma: no cover",
|
|
175
|
+
"if TYPE_CHECKING:",
|
|
176
|
+
"@abstractmethod",
|
|
177
|
+
]
|
|
178
|
+
|
|
179
|
+
[tool.ruff]
|
|
180
|
+
line-length = 79
|
|
181
|
+
output-format = "concise"
|
|
182
|
+
target-version = "py310"
|
|
183
|
+
|
|
184
|
+
[tool.ruff.lint]
|
|
185
|
+
select = ["ALL"]
|
|
186
|
+
ignore = [
|
|
187
|
+
"ANN401", # Dynamically typed expressions (typing.Any) are disallowed
|
|
188
|
+
"COM812", # Trailing comma missing
|
|
189
|
+
"D1", # Missing docstring presence rules
|
|
190
|
+
"EM", # flake8-errmsg
|
|
191
|
+
"G004", # Logging statement uses f-string
|
|
192
|
+
"PLR", # pylint Refactor
|
|
193
|
+
"S607", # Starting a process with a partial executable path
|
|
194
|
+
"TD", # flake8-todos
|
|
195
|
+
"TRY003", # Avoid specifying long messages outside the exception class
|
|
196
|
+
]
|
|
197
|
+
|
|
198
|
+
[tool.ruff.lint.isort]
|
|
199
|
+
known-first-party = ["copier_python"]
|
|
200
|
+
|
|
201
|
+
[tool.ruff.lint.per-file-ignores]
|
|
202
|
+
"tests/**/*.py" = [
|
|
203
|
+
"ARG", # flake8-unused-arguments
|
|
204
|
+
"S101", # Use of assert detected
|
|
205
|
+
]
|
|
206
|
+
|
|
207
|
+
[tool.ruff.lint.pydocstyle]
|
|
208
|
+
convention = "google"
|
|
209
|
+
|
|
210
|
+
[tool.ty.terminal]
|
|
211
|
+
error-on-warning = true
|
|
212
|
+
output-format = "concise"
|
|
213
|
+
|
|
214
|
+
[tool.uv]
|
|
215
|
+
default-groups = ["dev", "docs"]
|
|
216
|
+
|
|
217
|
+
[tool.uv-dynamic-versioning]
|
|
218
|
+
pattern = "default-unprefixed"
|
|
219
|
+
fallback-version = "0.0.0"
|
|
File without changes
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# serializer version: 1
|
|
2
|
+
# name: test_maintaining_features[docs]
|
|
3
|
+
'''
|
|
4
|
+
# Contributing to PKFire
|
|
5
|
+
|
|
6
|
+
## Development setup
|
|
7
|
+
|
|
8
|
+
### Prerequisites
|
|
9
|
+
|
|
10
|
+
- [Astral's **uv** Python project manager][uv]
|
|
11
|
+
- [`poethepoet`][poe] task runner: `uv tool install poethepoet`
|
|
12
|
+
|
|
13
|
+
### Project setup
|
|
14
|
+
|
|
15
|
+
```sh
|
|
16
|
+
git clone https://github.com/ness/PKFire
|
|
17
|
+
cd PKFire
|
|
18
|
+
uv sync
|
|
19
|
+
uv run poe setup # Enables pre-commit hooks
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Common tasks
|
|
23
|
+
|
|
24
|
+
| Command | Description |
|
|
25
|
+
|---|---|
|
|
26
|
+
| `poe docs` | Run documentation server locally |
|
|
27
|
+
| `poe lint` | Run all formatters and static checks |
|
|
28
|
+
| `poe lt` | Run all formatters, static checks and tests (`lint` and `test`) |
|
|
29
|
+
| `poe test` | Run tests |
|
|
30
|
+
|
|
31
|
+
[poe]: https://poethepoet.naln1.net/
|
|
32
|
+
[uv]: https://docs.astral.sh/uv/
|
|
33
|
+
|
|
34
|
+
'''
|
|
35
|
+
# ---
|
|
36
|
+
# name: test_maintaining_features[no_docs]
|
|
37
|
+
'''
|
|
38
|
+
# Contributing to PKFire
|
|
39
|
+
|
|
40
|
+
## Development setup
|
|
41
|
+
|
|
42
|
+
### Prerequisites
|
|
43
|
+
|
|
44
|
+
- [Astral's **uv** Python project manager][uv]
|
|
45
|
+
- [`poethepoet`][poe] task runner: `uv tool install poethepoet`
|
|
46
|
+
|
|
47
|
+
### Project setup
|
|
48
|
+
|
|
49
|
+
```sh
|
|
50
|
+
git clone https://github.com/ness/PKFire
|
|
51
|
+
cd PKFire
|
|
52
|
+
uv sync
|
|
53
|
+
uv run poe setup # Enables pre-commit hooks
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Common tasks
|
|
57
|
+
|
|
58
|
+
| Command | Description |
|
|
59
|
+
|---|---|
|
|
60
|
+
| `poe lint` | Run all formatters and static checks |
|
|
61
|
+
| `poe lt` | Run all formatters, static checks and tests (`lint` and `test`) |
|
|
62
|
+
| `poe test` | Run tests |
|
|
63
|
+
|
|
64
|
+
[poe]: https://poethepoet.naln1.net/
|
|
65
|
+
[uv]: https://docs.astral.sh/uv/
|
|
66
|
+
|
|
67
|
+
'''
|
|
68
|
+
# ---
|