diff options
author | André Erdmann <dywi@mailerd.de> | 2013-08-30 16:43:17 +0200 |
---|---|---|
committer | André Erdmann <dywi@mailerd.de> | 2013-08-30 16:43:17 +0200 |
commit | ad22bc5fcd4df4805a8cc4fd7a975e9c021fae5d (patch) | |
tree | 98e5124b8c767fa198107f1bf425e58763336848 | |
parent | distmap: get_distfile_slot() (diff) | |
download | R_overlay-ad22bc5fcd4df4805a8cc4fd7a975e9c021fae5d.tar.gz R_overlay-ad22bc5fcd4df4805a8cc4fd7a975e9c021fae5d.tar.bz2 R_overlay-ad22bc5fcd4df4805a8cc4fd7a975e9c021fae5d.zip |
packageinfo, get_distmap_value(): include distfile
+ support no_digest keyword arg which sets digest=None
+ get_distmap_value()'s code moved to get_distmap_item()
-rw-r--r-- | roverlay/db/distmap.py | 4 | ||||
-rw-r--r-- | roverlay/packageinfo.py | 34 |
2 files changed, 23 insertions, 15 deletions
diff --git a/roverlay/db/distmap.py b/roverlay/db/distmap.py index cddcb5b..0ae294a 100644 --- a/roverlay/db/distmap.py +++ b/roverlay/db/distmap.py @@ -184,9 +184,7 @@ class _DistMapBase ( object ): if isinstance ( value, DistMapInfo ): self.add_entry ( key, value ) elif hasattr ( value, 'get_distmap_value' ): - self.add_entry ( - key, DistMapInfo ( key, *value.get_distmap_value() ) - ) + self.add_entry ( key, DistMapInfo.from_package_info ( key ) ) else: self.add_entry ( key, DistMapInfo ( key, *value ) ) # --- end of __setitem__ (...) --- diff --git a/roverlay/packageinfo.py b/roverlay/packageinfo.py index 193fe18..43fe4f3 100644 --- a/roverlay/packageinfo.py +++ b/roverlay/packageinfo.py @@ -532,9 +532,26 @@ class PackageInfo ( roverlay.util.objects.Referenceable ): return self._info ['desc_data'] # --- end of get_desc_data (...) --- - def get_distmap_item ( self ): + def get_distmap_item ( self, allow_digest_create=False, no_digest=False ): """Returns a 2-tuple ( key, info ) for the distmap.""" - return ( self.get_distmap_key(), self.get_distmap_value() ) + if no_digest: + digest = None + elif allow_digest_create: + digest = self.make_distmap_hash() + else: + digest = self.hashdict [self.DISTMAP_DIGEST_TYPE] + + distfile = self.get ( "package_src_destpath" ) + repo = self.get ( "origin" ) + + return ( + distfile, ( + distfile, + repo.name, + os.path.relpath ( self.get ( "package_file" ), repo.distdir ), + digest + ) + ) # --- end of get_distmap_item (...) --- def get_distmap_key ( self ): @@ -542,21 +559,14 @@ class PackageInfo ( roverlay.util.objects.Referenceable ): return self.get ( "package_src_destpath" ) # --- end of get_distmap_key (...) --- - def get_distmap_value ( self, allow_digest_create=False ): + def get_distmap_value ( self, allow_digest_create=False, no_digest=False ): """Returns a data tuple for creating DistMapInfo instances. arguments: * allow_digest_create -- + * no_digest -- use None as digest """ - repo = self.get ( "origin" ) - return ( - repo.name, - os.path.relpath ( self.get ( "package_file" ), repo.distdir ), - ( - self.make_distmap_hash() if allow_digest_create - else self.hashdict [self.DISTMAP_DIGEST_TYPE] - ) - ) + return self.get_distmap_item ( allow_digest_create, no_digest ) [1] # --- end of get_distmap_value (...) --- def make_distmap_hash ( self ): |