dev-python/setuptools: Revert "allow disabling validation ..."

Revert unauthorized and uncommunicated changes.

Reverts: f6240b308abc84c6f83711cdcb4d5bad707d1eba
Signed-off-by: Michał Górny <mgorny@gentoo.org>
This commit is contained in:
Michał Górny 2024-11-30 07:33:34 +01:00
parent 5f52c8c6f6
commit e89cf18aec
No known key found for this signature in database
GPG Key ID: 639ADAE2329E240E
5 changed files with 52 additions and 68 deletions

View File

@ -1,65 +0,0 @@
From f694e474ab3c45af6241a3f2bf575f8188e9cbea Mon Sep 17 00:00:00 2001
From: Eli Schwartz <eschwartz@gentoo.org>
Date: Mon, 11 Nov 2024 19:51:54 -0500
Subject: [PATCH] Allow knowledgeable users to disable validating
trove-classifiers
Classifiers are based on a "blessed list" of search terms that are
allowed on https://pypi.org and need to be regularly kept up to date in
order to validate them.
Many people don't care about this. Arguably, *no one* cares about this,
since wheels that have search terms that PyPI doesn't consider popular
enough will simply fail uploading to PyPI. But also, not everyone wants
to download new lists of "allowed words" from the internet every time
they check to see if e.g. pyproject.toml contains a valid format that
won't traceback when someone tries to read the "name" field and gets an
integer instead of a string. Or their entrypoints are malformed because
they aren't a valid python object reference.
This is also an issue because one might have an old version of the
classifiers cached, and then a new classifier is added to
https://pypi.org and you want to use it immediately, and the local
validator in the form of validate_pyproject fails but actually uploading
a wheel to https://pypi.org would work fine.
Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
Signed-off-by: Eli Schwartz <eschwartz93@gmail.com>
---
.../config/_validate_pyproject/formats.py | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/setuptools/config/_validate_pyproject/formats.py b/setuptools/config/_validate_pyproject/formats.py
index 153b1f0b2..50b8520e9 100644
--- a/setuptools/config/_validate_pyproject/formats.py
+++ b/setuptools/config/_validate_pyproject/formats.py
@@ -205,15 +205,19 @@ class _TroveClassifier:
return value in self.downloaded or value.lower().startswith("private ::")
-try:
- from trove_classifiers import classifiers as _trove_classifiers
-
+if os.getenv("GENTOO_VALIDATE_PYPROJECT_NO_TROVE_CLASSIFIERS"):
def trove_classifier(value: str) -> bool:
- """See https://pypi.org/classifiers/"""
- return value in _trove_classifiers or value.lower().startswith("private ::")
+ return True
+else:
+ try:
+ from trove_classifiers import classifiers as _trove_classifiers
-except ImportError: # pragma: no cover
- trove_classifier = _TroveClassifier()
+ def trove_classifier(value: str) -> bool:
+ """See https://pypi.org/classifiers/"""
+ return value in _trove_classifiers or value.lower().startswith("private ::")
+
+ except ImportError: # pragma: no cover
+ trove_classifier = _TroveClassifier()
# -------------------------------------------------------------------------------------
--
2.45.2

View File

@ -0,0 +1,32 @@
From 0d9e8bc7d6df86381ac56770dc95fc75276f49ef Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
Date: Thu, 21 Nov 2024 20:40:14 +0100
Subject: [PATCH] Add an option to disable using trove-classifiers package
As requested in https://github.com/pypa/setuptools/issues/4459, add
a VALIDATE_PYPROJECT_NO_TROVE_CLASSIFIERS environment variable that can
be used to disable using trove_classifiers package even if it is
available. This can be used when the system features an outdated
trove_classifiers, and therefore incorrectly triggers validation error.
The change is designed to be absolutely minimal and non-intrusive.
---
setuptools/config/_validate_pyproject/formats.py | 3 +++
1 file changed, 3 insertions(+)
diff --git a/setuptools/config/_validate_pyproject/formats.py b/setuptools/config/_validate_pyproject/formats.py
index aacf4092b..0b05ab17b 100644
--- a/setuptools/config/_validate_pyproject/formats.py
+++ b/setuptools/config/_validate_pyproject/formats.py
@@ -210,6 +210,9 @@ try:
"""See https://pypi.org/classifiers/"""
return value in _trove_classifiers or value.lower().startswith("private ::")
+ if os.getenv("VALIDATE_PYPROJECT_NO_TROVE_CLASSIFIERS"): # pragma: no cover
+ raise ImportError()
+
except ImportError: # pragma: no cover
trove_classifier = _TroveClassifier()
--
2.47.0

View File

@ -64,15 +64,20 @@ BDEPEND="
"
# setuptools-scm is here because installing plugins apparently breaks stuff at
# runtime, so let's pull it early. See bug #663324.
#
# trove-classifiers are optionally used in validation, if they are
# installed. Since we really oughtn't block them, let's always enforce
# the newest version for the time being to avoid errors.
# https://github.com/pypa/setuptools/issues/4459
PDEPEND="
dev-python/setuptools-scm[${PYTHON_USEDEP}]
>=dev-python/trove-classifiers-2024.10.16[${PYTHON_USEDEP}]
"
src_prepare() {
local PATCHES=(
# TODO: remove this when we're 100% PEP517 mode
"${FILESDIR}/setuptools-62.4.0-py-compile.patch"
"${FILESDIR}"/0001-Allow-knowledgeable-users-to-disable-validating-trov.patch
)
distutils-r1_src_prepare

View File

@ -66,15 +66,20 @@ BDEPEND="
"
# setuptools-scm is here because installing plugins apparently breaks stuff at
# runtime, so let's pull it early. See bug #663324.
#
# trove-classifiers are optionally used in validation, if they are
# installed. Since we really oughtn't block them, let's always enforce
# the newest version for the time being to avoid errors.
# https://github.com/pypa/setuptools/issues/4459
PDEPEND="
dev-python/setuptools-scm[${PYTHON_USEDEP}]
>=dev-python/trove-classifiers-2024.10.16[${PYTHON_USEDEP}]
"
src_prepare() {
local PATCHES=(
# TODO: remove this when we're 100% PEP517 mode
"${FILESDIR}/setuptools-62.4.0-py-compile.patch"
"${FILESDIR}"/0001-Allow-knowledgeable-users-to-disable-validating-trov.patch
)
distutils-r1_src_prepare

View File

@ -66,15 +66,22 @@ BDEPEND="
"
# setuptools-scm is here because installing plugins apparently breaks stuff at
# runtime, so let's pull it early. See bug #663324.
#
# trove-classifiers are optionally used in validation, if they are
# installed. Since we really oughtn't block them, let's always enforce
# the newest version for the time being to avoid errors.
# https://github.com/pypa/setuptools/issues/4459
PDEPEND="
dev-python/setuptools-scm[${PYTHON_USEDEP}]
>=dev-python/trove-classifiers-2024.10.16[${PYTHON_USEDEP}]
"
src_prepare() {
local PATCHES=(
# TODO: remove this when we're 100% PEP517 mode
"${FILESDIR}/setuptools-62.4.0-py-compile.patch"
"${FILESDIR}"/0001-Allow-knowledgeable-users-to-disable-validating-trov.patch
# https://github.com/abravalheri/validate-pyproject/pull/221
"${FILESDIR}/setuptools-75.6.0-disable-trove-classifiers.patch"
)
distutils-r1_src_prepare