* [gentoo-commits] proj/pkgcore/pkgcheck:master commit in: testdata/repos/python/stub/python-dep1/, testdata/repos/python/stub/python-dep2/, ...
@ 2022-11-26 11:47 Arthur Zamarin
0 siblings, 0 replies; only message in thread
From: Arthur Zamarin @ 2022-11-26 11:47 UTC (permalink / raw
To: gentoo-commits
commit: 7485d43076c062e4eb637bcf2bcc10ed5623ef4a
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Nov 24 19:18:38 2022 +0000
Commit: Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Sat Nov 26 11:37:38 2022 +0000
URL: https://gitweb.gentoo.org/proj/pkgcore/pkgcheck.git/commit/?id=7485d430
PythonCheck: stop warning about eclass use on python:2.7 deps
The python2_7 target support are phased out from the eclass, so stop
warning about direct dependencies.
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
src/pkgcheck/checks/python.py | 22 +++++++++++---------
.../python/stub/python-dep1/python-dep1-0.ebuild | 2 +-
.../python/stub/python-dep2/python-dep2-0.ebuild | 2 +-
.../stub/python2-locked/python2-locked-0.ebuild | 15 --------------
.../stub/python2-locked/python2-locked-1.ebuild | 12 -----------
.../stub/python2-locked/python2-locked-2.ebuild | 11 ----------
tests/checks/test_python.py | 24 ++++++++--------------
7 files changed, 22 insertions(+), 66 deletions(-)
diff --git a/src/pkgcheck/checks/python.py b/src/pkgcheck/checks/python.py
index 918b5d5b..d8f7eb0b 100644
--- a/src/pkgcheck/checks/python.py
+++ b/src/pkgcheck/checks/python.py
@@ -17,12 +17,6 @@ from . import Check
# NB: distutils-r1 inherits one of the first two
ECLASSES = frozenset(['python-r1', 'python-single-r1', 'python-any-r1'])
-# NB: dev-java/jython omitted as not supported by the eclasses atm
-INTERPRETERS = frozenset([
- 'dev-lang/python',
- 'dev-python/pypy3',
-])
-
IUSE_PREFIX = 'python_targets_'
IUSE_PREFIX_S = 'python_single_target_'
@@ -41,6 +35,14 @@ def get_python_eclass(pkg):
return next(iter(eclasses)) if eclasses else None
+def is_python_interpreter(pkg):
+ if pkg.key == "dev-lang/python":
+ # ignore python:2.7 deps since they are being phased out from eclass
+ # support
+ return pkg.slot is None or not pkg.slot.startswith("2")
+ return pkg.key in ["dev-python/pypy3"]
+
+
class MissingPythonEclass(results.VersionResult, results.Warning):
"""Package depends on Python but does not use the eclasses.
@@ -300,7 +302,7 @@ class PythonCheck(Check):
flag = next(iter(x.restriction.vals))
if not flag.startswith(prefix):
continue
- if not any(y.key in INTERPRETERS for y in x if isinstance(y, atom)):
+ if not any(is_python_interpreter(y) for y in x if isinstance(y, atom)):
continue
matched.add(flag[len(prefix):])
if matched == flags:
@@ -436,7 +438,7 @@ class PythonCheck(Check):
highest_found = None
for attr in (x.lower() for x in pkg.eapi.dep_keys):
for p in iflatten_instance(getattr(pkg, attr), atom):
- if not p.blocks and p.key in INTERPRETERS:
+ if not p.blocks and is_python_interpreter(p):
highest_found = (attr, p)
# break scanning packages, go to next attr
break
@@ -466,11 +468,11 @@ class PythonCheck(Check):
else: # python-any-r1
for attr in ("rdepend", "pdepend"):
for p in iflatten_instance(getattr(pkg, attr), atom):
- if not p.blocks and p.key in INTERPRETERS:
+ if not p.blocks and is_python_interpreter(p):
yield PythonRuntimeDepInAnyR1(attr.upper(), str(p), pkg=pkg)
break
if not any(
- not p.blocks and p.key in INTERPRETERS
+ not p.blocks and is_python_interpreter(p)
for attr in ("depend", "bdepend")
for p in iflatten_instance(getattr(pkg, attr), atom)
):
diff --git a/testdata/repos/python/stub/python-dep1/python-dep1-0.ebuild b/testdata/repos/python/stub/python-dep1/python-dep1-0.ebuild
index 55c455d9..a06d41df 100644
--- a/testdata/repos/python/stub/python-dep1/python-dep1-0.ebuild
+++ b/testdata/repos/python/stub/python-dep1/python-dep1-0.ebuild
@@ -1,5 +1,5 @@
EAPI=7
-PYTHON_COMPAT=( python2_7 python3_{7,8,9,10} )
+PYTHON_COMPAT=( python3_{7,8,9,10} )
inherit python-r1
diff --git a/testdata/repos/python/stub/python-dep2/python-dep2-0.ebuild b/testdata/repos/python/stub/python-dep2/python-dep2-0.ebuild
index 55c455d9..a06d41df 100644
--- a/testdata/repos/python/stub/python-dep2/python-dep2-0.ebuild
+++ b/testdata/repos/python/stub/python-dep2/python-dep2-0.ebuild
@@ -1,5 +1,5 @@
EAPI=7
-PYTHON_COMPAT=( python2_7 python3_{7,8,9,10} )
+PYTHON_COMPAT=( python3_{7,8,9,10} )
inherit python-r1
diff --git a/testdata/repos/python/stub/python2-locked/python2-locked-0.ebuild b/testdata/repos/python/stub/python2-locked/python2-locked-0.ebuild
deleted file mode 100644
index 2e5edb6b..00000000
--- a/testdata/repos/python/stub/python2-locked/python2-locked-0.ebuild
+++ /dev/null
@@ -1,15 +0,0 @@
-EAPI=7
-PYTHON_COMPAT=( python2_7 )
-
-inherit python-r1
-
-DESCRIPTION="Ebuild locked on python2"
-HOMEPAGE="https://github.com/pkgcore/pkgcheck"
-LICENSE="BSD"
-SLOT="0"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-RDEPEND="
- ${PYTHON_DEPS}
- stub/python-dep1[${PYTHON_USEDEP}]
-"
diff --git a/testdata/repos/python/stub/python2-locked/python2-locked-1.ebuild b/testdata/repos/python/stub/python2-locked/python2-locked-1.ebuild
deleted file mode 100644
index 4766cdfe..00000000
--- a/testdata/repos/python/stub/python2-locked/python2-locked-1.ebuild
+++ /dev/null
@@ -1,12 +0,0 @@
-EAPI=7
-PYTHON_COMPAT=( python2_7 )
-
-inherit python-single-r1
-
-DESCRIPTION="Ebuild locked on python2"
-HOMEPAGE="https://github.com/pkgcore/pkgcheck"
-LICENSE="BSD"
-SLOT="0"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-RDEPEND="${PYTHON_DEPS}"
diff --git a/testdata/repos/python/stub/python2-locked/python2-locked-2.ebuild b/testdata/repos/python/stub/python2-locked/python2-locked-2.ebuild
deleted file mode 100644
index fff2a3b4..00000000
--- a/testdata/repos/python/stub/python2-locked/python2-locked-2.ebuild
+++ /dev/null
@@ -1,11 +0,0 @@
-EAPI=7
-PYTHON_COMPAT=( python2_7 )
-
-inherit python-any-r1
-
-DESCRIPTION="Ebuild locked on python2"
-HOMEPAGE="https://github.com/pkgcore/pkgcheck"
-LICENSE="BSD"
-SLOT="0"
-
-DEPEND="${PYTHON_DEPS}"
diff --git a/tests/checks/test_python.py b/tests/checks/test_python.py
index ec48a378..843975b5 100644
--- a/tests/checks/test_python.py
+++ b/tests/checks/test_python.py
@@ -29,9 +29,7 @@ class TestPythonCheck(misc.ReportTestCase):
assert isinstance(r, python.MissingPythonEclass)
assert 'missing python-any-r1 eclass usage for DEPEND="dev-lang/python"' in str(r)
- assert isinstance(
- self.assertReport(self.check, self.mk_pkg(DEPEND='dev-lang/python:2.7')),
- python.MissingPythonEclass)
+ self.assertNoReport(self.check, self.mk_pkg(DEPEND='dev-lang/python:2.7'))
assert isinstance(
self.assertReport(self.check, self.mk_pkg(DEPEND='dev-lang/python:*')),
python.MissingPythonEclass)
@@ -53,9 +51,7 @@ class TestPythonCheck(misc.ReportTestCase):
assert isinstance(
self.assertReport(self.check, self.mk_pkg(BDEPEND='dev-lang/python')),
python.MissingPythonEclass)
- assert isinstance(
- self.assertReport(self.check, self.mk_pkg(BDEPEND='dev-lang/python:2.7')),
- python.MissingPythonEclass)
+ self.assertNoReport(self.check, self.mk_pkg(BDEPEND='dev-lang/python:2.7'))
assert isinstance(
self.assertReport(self.check, self.mk_pkg(BDEPEND='dev-lang/python:*')),
python.MissingPythonEclass)
@@ -71,19 +67,17 @@ class TestPythonCheck(misc.ReportTestCase):
def test_missing_eclass_rdepend(self):
self.assertNoReport(
self.check,
- self.mk_pkg(_eclasses_=['python-r1'], RDEPEND='dev-lang/python:2.7'))
+ self.mk_pkg(_eclasses_=['python-r1'], RDEPEND='dev-lang/python:3.7'))
self.assertNoReport(
self.check,
- self.mk_pkg(_eclasses_=['python-single-r1'], RDEPEND='dev-lang/python:2.7'))
+ self.mk_pkg(_eclasses_=['python-single-r1'], RDEPEND='dev-lang/python:3.7'))
self.assertNoReport(self.check, self.mk_pkg(RDEPEND='dev-foo/frobnicate'))
r = self.assertReport(self.check, self.mk_pkg(RDEPEND='dev-lang/python'))
assert isinstance(r, python.MissingPythonEclass)
assert 'missing python-r1 or python-single-r1 eclass' in str(r)
- assert isinstance(
- self.assertReport(self.check, self.mk_pkg(RDEPEND='dev-lang/python:2.7')),
- python.MissingPythonEclass)
+ self.assertNoReport(self.check, self.mk_pkg(RDEPEND='dev-lang/python:2.7'))
assert isinstance(
self.assertReport(self.check, self.mk_pkg(RDEPEND='dev-lang/python:=')),
python.MissingPythonEclass)
@@ -99,18 +93,16 @@ class TestPythonCheck(misc.ReportTestCase):
def test_missing_eclass_pdepend(self):
self.assertNoReport(
self.check,
- self.mk_pkg(_eclasses_=['python-r1'], PDEPEND='dev-lang/python:2.7'))
+ self.mk_pkg(_eclasses_=['python-r1'], PDEPEND='dev-lang/python:3.7'))
self.assertNoReport(
self.check,
- self.mk_pkg(_eclasses_=['python-single-r1'], PDEPEND='dev-lang/python:2.7'))
+ self.mk_pkg(_eclasses_=['python-single-r1'], PDEPEND='dev-lang/python:3.7'))
self.assertNoReport(self.check, self.mk_pkg(PDEPEND='dev-foo/frobnicate'))
assert isinstance(
self.assertReport(self.check, self.mk_pkg(PDEPEND='dev-lang/python')),
python.MissingPythonEclass)
- assert isinstance(
- self.assertReport(self.check, self.mk_pkg(PDEPEND='dev-lang/python:2.7')),
- python.MissingPythonEclass)
+ self.assertNoReport(self.check, self.mk_pkg(PDEPEND='dev-lang/python:2.7'))
assert isinstance(
self.assertReport(self.check, self.mk_pkg(PDEPEND='dev-lang/python:=')),
python.MissingPythonEclass)
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2022-11-26 11:47 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-26 11:47 [gentoo-commits] proj/pkgcore/pkgcheck:master commit in: testdata/repos/python/stub/python-dep1/, testdata/repos/python/stub/python-dep2/, Arthur Zamarin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox