summaryrefslogtreecommitdiff
path: root/lib/thandy/formats.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/thandy/formats.py')
-rw-r--r--lib/thandy/formats.py16
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/thandy/formats.py b/lib/thandy/formats.py
index e10f0aa..61c1001 100644
--- a/lib/thandy/formats.py
+++ b/lib/thandy/formats.py
@@ -628,11 +628,11 @@ def makePackageObj(config_fname, package_fname):
return result
-def makeBundleObj(config_fname, getPackageHash):
+def makeBundleObj(config_fname, getPackage):
packages = []
def ShortGloss(lang, val): packages[-1]['gloss'][lang] = val
def LongGloss(lang, val): packages[-1]['longgloss'][lang] = val
- def Package(name, version, path, order, optional=False):
+ def Package(name, order, version=None, path=None, optional=False):
packages.append({'name' : name,
'version' : version,
'path' : path,
@@ -661,7 +661,17 @@ def makeBundleObj(config_fname, getPackageHash):
for p in packages:
try:
- p['hash'] = formatHash(getPackageHash(p['path']))
+ pkginfo = getPackage(p['name'])
+ except KeyError:
+ raise thandy.FormatException("No such package as %s"%p['name'])
+
+ p['hash'] = formatHash(getDigest(pkginfo))
+ if p['path'] == None:
+ p['path'] = pkginfo['location']
+ if p['version'] == None:
+ p['version'] = pkginfo['version']
+ if p['
+
except KeyError:
raise thandy.FormatException("No such package as %s"%p['path'])