python-package-copier-template 0.6.0__tar.gz → 0.7.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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: python-package-copier-template
3
- Version: 0.6.0
3
+ Version: 0.7.0
4
4
  Summary: A Copier template for modern Python projects.
5
5
  Author: Martín Gaitán
6
6
  Author-email: Martín Gaitán <gaitan@gmail.com>
@@ -25,7 +25,7 @@ Documentation: <https://mgaitan.github.io/python-package-copier-template/>
25
25
 
26
26
  ## Features
27
27
 
28
- - 🐍 Modern Python package (3.12+)
28
+ - 🐍 Modern Python package supporting Python 3.12-3.15
29
29
  - 📦 Build and dependency management with [uv](https://docs.astral.sh/uv/), split by groups (dev/qa/docs)
30
30
  - 🧊 Dependency cooldowns enabled by default in `uv` (`[tool.uv].exclude-newer = "1 week"`), with targeted overrides when needed (for example `ty`) to reduce supply-chain risk without blocking QA tools
31
31
  - 🛡️ uv malware checks enabled in Make targets and GitHub Actions to reject locked dependencies with known malicious-package advisories
@@ -14,7 +14,7 @@ Documentation: <https://mgaitan.github.io/python-package-copier-template/>
14
14
 
15
15
  ## Features
16
16
 
17
- - 🐍 Modern Python package (3.12+)
17
+ - 🐍 Modern Python package supporting Python 3.12-3.15
18
18
  - 📦 Build and dependency management with [uv](https://docs.astral.sh/uv/), split by groups (dev/qa/docs)
19
19
  - 🧊 Dependency cooldowns enabled by default in `uv` (`[tool.uv].exclude-newer = "1 week"`), with targeted overrides when needed (for example `ty`) to reduce supply-chain risk without blocking QA tools
20
20
  - 🛡️ uv malware checks enabled in Make targets and GitHub Actions to reject locked dependencies with known malicious-package advisories
@@ -0,0 +1,113 @@
1
+ [project]
2
+ name = "python-package-copier-template"
3
+ version = "0.7.0"
4
+ description = "A Copier template for modern Python projects."
5
+ readme = "README.md"
6
+ requires-python = ">=3.12"
7
+ dependencies = [
8
+ "copier>=9.17.0",
9
+ "copier-templates-extensions>=0.3.2",
10
+ ]
11
+
12
+ [[project.authors]]
13
+ name = "Martín Gaitán"
14
+ email = "gaitan@gmail.com"
15
+
16
+ [project.scripts]
17
+ python-package-copier-template = "python_package_copier_template.cli:main"
18
+
19
+ [build-system]
20
+ requires = ["uv_build>=0.11.32,<0.12.0"]
21
+ build-backend = "uv_build"
22
+
23
+ [tool.uv.build-backend]
24
+ module-name = "python_package_copier_template"
25
+ module-root = ""
26
+
27
+ [tool.ty.src]
28
+ exclude = [
29
+ ".worktrees/",
30
+ ".external-worktrees/",
31
+ ]
32
+
33
+ [tool.ruff]
34
+ line-length = 120
35
+
36
+ [tool.ruff.lint]
37
+ select = [
38
+ "E",
39
+ "W",
40
+ "F",
41
+ "I",
42
+ "C90",
43
+ "A",
44
+ "ANN",
45
+ "UP",
46
+ "RUF",
47
+ "T10",
48
+ "ISC",
49
+ "SIM",
50
+ "ASYNC",
51
+ "ERA",
52
+ "TRY",
53
+ "YTT",
54
+ "BLE",
55
+ "B",
56
+ "EXE",
57
+ "FA",
58
+ "C4",
59
+ "DTZ",
60
+ "FBT",
61
+ "INT",
62
+ "LOG",
63
+ "S",
64
+ "SLF",
65
+ "G",
66
+ "FLY",
67
+ "N",
68
+ "PIE",
69
+ "PYI",
70
+ "PT",
71
+ "TC",
72
+ "PTH",
73
+ "PERF",
74
+ "D",
75
+ "PGH",
76
+ "PL",
77
+ "FURB",
78
+ "RET",
79
+ "TID252",
80
+ ]
81
+ ignore = [
82
+ "D203",
83
+ "D213",
84
+ ]
85
+
86
+ [tool.ruff.lint.per-file-ignores]
87
+ "tests/**/*.py" = [
88
+ "ANN",
89
+ "D",
90
+ "S101",
91
+ "S108",
92
+ "S603",
93
+ "S607",
94
+ ]
95
+ "docs/conf.py" = [
96
+ "A",
97
+ "D100",
98
+ ]
99
+
100
+ [dependency-groups]
101
+ dev = ["pytest>=9.1.1"]
102
+ docs = [
103
+ "myst-parser>=5.1.0",
104
+ "richterm[sphinx]>=0.2.0",
105
+ "sphinx>=9.1.0",
106
+ "sphinx-book-theme>=1.4.0",
107
+ "sphinxcontrib-mermaid>=2.1.0",
108
+ ]
109
+ lint = ["ruff>=0.16.7"]
110
+ qa = [
111
+ { include-group = "lint" },
112
+ "ty>=0.0.80",
113
+ ]
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "python-package-copier-template"
3
- version = "0.6.0"
3
+ version = "0.7.0"
4
4
  description = "A Copier template for modern Python projects."
5
5
  readme = "README.md"
6
6
  authors = [{ name = "Martín Gaitán", email = "gaitan@gmail.com" }]
@@ -55,6 +55,7 @@ select = [
55
55
  "INT", # https://docs.astral.sh/ruff/rules/#flake8-gettext-int
56
56
  "LOG", # https://docs.astral.sh/ruff/rules/#flake8-logging-log
57
57
  "S", # https://docs.astral.sh/ruff/rules/#flake8-bandit-s
58
+ "SLF", # https://docs.astral.sh/ruff/rules/#flake8-self-slf
58
59
  "G", # https://docs.astral.sh/ruff/rules/#flake8-logging-format-g
59
60
  "FLY", # https://docs.astral.sh/ruff/rules/#flynt-fly
60
61
  "N", # https://docs.astral.sh/ruff/rules/#pep8-naming-n
@@ -89,9 +90,9 @@ docs = [
89
90
  "sphinxcontrib-mermaid>=2.1.0",
90
91
  ]
91
92
  lint = [
92
- "ruff>=0.16.0",
93
+ "ruff>=0.16.7",
93
94
  ]
94
95
  qa = [
95
96
  { include-group = "lint" },
96
- "ty>=0.0.63",
97
+ "ty>=0.0.80",
97
98
  ]
@@ -119,6 +119,7 @@ def main(argv: list[str] | None = None) -> int:
119
119
  unsafe=True,
120
120
  overwrite=True,
121
121
  skip_answered=True,
122
+ vcs_ref="HEAD",
122
123
  )
123
124
  else:
124
125
  template_target = resolve_template_target()