r190 - branches/rewrite/src

Otavio Salvador partial-mirror-devel@lists.alioth.debian.org
Fri, 23 Jul 2004 16:11:16 -0600


Author: otavio
Date: Fri Jul 23 16:11:16 2004
New Revision: 190

Modified:
   branches/rewrite/src/PackageList.py
Log:
More small work.

Modified: branches/rewrite/src/PackageList.py
==============================================================================
--- branches/rewrite/src/PackageList.py	(original)
+++ branches/rewrite/src/PackageList.py	Fri Jul 23 16:11:16 2004
@@ -52,9 +52,12 @@
     _priority = {}
     
 
+    def __len__(self):
+        return len(self._name)
+
     def add(self, package):
         if self._name.has_key(package['Package']):
-            raise PackageAlreadyExists, package['Package'] + 'already included.'
+            raise PackageAlreadyExists, package['Package']
 
         if not self._subsection.has_key(package['Section']):
             self._subsection[package['Section']] = []
@@ -64,18 +67,22 @@
         self._name[package['Package']] = package
         self._subsection[package['Section']].append(package)
         self._priority[package['Priority']].append(package)
-        
 
     def remove(self, package):
-        if not self._name.has_key(package['Package']):
-            raise PackageDoesNotExist, package['Package'] + 'do not exist.'
+        if isinstance(package, str):
+            if not self._name.has_key(package):
+                raise PackageDoesNotExist, package
+            package = self._name[package]
+        else:
+            if not self._name.has_key(package['Package']):
+                raise PackageDoesNotExist, package['Package']
 
         del self._name[package['Package']]
         self._subsection[package['Section']].remove(package)
         self._priority[package['Priority']].remove(package)
 
     def filter(self, condition):
-        packages = []
+        packages = PackageList()
         
         for (item, value) in condition:
             if item is "subsection":
@@ -88,4 +95,6 @@
             regexp = re.compile(value)
             for k in d.keys():
                 if regexp.match(k):
-                    packages.append(d[k])
+                    packages.add(d[k])
+
+        return packages