@@ -8,12 +8,12 @@ requires = [
8
8
name = " pipenv"
9
9
description = " Python Development Workflow for Humans."
10
10
readme = " README.md"
11
- license = {file = " LICENSE" }
11
+ license = { file = " LICENSE" }
12
12
authors = [
13
- {
name =
" Pipenv maintainer team" ,
email =
" [email protected] " },
13
+ {
name =
" Pipenv maintainer team" ,
email =
" [email protected] " },
14
14
]
15
15
requires-python = " >=3.8"
16
- classifiers = [
16
+ classifiers = [
17
17
" License :: OSI Approved :: MIT License" ,
18
18
" Programming Language :: Python" ,
19
19
" Programming Language :: Python :: 3 :: Only" ,
@@ -22,6 +22,7 @@ classifiers=[
22
22
" Programming Language :: Python :: 3.10" ,
23
23
" Programming Language :: Python :: 3.11" ,
24
24
" Programming Language :: Python :: 3.12" ,
25
+ " Programming Language :: Python :: 3.13" ,
25
26
" Programming Language :: Python :: Implementation :: CPython" ,
26
27
" Programming Language :: Python :: Implementation :: PyPy" ,
27
28
]
@@ -30,44 +31,41 @@ dynamic = [
30
31
]
31
32
dependencies = [
32
33
" certifi" ,
34
+ " packaging>=22" ,
33
35
" setuptools>=67" ,
34
36
" virtualenv>=20.24.2" ,
35
37
]
36
- [project .optional-dependencies ]
37
- dev = [
38
+ optional-dependencies.dev = [
38
39
" beautifulsoup4" ,
39
40
" black==23.3" ,
40
- " flake8<4.0 ,>=3.3" ,
41
+ " flake8<4,>=3.3" ,
41
42
" invoke" ,
42
43
" parver" ,
43
44
" sphinx" ,
44
45
" towncrier" ,
45
46
]
46
- tests = [
47
+ optional-dependencies. tests = [
47
48
" flaky" ,
48
49
" mock" ,
49
50
" pytest>=5" ,
50
51
" pytest-timeout" ,
51
52
" pytest-xdist" ,
52
53
]
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"
60
59
61
60
[tool .setuptools .packages .find ]
62
- where = [" ." ]
63
- exclude = [" tests*" , " tests.*" , " tasks*" , " tasks.*" ]
64
-
61
+ where = [ " ." ]
62
+ exclude = [ " tests*" , " tests.*" , " tasks*" , " tasks.*" ]
65
63
66
64
[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" ]
71
69
"pipenv.patched.pip._vendor.distlib" = [
72
70
" t32.exe" ,
73
71
" t64.exe" ,
@@ -76,12 +74,10 @@ exclude = ["tests*", "tests.*", "tasks*", "tasks.*"]
76
74
" w64.exe" ,
77
75
" w64-arm.exe" ,
78
76
]
79
- "pipenv.vendor.ruamel" = [" yaml" ]
80
-
77
+ "pipenv.vendor.ruamel" = [ " yaml" ]
81
78
82
79
[tool .setuptools .dynamic ]
83
- version = {attr = " pipenv.__version__" }
84
-
80
+ version = { attr = " pipenv.__version__" }
85
81
86
82
# # TESTING AND DEVELOPER CONFIGURATION BELOW ##
87
83
@@ -112,6 +108,9 @@ exclude = '''
112
108
'''
113
109
114
110
[tool .ruff ]
111
+ target-version = " py37"
112
+
113
+ line-length = 137
115
114
exclude = [
116
115
" pipenv/patched/*" ,
117
116
" pipenv/vendor/*" ,
@@ -133,48 +132,47 @@ select = [
133
132
" TID" ,
134
133
" UP" ,
135
134
" W" ,
136
- " YTT"
135
+ " YTT" ,
137
136
]
138
137
ignore = [
139
138
" B904" ,
140
139
" PIE790" ,
141
140
" PLR5501" ,
142
141
" PLW2901" ,
143
142
]
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" ]
151
161
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"
173
171
174
172
[tool .pytest .ini_options ]
175
173
addopts = " -ra"
176
174
plugins = " xdist"
177
- testpaths = [" tests" ]
175
+ testpaths = [ " tests" ]
178
176
# Add vendor and patched in addition to the default list of ignored dirs
179
177
# Additionally, ignore tasks, news, test subdirectories and peeps directory
180
178
norecursedirs = [
@@ -194,7 +192,7 @@ norecursedirs = [
194
192
" tests/pypi" ,
195
193
" peeps" ,
196
194
]
197
- filterwarnings = []
195
+ filterwarnings = [ ]
198
196
# These are not all the custom markers, but most of the ones with repeat uses
199
197
# `pipenv run pytest --markers` will list all markers including these
200
198
markers = [
@@ -227,13 +225,6 @@ markers = [
227
225
[tool .coverage .run ]
228
226
parallel = true
229
227
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
-
237
228
[tool .towncrier ]
238
229
package = " pipenv"
239
230
filename = " CHANGELOG.md"
@@ -242,42 +233,49 @@ directory = "news/"
242
233
title_format = " {version} ({project_date})"
243
234
template = " news/towncrier_template.rst"
244
235
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
249
245
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
254
250
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
259
255
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
264
260
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
269
265
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
274
270
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
279
275
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