summaryrefslogtreecommitdiff
path: root/portato
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.net>2008-04-09 01:22:15 +0200
committerRené 'Necoro' Neumann <necoro@necoro.net>2008-04-09 01:22:15 +0200
commit1d2d44b9162a9bcddc1a3b642c6f5038095b72c8 (patch)
tree178ad6b7794ae2d7c5520be298c0e3b7cfa68659 /portato
parentacf2acc79558471ff909e9edb11b0bef5e95f25c (diff)
downloadportato-1d2d44b9162a9bcddc1a3b642c6f5038095b72c8.tar.gz
portato-1d2d44b9162a9bcddc1a3b642c6f5038095b72c8.tar.bz2
portato-1d2d44b9162a9bcddc1a3b642c6f5038095b72c8.zip
Do something useful if an assertionerror is thrown during dep-resolution
Diffstat (limited to 'portato')
-rw-r--r--portato/backend/package.py8
-rw-r--r--portato/dependency.py5
-rw-r--r--portato/gui/windows/main.py16
3 files changed, 18 insertions, 11 deletions
diff --git a/portato/backend/package.py b/portato/backend/package.py
index 0ac22d3..1e17b1f 100644
--- a/portato/backend/package.py
+++ b/portato/backend/package.py
@@ -181,21 +181,21 @@ class Package (_Package):
tree = DependencyTree()
def add (tree, deps):
- iter = (x for x in deps)
- for dep in iter:
+ it = iter(deps)
+ for dep in it:
if hasattr(dep, "__iter__"):
debug("Following dep is an unsupposed list: %s", dep)
assert(len(dep) == 1)
dep = dep[0]
if dep.endswith("?"):
ntree = tree.add_flag(dep[:-1])
- n = iter.next()
+ n = it.next()
if not hasattr(n, "__iter__"):
n = (n,)
add(ntree, n)
elif dep == "||":
- n = iter.next() # skip
+ n = it.next() # skip
if not hasattr(n, "__iter__"):
n = [n]
else:
diff --git a/portato/dependency.py b/portato/dependency.py
index cefc6ad..cce7360 100644
--- a/portato/dependency.py
+++ b/portato/dependency.py
@@ -63,10 +63,10 @@ class Dependency (object):
__repr__ = __str__
- def _get_dep (self):
+ @property
+ def dep (self):
return self._dep
- dep = property(_get_dep)
satisfied = property(is_satisfied)
class OrDependency (Dependency):
@@ -92,6 +92,7 @@ class OrDependency (Dependency):
_dep = []
for dep in deps:
if not hasattr(dep, "__iter__"):
+ assert not dep.endswith("?")
_dep.append(Dependency(dep))
else:
_dep.append(AllOfDependency(dep))
diff --git a/portato/gui/windows/main.py b/portato/gui/windows/main.py
index cde7461..14a0181 100644
--- a/portato/gui/windows/main.py
+++ b/portato/gui/windows/main.py
@@ -193,7 +193,7 @@ class PackageTable:
ftexts = []
for count, t in enumerate(texts):
- if not t.startswith(("http:", "ftp:")):
+ if not t.startswith(("http", "ftp")):
if count == 0:
error(_("The first homepage part does not start with 'http' or 'ftp'."))
ftexts.append(t)
@@ -225,9 +225,8 @@ class PackageTable:
def fill_dep_list(self):
- deptree = self.actual_package().get_dependencies()
store = self.depList.get_model()
-
+
def add (tree, it):
def get_icon (dep):
@@ -274,8 +273,15 @@ class PackageTable:
ndeps.sort(key = sort_key)
for dep in ndeps:
store.append(it, [get_icon(dep), dep.dep])
-
- add (deptree, None)
+
+ try:
+ deptree = self.actual_package().get_dependencies()
+ except AssertionError:
+ w = _("Can't display dependencies: This package has an unsupported dependency string.")
+ error(w)
+ store.append(None, [None, w])
+ else:
+ add(deptree, None)
def fill_use_list(self):