Skip to content

Commit 16d77f1

Browse files
committed
Change package_name to not be a template question
Stop asking the package_name with a default, instead hardcode it like we always meant to. Done by setting a file with that data in new vars/ folder, and using "include" to bring back that data as if we had a "memory set" function. Since we moved to vars/ folder, and file/folder names can't have slash (/), use pathjoin func on file/folders instead to work around missing char (trick from copier docs).
1 parent a3c6eeb commit 16d77f1

11 files changed

Lines changed: 17 additions & 14 deletions

File tree

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@ templating versions are not perfect matches for semantic versions.
66

77
## [Unreleased]
88

9+
### Changed
10+
11+
- No longer asking `package_name` as question with a default that's
12+
overrideable, now derived from `project_name` (converted to
13+
lowercase_with_underscore) without asking, as it was always intended.
14+
915
### Added
1016

1117
- Allow setting a container registry when building. Run `make

copier.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,3 @@ author_email:
5050
project_slug:
5151
type: str
5252
default: "{{project_name|trim|lower|replace(' ', '-')}}"
53-
54-
package_name:
55-
type: str
56-
default: "{{project_slug|replace('-', '_')}}"

template/CHANGELOG.md.j2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ The project uses semantic versioning (see [semver](https://semver.org)).
99

1010
### Added
1111

12-
- New python module `{{package_name}}`, exposed as shell command `{{project_slug}}`
12+
- New python module `{% include "vars/package_name.j2" %}`, exposed as shell command `{{project_slug}}`

template/README.md.j2

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ poetry shell
3737

3838
This repository uses Python{{python_version}}, using
3939
[Poetry](https://python-poetry.org) as package manager to define a
40-
Python package inside `src/{{package_name}}/`.
40+
Python package inside `src/{% include "vars/package_name.j2" %}/`.
4141

4242
`poetry` will create virtual environments if needed, fetch
4343
dependencies, and install them for development.
@@ -59,7 +59,7 @@ Python in Poetry:
5959

6060
```shell
6161
$ poetry run python
62-
>>> from {{package_name}} import main
62+
>>> from {% include "vars/package_name.j2" %} import main
6363
>>> main("blabla")
6464
```
6565

template/docs/source/conf.py.j2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ html_static_path = ["_static"]
6060

6161

6262
autodoc2_packages = [
63-
"../../src/{{package_name}}",
63+
"../../src/{% include "vars/package_name.j2" %}",
6464
]
6565
# Enable all docstrings as Myst Markdown
6666
autodoc2_docstring_parser_regexes = [

template/pyproject.toml.j2

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
[tool.poetry]
2-
name = "{{package_name}}"
2+
name = "{% include "vars/package_name.j2" %}"
33
version = "0.1.0"
44
description = "{{description}}"
55
authors = ["{{author_name}} <{{author_email}}>"]
66
readme = "README.md"
77

88
[tool.poetry.scripts]
9-
{{project_slug}} = "{{package_name}}.cli:cli"
9+
{{project_slug}} = "{% include "vars/package_name.j2" %}.cli:cli"
1010

1111
[tool.poetry.dependencies]
1212
python = "^{{python_version}}"
@@ -56,7 +56,7 @@ disable = ["logging-fstring-interpolation"]
5656
[tool.pytest.ini_options]
5757
addopts = """-vv \
5858
--doctest-modules \
59-
--cov={{package_name}} \
59+
--cov={% include "vars/package_name.j2" %} \
6060
--cov-report=xml:test_results/coverage.xml \
6161
--cov-report=html:test_results/coverage.html \
6262
--cov-report=term \

template/src/{{package_name}}/__init__.py.j2 renamed to template/src/{% include pathjoin('vars', 'package_name.j2') %}/__init__.py.j2

File renamed without changes.

template/src/{{package_name}}/cli.py.j2 renamed to template/src/{% include pathjoin('vars', 'package_name.j2') %}/cli.py.j2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def parse_arguments(arguments: list[str]) -> argparse.Namespace:
1515

1616

1717
def cli(arguments: Optional[list[str]] = None):
18-
"""Run the {{package_name}} cli"""
18+
"""Run the {% include "vars/package_name.j2" %} cli"""
1919
if arguments is None:
2020
arguments = sys.argv[1:]
2121
args = parse_arguments(arguments)

template/src/{{package_name}}/py.typed renamed to template/src/{% include pathjoin('vars', 'package_name.j2') %}/py.typed

File renamed without changes.

template/tests/test_{{package_name}}.py.j2

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
"""Basic tests of {{package_name}} CLI"""
1+
"""Basic tests of {% include "vars/package_name.j2" %} CLI"""
22

3-
from {{package_name}}.cli import cli
3+
from {% include "vars/package_name.j2" %}.cli import cli
44

55
API_AUTH_TOK = "not-a-real-pass123deadb0b"
66

0 commit comments

Comments
 (0)