Skip to content

Commit d70b606

Browse files
authored
potentially resolving issue 6205 (#6243)
* resolve issue 6205 by requiring packaging>=22 * Specify to pypi we support 3.13.
1 parent 472b118 commit d70b606

File tree

3 files changed

+97
-98
lines changed

3 files changed

+97
-98
lines changed

.pre-commit-config.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ exclude: '^(pipenv/patched/|pipenv/vendor/|tests/|pipenv/pipenv.1)'
22

33
repos:
44
- repo: https://github.com/pre-commit/pre-commit-hooks
5-
rev: v4.4.0
5+
rev: v4.6.0
66
hooks:
77
- id: check-builtin-literals
88
- id: check-added-large-files
@@ -18,7 +18,7 @@ repos:
1818
exclude: .patch
1919

2020
- repo: https://github.com/astral-sh/ruff-pre-commit
21-
rev: v0.0.287
21+
rev: v0.6.7
2222
hooks:
2323
- id: ruff
2424
args: [--fix, --exit-non-zero-on-fix]
@@ -53,7 +53,7 @@ repos:
5353
stages: [manual]
5454

5555
- repo: https://github.com/tox-dev/pyproject-fmt
56-
rev: "1.2.0"
56+
rev: "2.2.4"
5757
hooks:
5858
- id: pyproject-fmt
5959

news/6243.bugfix.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix report that pipenv requires ``packaging>=22`` on some systems by setting it as a dependency.

pyproject.toml

Lines changed: 93 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ requires = [
88
name = "pipenv"
99
description = "Python Development Workflow for Humans."
1010
readme = "README.md"
11-
license = {file = "LICENSE"}
11+
license = { file = "LICENSE" }
1212
authors = [
13-
{name = "Pipenv maintainer team", email = "[email protected]"},
13+
{ name = "Pipenv maintainer team", email = "[email protected]" },
1414
]
1515
requires-python = ">=3.8"
16-
classifiers=[
16+
classifiers = [
1717
"License :: OSI Approved :: MIT License",
1818
"Programming Language :: Python",
1919
"Programming Language :: Python :: 3 :: Only",
@@ -22,6 +22,7 @@ classifiers=[
2222
"Programming Language :: Python :: 3.10",
2323
"Programming Language :: Python :: 3.11",
2424
"Programming Language :: Python :: 3.12",
25+
"Programming Language :: Python :: 3.13",
2526
"Programming Language :: Python :: Implementation :: CPython",
2627
"Programming Language :: Python :: Implementation :: PyPy",
2728
]
@@ -30,44 +31,41 @@ dynamic = [
3031
]
3132
dependencies = [
3233
"certifi",
34+
"packaging>=22",
3335
"setuptools>=67",
3436
"virtualenv>=20.24.2",
3537
]
36-
[project.optional-dependencies]
37-
dev = [
38+
optional-dependencies.dev = [
3839
"beautifulsoup4",
3940
"black==23.3",
40-
"flake8<4.0,>=3.3",
41+
"flake8<4,>=3.3",
4142
"invoke",
4243
"parver",
4344
"sphinx",
4445
"towncrier",
4546
]
46-
tests = [
47+
optional-dependencies.tests = [
4748
"flaky",
4849
"mock",
4950
"pytest>=5",
5051
"pytest-timeout",
5152
"pytest-xdist",
5253
]
53-
[project.urls]
54-
Documentation = "https://pipenv.pypa.io/en/latest/"
55-
Homepage = "https://github.com/pypa/pipenv"
56-
Source = "https://github.com/pypa/pipenv.git"
57-
[project.scripts]
58-
pipenv = "pipenv:cli"
59-
pipenv-resolver = "pipenv.resolver:main"
54+
urls.Documentation = "https://pipenv.pypa.io/en/latest/"
55+
urls.Homepage = "https://github.com/pypa/pipenv"
56+
urls.Source = "https://github.com/pypa/pipenv.git"
57+
scripts.pipenv = "pipenv:cli"
58+
scripts.pipenv-resolver = "pipenv.resolver:main"
6059

6160
[tool.setuptools.packages.find]
62-
where = ["."]
63-
exclude = ["tests*", "tests.*", "tasks*", "tasks.*"]
64-
61+
where = [ "." ]
62+
exclude = [ "tests*", "tests.*", "tasks*", "tasks.*" ]
6563

6664
[tool.setuptools.package-data]
67-
"*" = ["LICENSE", "NOTICES"]
68-
"pipenv.patched.safety" = ["VERSION", "safety-policy-template.yml"]
69-
"pipenv.patched.pip._vendor.certifi" = ["*.pem"]
70-
"pipenv.patched.pip._vendor.requests" = ["*.pem"]
65+
"*" = [ "LICENSE", "NOTICES" ]
66+
"pipenv.patched.safety" = [ "VERSION", "safety-policy-template.yml" ]
67+
"pipenv.patched.pip._vendor.certifi" = [ "*.pem" ]
68+
"pipenv.patched.pip._vendor.requests" = [ "*.pem" ]
7169
"pipenv.patched.pip._vendor.distlib" = [
7270
"t32.exe",
7371
"t64.exe",
@@ -76,12 +74,10 @@ exclude = ["tests*", "tests.*", "tasks*", "tasks.*"]
7674
"w64.exe",
7775
"w64-arm.exe",
7876
]
79-
"pipenv.vendor.ruamel" = ["yaml"]
80-
77+
"pipenv.vendor.ruamel" = [ "yaml" ]
8178

8279
[tool.setuptools.dynamic]
83-
version = {attr = "pipenv.__version__"}
84-
80+
version = { attr = "pipenv.__version__" }
8581

8682
## TESTING AND DEVELOPER CONFIGURATION BELOW ##
8783

@@ -112,6 +108,9 @@ exclude = '''
112108
'''
113109

114110
[tool.ruff]
111+
target-version = "py37"
112+
113+
line-length = 137
115114
exclude = [
116115
"pipenv/patched/*",
117116
"pipenv/vendor/*",
@@ -133,48 +132,47 @@ select = [
133132
"TID",
134133
"UP",
135134
"W",
136-
"YTT"
135+
"YTT",
137136
]
138137
ignore = [
139138
"B904",
140139
"PIE790",
141140
"PLR5501",
142141
"PLW2901",
143142
]
144-
line-length = 137
145-
target-version = "py37"
146-
147-
148-
[tool.ruff.mccabe]
149-
max-complexity = 44
150-
143+
pylint.allow-magic-value-types = [ "int", "str" ]
144+
pylint.max-args = 20
145+
pylint.max-branches = 38
146+
pylint.max-returns = 9
147+
pylint.max-statements = 155
148+
mccabe.max-complexity = 44
149+
per-file-ignores."docs/conf.py" = [ "E402", "E501" ]
150+
per-file-ignores."get-pipenv.py" = [ "E402" ]
151+
per-file-ignores."pipenv/__init__.py" = [ "E401" ]
152+
per-file-ignores."pipenv/cli/command.py" = [ "TID252" ]
153+
per-file-ignores."pipenv/utils/internet.py" = [ "PLW0603" ]
154+
per-file-ignores."pipenv/utils/resolver.py" = [ "B018" ]
155+
per-file-ignores."tests/*" = [ "E501", "F401", "I", "PLC1901", "S101" ]
156+
per-file-ignores."tests/integration/conftest.py" = [ "B003", "PIE800", "PLW0603" ]
157+
per-file-ignores."tests/integration/test_pipenv.py" = [ "E741" ]
158+
per-file-ignores."tests/integration/test_requirements.py" = [ "E741" ]
159+
per-file-ignores."tests/unit/test_funktools.py" = [ "B015" ]
160+
per-file-ignores."tests/unit/test_utils.py" = [ "F811" ]
151161

152-
[tool.ruff.pylint]
153-
allow-magic-value-types = ["int", "str"]
154-
max-args = 20
155-
max-branches = 38
156-
max-returns = 9
157-
max-statements = 155
158-
159-
160-
[tool.ruff.per-file-ignores]
161-
"docs/conf.py" = ["E402", "E501"]
162-
"get-pipenv.py" = ["E402"]
163-
"pipenv/__init__.py" = ["E401"]
164-
"pipenv/cli/command.py" = ["TID252"]
165-
"pipenv/utils/internet.py" = ["PLW0603"]
166-
"pipenv/utils/resolver.py" = ["B018"]
167-
"tests/*" = ["E501", "F401", "I", "PLC1901", "S101"]
168-
"tests/integration/conftest.py" = ["B003", "PIE800", "PLW0603"]
169-
"tests/integration/test_pipenv.py" = ["E741"]
170-
"tests/integration/test_requirements.py" = ["E741"]
171-
"tests/unit/test_funktools.py" = ["B015"]
172-
"tests/unit/test_utils.py" = ["F811"]
162+
[tool.pyproject-fmt]
163+
# after how many column width split arrays/dicts into multiple lines, 1 will force always
164+
column_width = 120
165+
# how many spaces use for indentation
166+
indent = 2
167+
# if false will remove unnecessary trailing ``.0``'s from version specifiers
168+
keep_full_version = true
169+
# maximum Python version to use when generating version specifiers
170+
max_supported_python = "3.13"
173171

174172
[tool.pytest.ini_options]
175173
addopts = "-ra"
176174
plugins = "xdist"
177-
testpaths = ["tests"]
175+
testpaths = [ "tests" ]
178176
# Add vendor and patched in addition to the default list of ignored dirs
179177
# Additionally, ignore tasks, news, test subdirectories and peeps directory
180178
norecursedirs = [
@@ -194,7 +192,7 @@ norecursedirs = [
194192
"tests/pypi",
195193
"peeps",
196194
]
197-
filterwarnings = []
195+
filterwarnings = [ ]
198196
# These are not all the custom markers, but most of the ones with repeat uses
199197
# `pipenv run pytest --markers` will list all markers including these
200198
markers = [
@@ -227,13 +225,6 @@ markers = [
227225
[tool.coverage.run]
228226
parallel = true
229227

230-
[tool.mypy]
231-
ignore_missing_imports = true
232-
follow_imports = "skip"
233-
html_report = "mypyhtml"
234-
python_version = "3.7"
235-
mypy_path = "typeshed/pyi:typeshed/imports"
236-
237228
[tool.towncrier]
238229
package = "pipenv"
239230
filename = "CHANGELOG.md"
@@ -242,42 +233,49 @@ directory = "news/"
242233
title_format = "{version} ({project_date})"
243234
template = "news/towncrier_template.rst"
244235

245-
[[tool.towncrier.type]]
246-
directory = "feature"
247-
name = "Features & Improvements"
248-
showcontent = true
236+
[[tool.towncrier.type]]
237+
directory = "feature"
238+
name = "Features & Improvements"
239+
showcontent = true
240+
241+
[[tool.towncrier.type]]
242+
directory = "behavior"
243+
name = "Behavior Changes"
244+
showcontent = true
249245

250-
[[tool.towncrier.type]]
251-
directory = "behavior"
252-
name = "Behavior Changes"
253-
showcontent = true
246+
[[tool.towncrier.type]]
247+
directory = "bugfix"
248+
name = "Bug Fixes"
249+
showcontent = true
254250

255-
[[tool.towncrier.type]]
256-
directory = "bugfix"
257-
name = "Bug Fixes"
258-
showcontent = true
251+
[[tool.towncrier.type]]
252+
directory = "vendor"
253+
name = "Vendored Libraries"
254+
showcontent = true
259255

260-
[[tool.towncrier.type]]
261-
directory = "vendor"
262-
name = "Vendored Libraries"
263-
showcontent = true
256+
[[tool.towncrier.type]]
257+
directory = "doc"
258+
name = "Improved Documentation"
259+
showcontent = true
264260

265-
[[tool.towncrier.type]]
266-
directory = "doc"
267-
name = "Improved Documentation"
268-
showcontent = true
261+
[[tool.towncrier.type]]
262+
directory = "trivial"
263+
name = "Trivial Changes"
264+
showcontent = false
269265

270-
[[tool.towncrier.type]]
271-
directory = "trivial"
272-
name = "Trivial Changes"
273-
showcontent = false
266+
[[tool.towncrier.type]]
267+
directory = "removal"
268+
name = "Removals and Deprecations"
269+
showcontent = true
274270

275-
[[tool.towncrier.type]]
276-
directory = "removal"
277-
name = "Removals and Deprecations"
278-
showcontent = true
271+
[[tool.towncrier.type]]
272+
directory = "process"
273+
name = "Relates to dev process changes"
274+
showcontent = true
279275

280-
[[tool.towncrier.type]]
281-
directory = "process"
282-
name = "Relates to dev process changes"
283-
showcontent = true
276+
[tool.mypy]
277+
ignore_missing_imports = true
278+
follow_imports = "skip"
279+
html_report = "mypyhtml"
280+
python_version = "3.7"
281+
mypy_path = "typeshed/pyi:typeshed/imports"

0 commit comments

Comments
 (0)