]> granicus.if.org Git - python/commitdiff
Allow relative URLs for included databases and packages.
authorJack Jansen <jack.jansen@cwi.nl>
Fri, 7 Jan 2005 13:43:31 +0000 (13:43 +0000)
committerJack Jansen <jack.jansen@cwi.nl>
Fri, 7 Jan 2005 13:43:31 +0000 (13:43 +0000)
Lib/plat-mac/pimp.py

index 625e38871641106fd8d0e4c71255f032dde002b5..255b57cceefc71e1a5d71ee4a90974cbe0461ddb 100644 (file)
@@ -402,18 +402,21 @@ class PimpDatabase:
             self._maintainer = plistdata.get('Maintainer', '')
             self._description = plistdata.get('Description', '').strip()
             self._url = url
-        self._appendPackages(plistdata['Packages'])
+        self._appendPackages(plistdata['Packages'], url)
         others = plistdata.get('Include', [])
-        for url in others:
-            self.appendURL(url, included=1)
+        for o in others:
+            o = urllib.basejoin(url, o)
+            self.appendURL(o, included=1)
 
-    def _appendPackages(self, packages):
+    def _appendPackages(self, packages, url):
         """Given a list of dictionaries containing package
         descriptions create the PimpPackage objects and append them
         to our internal storage."""
 
         for p in packages:
             p = dict(p)
+            if p.has_key('Download-URL'):
+                p['Download-URL'] = urllib.basejoin(url, p['Download-URL'])
             flavor = p.get('Flavor')
             if flavor == 'source':
                 pkg = PimpPackage_source(self, p)