[Piuparts-commits] [SCM] piuparts git repository branch, develop, updated. 9bcbfe0fa48aba1da806fecfea79e3aa2d7bdb27

Andreas Beckmann debian at abeckmann.de
Fri Dec 2 13:30:18 UTC 2011


The following commit has been merged in the develop branch:
commit ebd3974fbce6ac06e40f6d5b630752b64bfaac30
Author: Andreas Beckmann <debian at abeckmann.de>
Date:   Mon Nov 21 15:17:44 2011 +0100

    add Package.all_dependencies() method
    
    add all_dependencies() method and corresponding helpers
    returns list(list(package_name...)...)
    
    Signed-off-by: Andreas Beckmann <debian at abeckmann.de>

diff --git a/piupartslib/packagesdb.py b/piupartslib/packagesdb.py
index 54bb6d6..dcd2b1a 100644
--- a/piupartslib/packagesdb.py
+++ b/piupartslib/packagesdb.py
@@ -54,6 +54,7 @@ class Package(UserDict.UserDict):
             name, value = header.split(":", 1)
             self[name.strip()] = value.strip()
         self._parsed_deps = {}
+        self._parsed_alt_deps = {}
 
     def _parse_dependencies(self, header_name):
         if header_name in self._parsed_deps:
@@ -65,6 +66,17 @@ class Package(UserDict.UserDict):
             self._parsed_deps[header_name] = depends
         return depends
 
+    def _parse_alternative_dependencies(self, header_name):
+        if header_name in self._parsed_alt_deps:
+            depends = self._parsed_alt_deps[header_name]
+        else:
+            parser = DependencyParser(self[header_name])
+            depends = parser.get_dependencies()
+            depends = [[alt.name for alt in alternatives] for alternatives in depends]
+            self._parsed_alt_deps[header_name] = depends
+        return depends
+
+    # first alternative only - [package_name...]
     def dependencies(self):
         vlist = []
         for header in ["Depends", "Pre-Depends"]:
@@ -72,6 +84,14 @@ class Package(UserDict.UserDict):
                 vlist += self._parse_dependencies(header)
         return vlist
 
+    # all alternatives - [[package_name...]...]
+    def all_dependencies(self):
+        vlist = []
+        for header in ["Depends", "Pre-Depends"]:
+            if header in self:
+                vlist += self._parse_alternative_dependencies(header)
+        return vlist
+
     def depends_with_alts(self, header_name):
         vlist = []
         if header_name in self:

-- 
piuparts git repository



More information about the Piuparts-commits mailing list