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