Skip to content

Commit b6e83ff

Browse files
authored
Revert "Revert "chore(deps): pin packaging to upper boundary (#12664)" (#12871)" (#12875)
This reverts commit 91ce10c.
1 parent 91ce10c commit b6e83ff

File tree

10 files changed

+62
-35
lines changed

10 files changed

+62
-35
lines changed

requirements/deploy.in

+2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
gunicorn==20.1.0
22
ddtrace==1.7.2
3+
# Until resolved https://github.com/googleapis/python-bigquery/issues/1435
4+
packaging<22.0

requirements/deploy.txt

100644100755
+10-4
Original file line numberDiff line numberDiff line change
@@ -106,10 +106,12 @@ jsonschema==4.17.3 \
106106
--hash=sha256:0f864437ab8b6076ba6707453ef8f98a6a0d512a80e93f8abdb676f737ecb60d \
107107
--hash=sha256:a870ad254da1a8ca84b6a2905cac29d265f805acc57af304784962a2aa6508f6
108108
# via ddtrace
109-
packaging==23.0 \
110-
--hash=sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2 \
111-
--hash=sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97
112-
# via ddtrace
109+
packaging==21.3 \
110+
--hash=sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb \
111+
--hash=sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522
112+
# via
113+
# -r requirements/deploy.in
114+
# ddtrace
113115
protobuf==4.21.12 \
114116
--hash=sha256:1f22ac0ca65bb70a876060d96d914dae09ac98d114294f77584b0d2644fa9c30 \
115117
--hash=sha256:237216c3326d46808a9f7c26fd1bd4b20015fb6867dc5d263a493ef9a539293b \
@@ -128,6 +130,10 @@ protobuf==4.21.12 \
128130
# via
129131
# ddsketch
130132
# ddtrace
133+
pyparsing==3.0.9 \
134+
--hash=sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb \
135+
--hash=sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc
136+
# via packaging
131137
pyrsistent==0.19.3 \
132138
--hash=sha256:016ad1afadf318eb7911baa24b049909f7f3bb2c5b1ed7b6a8f21db21ea3faa8 \
133139
--hash=sha256:1a2994773706bbb4995c31a97bc94f1418314923bd1048c6d964837040376440 \

requirements/docs.in

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@ furo
22
Sphinx
33
sphinxcontrib-httpdomain
44
myst-parser
5-
docutils<0.19
5+
# Until resolved https://github.com/googleapis/python-bigquery/issues/1435
6+
packaging<22.0

requirements/docs.txt

+10-4
Original file line numberDiff line numberDiff line change
@@ -204,16 +204,22 @@ myst-parser==0.18.1 \
204204
--hash=sha256:61b275b85d9f58aa327f370913ae1bec26ebad372cc99f3ab85c8ec3ee8d9fb8 \
205205
--hash=sha256:79317f4bb2c13053dd6e64f9da1ba1da6cd9c40c8a430c447a7b146a594c246d
206206
# via -r requirements/docs.in
207-
packaging==23.0 \
208-
--hash=sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2 \
209-
--hash=sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97
210-
# via sphinx
207+
packaging==21.3 \
208+
--hash=sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb \
209+
--hash=sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522
210+
# via
211+
# -r requirements/docs.in
212+
# sphinx
211213
pygments==2.14.0 \
212214
--hash=sha256:b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297 \
213215
--hash=sha256:fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717
214216
# via
215217
# furo
216218
# sphinx
219+
pyparsing==3.0.9 \
220+
--hash=sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb \
221+
--hash=sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc
222+
# via packaging
217223
pytz==2022.7.1 \
218224
--hash=sha256:01a0681c4b9684a28304615eba55d1ab31ae00bf68ec157ec3708a8182dbbcd0 \
219225
--hash=sha256:78f4f37d8198e0627c5f1143240bb0206b8691d8d7ac6d78fee88b78733f8c4a

requirements/main.in

+2
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,5 @@ WTForms[email]>=2.0.0
7070
yara-python
7171
zope.sqlalchemy
7272
zxcvbn
73+
# Until resolved https://github.com/googleapis/python-bigquery/issues/1435
74+
packaging<22.0

requirements/main.txt

+7-3
Original file line numberDiff line numberDiff line change
@@ -1089,9 +1089,9 @@ orjson==3.8.5 \
10891089
--hash=sha256:f2be0025ca7e460bcacb250aba8ce0239be62957d58cf34045834cc9302611d3 \
10901090
--hash=sha256:f5745ff473dd5c6718bf8c8d5bc183f638b4f3e03c7163ffcda4d4ef453f42ff
10911091
# via -r requirements/main.in
1092-
packaging==23.0 \
1093-
--hash=sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2 \
1094-
--hash=sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97
1092+
packaging==21.3 \
1093+
--hash=sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb \
1094+
--hash=sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522
10951095
# via
10961096
# -r requirements/main.in
10971097
# google-cloud-bigquery
@@ -1265,6 +1265,10 @@ pyopenssl==23.0.0 \
12651265
--hash=sha256:c1cc5f86bcacefc84dada7d31175cae1b1518d5f60d3d0bb595a67822a868a6f \
12661266
--hash=sha256:df5fc28af899e74e19fccb5510df423581047e10ab6f1f4ba1763ff5fde844c0
12671267
# via webauthn
1268+
pyparsing==3.0.9 \
1269+
--hash=sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb \
1270+
--hash=sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc
1271+
# via packaging
12681272
pyqrcode==1.2.1 \
12691273
--hash=sha256:1b2812775fa6ff5c527977c4cd2ccb07051ca7d0bc0aecf937a43864abe5eff6 \
12701274
--hash=sha256:fdbf7634733e56b72e27f9bce46e4550b75a3a2c420414035cae9d9d26b234d5

requirements/tests.in

+2
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,5 @@ pytest>=3.0.0
66
pytest-postgresql>=3.1.3,<4.0.0
77
responses>=0.5.1
88
webtest
9+
# Until resolved https://github.com/googleapis/python-bigquery/issues/1435
10+
packaging<22.0

requirements/tests.txt

+10-4
Original file line numberDiff line numberDiff line change
@@ -183,10 +183,12 @@ mirakuru==2.4.2 \
183183
--hash=sha256:ec84d4d81b4bca96cb0e598c6b3d198a92f036a0c1223c881482c02a98508226 \
184184
--hash=sha256:fdb67d141cc9f7abd485a515d618daf3272c3e6ff48380749997ff8e8c5f2cb2
185185
# via pytest-postgresql
186-
packaging==23.0 \
187-
--hash=sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2 \
188-
--hash=sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97
189-
# via pytest
186+
packaging==21.3 \
187+
--hash=sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb \
188+
--hash=sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522
189+
# via
190+
# -r requirements/tests.in
191+
# pytest
190192
pluggy==1.0.0 \
191193
--hash=sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159 \
192194
--hash=sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3
@@ -213,6 +215,10 @@ psutil==5.9.4 \
213215
--hash=sha256:c1ca331af862803a42677c120aff8a814a804e09832f166f226bfd22b56feee8 \
214216
--hash=sha256:efeae04f9516907be44904cc7ce08defb6b665128992a56957abc9b61dca94b7
215217
# via mirakuru
218+
pyparsing==3.0.9 \
219+
--hash=sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb \
220+
--hash=sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc
221+
# via packaging
216222
pytest==7.2.1 \
217223
--hash=sha256:c7c6ca206e93355074ae32f7403e8ea12163b1163c976fee7d4d84027c162be5 \
218224
--hash=sha256:d45e0952f3727241918b8fd0f376f5ff6b301cc0777c6f9a556935c92d8a7d42

tests/unit/forklift/test_legacy.py

+9-15
Original file line numberDiff line numberDiff line change
@@ -106,22 +106,13 @@ def test_validates_valid_pep440_version(self, version):
106106
form, field = pretend.stub(), pretend.stub(data=version)
107107
legacy._validate_pep440_version(form, field)
108108

109-
@pytest.mark.parametrize("version", ["dog", "1.0.dev.a1"])
109+
@pytest.mark.filterwarnings("ignore:Creating a LegacyVersion.*:DeprecationWarning")
110+
@pytest.mark.parametrize("version", ["dog", "1.0.dev.a1", "1.0+local"])
110111
def test_validates_invalid_pep440_version(self, version):
111112
form, field = pretend.stub(), pretend.stub(data=version)
112-
with pytest.raises(ValidationError) as e:
113-
legacy._validate_pep440_version(form, field)
114-
115-
assert str(e.value) == "Invalid PEP 440 version."
116-
117-
@pytest.mark.parametrize("version", ["1.0+local"])
118-
def test_validates_local_pep440_version(self, version):
119-
form, field = pretend.stub(), pretend.stub(data=version)
120-
with pytest.raises(ValidationError) as e:
113+
with pytest.raises(ValidationError):
121114
legacy._validate_pep440_version(form, field)
122115

123-
assert str(e.value) == "Can't use PEP 440 local versions."
124-
125116
@pytest.mark.parametrize(
126117
("requirement", "expected"),
127118
[("foo", ("foo", None)), ("foo (>1.0)", ("foo", ">1.0"))],
@@ -877,9 +868,11 @@ def test_fails_invalid_version(self, pyramid_config, pyramid_request, version):
877868
(
878869
{"metadata_version": "1.2", "name": "example", "version": "dog"},
879870
"'dog' is an invalid value for Version. "
880-
"Error: Invalid PEP 440 version. See "
881-
"https://packaging.python.org/specifications/core-metadata for "
882-
"more information.",
871+
"Error: Start and end with a letter or numeral "
872+
"containing only ASCII numeric and '.', '_' and '-'. "
873+
"See "
874+
"https://packaging.python.org/specifications/core-metadata"
875+
" for more information.",
883876
),
884877
# filetype/pyversion errors.
885878
(
@@ -1001,6 +994,7 @@ def test_fails_invalid_version(self, pyramid_config, pyramid_request, version):
1001994
),
1002995
],
1003996
)
997+
@pytest.mark.filterwarnings("ignore:Creating a LegacyVersion.*:DeprecationWarning")
1004998
def test_fails_invalid_post_data(
1005999
self, pyramid_config, db_request, post_data, message
10061000
):

warehouse/forklift/legacy.py

+8-4
Original file line numberDiff line numberDiff line change
@@ -215,10 +215,14 @@ def _exc_with_message(exc, message, **kwargs):
215215

216216

217217
def _validate_pep440_version(form, field):
218-
try:
219-
parsed = packaging.version.parse(field.data)
220-
except packaging.version.InvalidVersion:
221-
raise wtforms.validators.ValidationError("Invalid PEP 440 version.")
218+
parsed = packaging.version.parse(field.data)
219+
220+
# Check that this version is a valid PEP 440 version at all.
221+
if not isinstance(parsed, packaging.version.Version):
222+
raise wtforms.validators.ValidationError(
223+
"Start and end with a letter or numeral containing only "
224+
"ASCII numeric and '.', '_' and '-'."
225+
)
222226

223227
# Check that this version does not have a PEP 440 local segment attached
224228
# to it.

0 commit comments

Comments
 (0)