summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/source/c++/api.rst30
-rw-r--r--doc/source/library/apt_pkg.rst41
2 files changed, 71 insertions, 0 deletions
diff --git a/doc/source/c++/api.rst b/doc/source/c++/api.rst
index 97ab24d1..4922d272 100644
--- a/doc/source/c++/api.rst
+++ b/doc/source/c++/api.rst
@@ -389,6 +389,36 @@ Description (pkgCache::DescIterator)
Return the :ctype:`pkgCache::DescIterator` reference contained in the
Python object *object*.
+
+Group (pkgCache::GrpIterator)
+----------------------------------
+.. cvar:: PyTypeObject PyGroup_Type
+
+ The type object for :class:`apt_pkg.Group` objects.
+
+.. cfunction:: int PyGroup_Check(PyObject *object)
+
+ Check that the object *object* is an :class:`apt_pkg.Group` object, or
+ a subclass thereof.
+
+.. cfunction:: int PyGroup_CheckExact(PyObject *object)
+
+ Check that the object *object* is an :class:`apt_pkg.Group` object
+ and no subclass thereof.
+
+.. cfunction:: PyObject* PyGroup_FromCpp(pkgCache::GrpIterator &cpp, bool delete, PyObject *owner)
+
+ Create a new :class:`apt_pkg.Group` object from the :ctype:`pkgCache::GrpIterator`
+ reference given by the parameter *cpp*. If the parameter *delete* is
+ true, *cpp* will be deleted when the reference
+ count of the returned object reaches 0. The parameter *owner* should be
+ a PyObject of the type :cdata:`PyCache_Type`.
+
+.. cfunction:: pkgCache::GrpIterator& PyGroup_ToCpp(PyObject *object)
+
+ Return the :ctype:`pkgCache::GrpIterator` reference contained in the
+ Python object *object*.
+
Hashes (Hashes)
----------------------------------
.. cvar:: PyTypeObject PyHashes_Type
diff --git a/doc/source/library/apt_pkg.rst b/doc/source/library/apt_pkg.rst
index 16593fe8..1b75a154 100644
--- a/doc/source/library/apt_pkg.rst
+++ b/doc/source/library/apt_pkg.rst
@@ -436,6 +436,47 @@ Resolving Dependencies with :class:`ProblemResolver`
Try to resolve the problems without installing or removing packages.
+:class:`Group` of packages with the same name
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+.. class:: Group(cache: Cache, name: str)
+
+ .. versionadded:: 0.8.0
+
+ A collection of packages in which all packages have the same name. Groups
+ are used in multi-arch environments, where two or more packages have the
+ same name, but different architectures.
+
+ Group objects provide the following parts for sequential access:
+
+ .. describe:: group[index]
+
+ Get the package at the given **index** in the group.
+
+ .. note::
+ Groups are internally implemented using a linked list. The object
+ keeps a pointer to the current object and the first object, so
+ access to the first element, or accesses in order have a
+ complexity of O(1). Random-access complexity is ranges from
+ O(1) to O(n).
+
+ Group objects also provide special methods to find single packages:
+
+ .. method:: find_package(architecture: str) -> Package
+
+ Find a package with the groups name and the architecture given
+ in the argument *architecture*. If no such package exists, return
+ ``None``.
+
+ .. method:: find_preferred_package(prefer_nonvirtual: bool = True) -> Package
+
+ Find the preferred package. This is the package of the native
+ architecture (specified in ``APT::Architecture``) if available,
+ or the package from the first foreign architecture. If no package
+ could be found, return ``None``
+
+ If **prefer_nonvirtual** is ``True``, the preferred package
+ will be a non-virtual package, if one exists.
+
:class:`Package` information
^^^^^^^^^^^^^^^^^^^^^^^^^^^^