cookie-python 0.3.1__py3-none-any.whl → 0.4.0__py3-none-any.whl

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,11 +1,12 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: cookie-python
3
- Version: 0.3.1
3
+ Version: 0.4.0
4
4
  Summary: Cookiecutter template for new Python projects
5
- License: MIT
5
+ License-Expression: MIT
6
+ License-File: LICENSE
6
7
  Author: Stephen Kent
7
8
  Author-email: smkent@smkent.net
8
- Requires-Python: >=3.9,<4.0
9
+ Requires-Python: >=3.10,<4.0
9
10
  Classifier: Development Status :: 3 - Alpha
10
11
  Classifier: Operating System :: OS Independent
11
12
  Classifier: Topic :: Software Development :: Code Generators
@@ -18,7 +19,13 @@ Requires-Dist: semver
18
19
  Requires-Dist: toml ; python_version < "3.11"
19
20
  Description-Content-Type: text/markdown
20
21
 
21
- # [Cookiecutter][cookiecutter] template for new Python projects
22
+ > [!WARNING]
23
+ >
24
+ > **cookie-python is deprecated!** Consider **[copier-python](https://github.com/smkent/copier-python)** instead, which is my newer Python project template.
25
+
26
+ [![No Maintenance Intended](http://unmaintained.tech/badge.svg)](http://unmaintained.tech/)
27
+
28
+ # DEPRECATED: [Cookiecutter][cookiecutter] template for new Python projects
22
29
 
23
30
  [![PyPI](https://img.shields.io/pypi/v/cookie-python)][pypi]
24
31
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/cookie-python)][pypi]
@@ -34,11 +41,7 @@ A template for new Python projects, with:
34
41
  * [pytest][pytest]
35
42
  * [pre-commit][pre-commit]
36
43
  * [mypy][mypy]
37
- * [black][black]
38
- * [flake8][flake8] (with [bugbear][flake8-bugbear], [simplify][flake8-simplify],
39
- and [pep8-naming][pep8-naming])
40
- * [autoflake][autoflake]
41
- * [pyupgrade][pyupgrade]
44
+ * [ruff][ruff]
42
45
  * [bandit][bandit]
43
46
  * [cruft][cruft]
44
47
  * GitHub Actions support
@@ -86,20 +89,14 @@ cookiecutter https://github.com/smkent/cookie-python
86
89
  * Update test expected output files from test results:
87
90
  `poetry run poe updatetests`
88
91
 
89
- [autoflake]: https://github.com/PyCQA/autoflake
90
92
  [bandit]: https://github.com/PyCQA/bandit
91
- [black]: https://github.com/psf/black
92
93
  [codecov]: https://codecov.io/gh/smkent/cookie-python
93
94
  [codecovio]: https://codecov.io
94
95
  [cookiecutter]: https://github.com/cookiecutter/cookiecutter
95
96
  [cruft]: https://github.com/cruft/cruft
96
- [flake8-bugbear]: https://github.com/PyCQA/flake8-bugbear
97
- [flake8-simplify]: https://github.com/MartinThoma/flake8-simplify
98
- [flake8]: https://github.com/pycqa/flake8
99
97
  [gh-actions]: https://github.com/smkent/cookie-python/actions?query=branch%3Amain
100
98
  [logo]: https://raw.github.com/smkent/cookie-python/main/img/cookie-python.png
101
99
  [mypy]: https://github.com/python/mypy
102
- [pep8-naming]: https://github.com/PyCQA/pep8-naming
103
100
  [pipx]: https://pypa.github.io/pipx/
104
101
  [poetry-dynamic-versioning]: https://github.com/mtkennerly/poetry-dynamic-versioning
105
102
  [poetry-installation]: https://python-poetry.org/docs/#installation
@@ -107,6 +104,6 @@ cookiecutter https://github.com/smkent/cookie-python
107
104
  [pre-commit]: https://pre-commit.com/
108
105
  [pypi]: https://pypi.org/project/cookie-python/
109
106
  [pytest]: https://docs.pytest.org
110
- [pyupgrade]: https://github.com/asottile/pyupgrade
111
107
  [repo]: https://github.com/smkent/cookie-python
108
+ [ruff]: https://github.com/astral-sh/ruff
112
109
 
@@ -1,10 +1,10 @@
1
1
  {{cookiecutter.project_name}}/.codecov.yml,sha256=AXaf1WzBMQLDBy8JG0hwDRto9_0AJHGl8a-stn0iXkw,72
2
2
  {{cookiecutter.project_name}}/.github/workflows/actions/python-poetry/action.yml,sha256=Fda9d8EZEzQVbNCLFbyHHHa3WEnCMpG6W3Yfyfjhnk8,1521
3
- {{cookiecutter.project_name}}/.github/workflows/cd.yml,sha256=QIwI6PxffuvVCR0D7f5Tv7TKMrlQPNkAwXIg-iV1GmI,1834
4
- {{cookiecutter.project_name}}/.github/workflows/ci.yml,sha256=i0RE7cNx6Zb-mtCUP4doJZHbxVwK_uQ3gCxShRdTtSo,1542
5
- {{cookiecutter.project_name}}/.github/workflows/container.yml,sha256=KIuvd8oqa4CYmFL3sU7krWUUrpVFpyVKX-T0nKtMEAI,1989
3
+ {{cookiecutter.project_name}}/.github/workflows/cd.yml,sha256=XujaJZPcXgecnYTOD3I0Y83EmugCLYempqcHGteQrPA,1834
4
+ {{cookiecutter.project_name}}/.github/workflows/ci.yml,sha256=FguH6x2oTs9ymmwUjb1VJ0YufoBJzfMkMYfuckhocK0,1561
5
+ {{cookiecutter.project_name}}/.github/workflows/container.yml,sha256=JEE4wpfvHnhU6orIsJqju4wobvS7VpuMVO3RQxZcmxA,1989
6
6
  {{cookiecutter.project_name}}/.gitignore,sha256=bsJhIdhouWZuAZ5ISVOOdTGEveIB_h0igmjgNjNZZEY,97
7
- {{cookiecutter.project_name}}/.pre-commit-config.yaml,sha256=7QGgE4XIy7628LOPnD3q0fPRM3hwmhElqU_GYDd-fJs,1275
7
+ {{cookiecutter.project_name}}/.pre-commit-config.yaml,sha256=K3kVPDFAT8BIgmKS7mluLKuDa8vrcdn1AuqebV_LFAk,675
8
8
  {{cookiecutter.project_name}}/Dockerfile,sha256=8UvDP9eeekF-SmEJpcDEUUa331ywwybQHUc-YSk2h74,259
9
9
  {{cookiecutter.project_name}}/LICENSE,sha256=uDNk3WkdMCo7sqGVWzbHjqu1TchEC0fL03YvIkrmZpw,86
10
10
  {{cookiecutter.project_name}}/README.md,sha256=6ai6zwONTQrrNmcmOqfuG3GmA-xawblPgaIWvlFyXqI,3064
@@ -15,14 +15,14 @@
15
15
  {{cookiecutter.project_name}}/cookiecutter_template_data/licenses/MIT,sha256=ZV0wNVFz30_2kbPyOzvo0-OXYCvzlnKCELj9lozbyJ8,1091
16
16
  {{cookiecutter.project_name}}/docker/entrypoint,sha256=4x6LAPV6qzfc6wszI3ZEbdVVgca_TOwidRjww2udtBY,59
17
17
  {{cookiecutter.project_name}}/docker-compose.yaml,sha256=UzuWrGYp4E_g083zuFli_E9f4XHs-gLrhEGSgrYy2sA,178
18
- {{cookiecutter.project_name}}/pyproject.toml,sha256=ycOpsIleniO2hdL1YmaCOqwAOrOtLlwgYRbNLJ5c-xk,2482
18
+ {{cookiecutter.project_name}}/pyproject.toml,sha256=zBDf4e3q67yn69AN4Y0gR9sls55mSTEHGmDxGStAd1Y,2693
19
19
  {{cookiecutter.project_name}}/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
20
  {{cookiecutter.project_name}}/tests/test_module.py,sha256=mho3CLy-Bub6dU1t--G7OHDnKODW4zIeY2kBiDcYHvs,159
21
21
  {{cookiecutter.project_name}}/{{cookiecutter.project_slug}}/__init__.py,sha256=FVgWGWVST3n5e9Km0xbq1INOgE_8uAckT33LaIo4RI8,71
22
22
  {{cookiecutter.project_name}}/{{cookiecutter.project_slug}}/__version__.py,sha256=ShXQBVjyiSOHxoQJS2BvNG395W4KZfqMxZWBAR0MZrE,22
23
23
  {{cookiecutter.project_name}}/{{cookiecutter.project_slug}}/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
- cookie_python-0.3.1.dist-info/LICENSE,sha256=FZK2LuxUG6nuZXiVOfkjmLsjHHCqn8Urhh03S8VGqug,1099
25
- cookie_python-0.3.1.dist-info/METADATA,sha256=LXdxZXMW1S2H986IlXFmQl6xqfa8rY8MhTNAkF2f62U,3630
26
- cookie_python-0.3.1.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
27
- cookie_python-0.3.1.dist-info/entry_points.txt,sha256=As3tvi9Uh-G2gBmGvVs2das5ggeEZpajb89WR4PP9xU,98
28
- cookie_python-0.3.1.dist-info/RECORD,,
24
+ cookie_python-0.4.0.dist-info/METADATA,sha256=Oqnkpigg25kTTjCTqCIK5O-HEdzMm-ikzV2O_daSxuA,3462
25
+ cookie_python-0.4.0.dist-info/WHEEL,sha256=L-WvLdSBvJWHXv5zrQxDvNRnIgoBzLUpcbuiw19KCuQ,88
26
+ cookie_python-0.4.0.dist-info/entry_points.txt,sha256=As3tvi9Uh-G2gBmGvVs2das5ggeEZpajb89WR4PP9xU,98
27
+ cookie_python-0.4.0.dist-info/licenses/LICENSE,sha256=FZK2LuxUG6nuZXiVOfkjmLsjHHCqn8Urhh03S8VGqug,1099
28
+ cookie_python-0.4.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.0.1
2
+ Generator: poetry-core 2.5.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -4,8 +4,8 @@ name: Release
4
4
  env:
5
5
  ENABLE_PYPI_PUBLISH: {{ "true" if cookiecutter.enable_pypi_publish|lower == "yes" else "false" }}
6
6
  ENABLE_TEST_PYPI_PUBLISH: false
7
- RELEASE_PYTHON_VERSION: "3.12"
8
- RELEASE_POETRY_VERSION: "2.0"
7
+ RELEASE_PYTHON_VERSION: "3.14"
8
+ RELEASE_POETRY_VERSION: "2.2"
9
9
 
10
10
  on:
11
11
  push:
@@ -25,8 +25,9 @@ jobs:
25
25
  - "3.11"
26
26
  - "3.12"
27
27
  - "3.13"
28
+ - "3.14"
28
29
  poetry-version:
29
- - "2.0"
30
+ - "2.2"
30
31
 
31
32
  runs-on: ${{ "{{" }} matrix.os }}-latest
32
33
  steps:
@@ -4,8 +4,8 @@ name: Build
4
4
  env:
5
5
  REGISTRY: ghcr.io
6
6
  IMAGE_NAME: ${{ "{{" }} github.repository }}
7
- RELEASE_PYTHON_VERSION: "3.12"
8
- RELEASE_POETRY_VERSION: "2.0"
7
+ RELEASE_PYTHON_VERSION: "3.14"
8
+ RELEASE_POETRY_VERSION: "2.2"
9
9
 
10
10
  on:
11
11
  pull_request:
@@ -1,51 +1,29 @@
1
1
  repos:
2
- - repo: https://github.com/pre-commit/pre-commit-hooks
3
- rev: v4.4.0
4
- hooks:
5
- - id: check-yaml
6
- - id: check-merge-conflict
7
- - id: debug-statements
8
- - id: end-of-file-fixer
9
- - id: trailing-whitespace
10
- - repo: https://github.com/psf/black
11
- rev: 23.1.0
12
- hooks:
13
- - id: black
14
- args: ["--config", "pyproject.toml"]
15
- - repo: https://github.com/pycqa/isort
16
- rev: 5.12.0
17
- hooks:
18
- - id: isort
19
- args: ["--show-config"]
20
- - repo: https://github.com/pycqa/bandit
21
- rev: 1.7.4
22
- hooks:
23
- - id: bandit
24
- additional_dependencies: ['.[toml]']
25
- args: ["--configfile", "pyproject.toml"]
26
- exclude: '^tests/'
27
- - repo: https://github.com/pycqa/flake8
28
- rev: 6.0.0
29
- hooks:
30
- - id: flake8
31
- additional_dependencies:
32
- - flake8-bugbear
33
- - flake8-pyproject
34
- - flake8-simplify
35
- - pep8-naming
36
- - repo: https://github.com/pycqa/autoflake
37
- rev: v2.0.1
38
- hooks:
39
- - id: autoflake
40
- - repo: https://github.com/asottile/pyupgrade
41
- rev: v3.3.1
42
- hooks:
43
- - id: pyupgrade
44
- args: ["--py39-plus", "--keep-runtime-typing"]
45
- - repo: local
46
- hooks:
47
- - id: mypy
48
- name: mypy
49
- language: python
50
- types_or: [python, pyi]
51
- entry: env -u VIRTUAL_ENV poetry run mypy
2
+ - repo: https://github.com/pre-commit/pre-commit-hooks
3
+ rev: v6.0.0
4
+ hooks:
5
+ - id: check-yaml
6
+ - id: check-merge-conflict
7
+ - id: debug-statements
8
+ - id: end-of-file-fixer
9
+ - id: trailing-whitespace
10
+ - repo: https://github.com/astral-sh/ruff-pre-commit
11
+ rev: v0.14.11
12
+ hooks:
13
+ - id: ruff
14
+ args: ["--fix"]
15
+ - id: ruff-format
16
+ - repo: https://github.com/pycqa/bandit
17
+ rev: 1.9.2
18
+ hooks:
19
+ - id: bandit
20
+ additional_dependencies: ['.[toml]']
21
+ args: ["--configfile", "pyproject.toml"]
22
+ exclude: '^tests/'
23
+ - repo: local
24
+ hooks:
25
+ - id: mypy
26
+ name: mypy
27
+ language: python
28
+ types_or: [python, pyi]
29
+ entry: env -u VIRTUAL_ENV poetry run mypy
@@ -15,7 +15,7 @@ classifiers = [
15
15
  "Topic :: Software Development :: Libraries :: Python Modules",
16
16
  "Typing :: Typed",
17
17
  ]
18
- requires-python = ">=3.9,<4.0"
18
+ requires-python = ">=3.10,<4.0"
19
19
  dynamic = [ "version" ]
20
20
  dependencies = [
21
21
  ]
@@ -31,21 +31,15 @@ poetry-dynamic-versioning = { version = ">=1.0.0,<2.0.0", extras = ["plugin"] }
31
31
 
32
32
  [tool.poetry.group.dev.dependencies]
33
33
  bandit = {extras = ["toml"], version = "*"}
34
- black = "*"
35
34
  cruft = "*"
36
- flake8 = "*"
37
- flake8-bugbear = "*"
38
- flake8-pyproject = "*"
39
- flake8-simplify = "*"
40
- isort = "*"
41
35
  mypy = "*"
42
- pep8-naming = "*"
43
36
  poethepoet = "*"
44
37
  pre-commit = "*"
45
38
  pytest = "*"
46
39
  pytest-cov = "*"
47
40
  pytest-github-actions-annotate-failures = "*"
48
41
  pytest-sugar = "*"
42
+ ruff = "*"
49
43
 
50
44
  [tool.poetry-dynamic-versioning]
51
45
  enable = true
@@ -67,9 +61,6 @@ help = "Run all tests"
67
61
  [tool.bandit]
68
62
  skips = ["B101"] # assert_used
69
63
 
70
- [tool.black]
71
- line-length = 79
72
-
73
64
  [tool.coverage.run]
74
65
  source = ["{{ cookiecutter.project_slug }}"]
75
66
 
@@ -80,14 +71,6 @@ show_missing = true
80
71
  [tool.cruft]
81
72
  skip = [".git"]
82
73
 
83
- [tool.flake8]
84
- exclude = "./.*"
85
-
86
- [tool.isort]
87
- atomic = true
88
- profile = "black"
89
- line_length = 79
90
-
91
74
  [tool.mypy]
92
75
  files = [ "tests", "{{ cookiecutter.project_slug }}" ]
93
76
  mypy_path = "types"
@@ -98,13 +81,41 @@ warn_return_any = true
98
81
  show_error_codes = true
99
82
  warn_unused_ignores = true
100
83
 
101
- [tool.pytest.ini_options]
102
- addopts = """\
103
- --cov \
104
- --cov-append \
105
- --cov-report term \
106
- --cov-report xml:.pytest_coverage.xml \
107
- --junitxml=.pytest_results.xml \
108
- """
84
+ [tool.pytest]
85
+ testpaths = ['tests']
86
+ addopts = [
87
+ "--cov",
88
+ "--cov-append",
89
+ "--cov-report=term",
90
+ "--cov-report=xml:.pytest_coverage.xml",
91
+ "--junitxml=.pytest_results.xml",
92
+ ]
93
+
94
+ [tool.ruff]
95
+ target-version = "py310"
96
+ line-length = 79
97
+ fix = true
98
+
99
+ exclude = [
100
+ ".git",
101
+ ".venv",
102
+ "__pycache__",
103
+ ]
104
+
105
+ [tool.ruff.format]
106
+ quote-style = "double"
107
+ indent-style = "space"
108
+ line-ending = "auto"
109
+
110
+ [tool.ruff.lint]
111
+ select = [
112
+ "E", "W", # pycodestyle
113
+ "F", # pyflakes
114
+ "I", # isort
115
+ "B", # bugbear
116
+ "SIM", # flake8-simplify
117
+ "N", # pep8-naming
118
+ "UP", # pyupgrade
119
+ ]
109
120
 
110
121
  # vim: ft=cfg