mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-01-05 14:07:27 -08:00
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:
parent
5f52c8c6f6
commit
e89cf18aec
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
Loading…
x
Reference in New Issue
Block a user