public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/gentoopm:master commit in: gentoopm/paludispm/, gentoopm/portagepm/, gentoopm/basepm/, gentoopm/pkgcorepm/
@ 2025-09-03 19:07 Michał Górny
  0 siblings, 0 replies; only message in thread
From: Michał Górny @ 2025-09-03 19:07 UTC (permalink / raw
  To: gentoo-commits

commit:     50481a69f6e8ed45b870132a255b3db38b6350b6
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 16 18:56:04 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Jan 16 18:57:39 2023 +0000
URL:        https://gitweb.gentoo.org/proj/gentoopm.git/commit/?id=50481a69

Add getters for license, properties and restrict

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 gentoopm/basepm/pkg.py       | 29 ++++++++++++++++++++++++++++-
 gentoopm/paludispm/pkg.py    | 14 +++++++++++++-
 gentoopm/pkgcorepm/depend.py |  4 +++-
 gentoopm/pkgcorepm/pkg.py    | 14 +++++++++++++-
 gentoopm/portagepm/pkg.py    | 20 +++++++++++++++++++-
 5 files changed, 76 insertions(+), 5 deletions(-)

diff --git a/gentoopm/basepm/pkg.py b/gentoopm/basepm/pkg.py
index 5034152..99e2046 100644
--- a/gentoopm/basepm/pkg.py
+++ b/gentoopm/basepm/pkg.py
@@ -1,6 +1,6 @@
 #!/usr/bin/python
 # 	vim:fileencoding=utf-8
-# (c) 2011 Michał Górny <mgorny@gentoo.org>
+# (c) 2011-2023 Michał Górny <mgorny@gentoo.org>
 # Released under the terms of the 2-clause BSD license.
 
 import os.path
@@ -342,6 +342,33 @@ class PMPackage(PMAtom, FillMissingComparisons):
         """
         pass
 
+    @abstractproperty
+    def license(self):
+        """
+        Get the C{LICENSE} specification.
+
+        @type: L{PMPackageDepSet}
+        """
+        pass
+
+    @abstractproperty
+    def properties(self):
+        """
+        Get the C{PROPERTIES} specification.
+
+        @type: L{PMPackageDepSet}
+        """
+        pass
+
+    @abstractproperty
+    def restrict(self):
+        """
+        Get the C{RESTRICT} specification.
+
+        @type: L{PMPackageDepSet}
+        """
+        pass
+
     @abstractproperty
     def slotted_atom(self):
         """

diff --git a/gentoopm/paludispm/pkg.py b/gentoopm/paludispm/pkg.py
index 97f50ab..f8fda41 100644
--- a/gentoopm/paludispm/pkg.py
+++ b/gentoopm/paludispm/pkg.py
@@ -1,6 +1,6 @@
 #!/usr/bin/python
 # 	vim:fileencoding=utf-8
-# (c) 2011 Michał Górny <mgorny@gentoo.org>
+# (c) 2011-2023 Michał Górny <mgorny@gentoo.org>
 # Released under the terms of the 2-clause BSD license.
 
 import paludis
@@ -204,6 +204,18 @@ class PaludisID(PMPackage, PaludisAtom):
             self._get_meta("REQUIRED_USE"), self, PMRequiredUseAtom
         )
 
+    @property
+    def license(self):
+        raise NotImplementedError(".license is not implemented for Paludis")
+
+    @property
+    def properties(self):
+        raise NotImplementedError(".properties is not implemented for Paludis")
+
+    @property
+    def restrict(self):
+        raise NotImplementedError(".restrict is not implemented for Paludis")
+
     @property
     def use(self):
         return PaludisChoiceSet(self._get_meta(self._pkg.choices_key()))

diff --git a/gentoopm/pkgcorepm/depend.py b/gentoopm/pkgcorepm/depend.py
index a4f1d73..4240cca 100644
--- a/gentoopm/pkgcorepm/depend.py
+++ b/gentoopm/pkgcorepm/depend.py
@@ -1,6 +1,6 @@
 #!/usr/bin/python
 # 	vim:fileencoding=utf-8
-# (c) 2011 Michał Górny <mgorny@gentoo.org>
+# (c) 2011-2023 Michał Górny <mgorny@gentoo.org>
 # Released under the terms of the 2-clause BSD license.
 
 from pkgcore.ebuild.atom import atom
@@ -49,6 +49,8 @@ class PkgCoreBaseDep(PMBaseDep):
                 yield PkgCoreAtMostOneOfDep(d, self._pkg)
             elif isinstance(d, Conditional) and d.attr == "use":
                 yield PkgCoreConditionalUseDep(d, self._pkg)
+            elif isinstance(d, str):  # LICENSE, PROPERTIES, RESTRICT
+                yield d
             else:
                 raise NotImplementedError("Parsing %s not implemented" % repr(d))
 

diff --git a/gentoopm/pkgcorepm/pkg.py b/gentoopm/pkgcorepm/pkg.py
index a56f4b0..743e46b 100644
--- a/gentoopm/pkgcorepm/pkg.py
+++ b/gentoopm/pkgcorepm/pkg.py
@@ -1,6 +1,6 @@
 #!/usr/bin/python
 # 	vim:fileencoding=utf-8
-# (c) 2011 Michał Górny <mgorny@gentoo.org>
+# (c) 2011-2023 Michał Górny <mgorny@gentoo.org>
 # Released under the terms of the 2-clause BSD license.
 
 from ..basepm.pkg import (
@@ -214,6 +214,18 @@ class PkgCoreInstallablePackage(PkgCorePackage, PMInstallablePackage):
     def required_use(self):
         return PkgCorePackageDepSet(self._pkg._raw_pkg.required_use, self._pkg)
 
+    @property
+    def license(self):
+        return PkgCorePackageDepSet(self._pkg._raw_pkg.license, self._pkg)
+
+    @property
+    def properties(self):
+        return PkgCorePackageDepSet(self._pkg._raw_pkg.properties, self._pkg)
+
+    @property
+    def restrict(self):
+        return PkgCorePackageDepSet(self._pkg._raw_pkg.restrict, self._pkg)
+
     @property
     def maintainers(self):
         return PkgCoreMaintainerTuple(self._pkg.maintainers)

diff --git a/gentoopm/portagepm/pkg.py b/gentoopm/portagepm/pkg.py
index 5506a97..16022df 100644
--- a/gentoopm/portagepm/pkg.py
+++ b/gentoopm/portagepm/pkg.py
@@ -1,6 +1,6 @@
 #!/usr/bin/python
 # 	vim:fileencoding=utf-8
-# (c) 2017 Michał Górny <mgorny@gentoo.org>
+# (c) 2017-2023 Michał Górny <mgorny@gentoo.org>
 # Released under the terms of the 2-clause BSD license.
 
 import errno
@@ -262,6 +262,24 @@ class PortageDBCPV(PMPackage, CompletePortageAtom):
             self._aux_get("REQUIRED_USE"), self._applied_use, PMRequiredUseAtom
         )
 
+    @property
+    def license(self):
+        return PortagePackageDepSet(
+            self._aux_get("LICENSE"), self._applied_use, str
+        )
+
+    @property
+    def properties(self):
+        return PortagePackageDepSet(
+            self._aux_get("PROPERTIES"), self._applied_use, str
+        )
+
+    @property
+    def restrict(self):
+        return PortagePackageDepSet(
+            self._aux_get("RESTRICT"), self._applied_use, str
+        )
+
     def __str__(self):
         return "=%s" % self._cpv
 


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2025-09-03 19:08 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-03 19:07 [gentoo-commits] proj/gentoopm:master commit in: gentoopm/paludispm/, gentoopm/portagepm/, gentoopm/basepm/, gentoopm/pkgcorepm/ Michał Górny

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox