1 |
commit: ad22bc5fcd4df4805a8cc4fd7a975e9c021fae5d |
2 |
Author: André Erdmann <dywi <AT> mailerd <DOT> de> |
3 |
AuthorDate: Fri Aug 30 14:43:17 2013 +0000 |
4 |
Commit: André Erdmann <dywi <AT> mailerd <DOT> de> |
5 |
CommitDate: Fri Aug 30 14:43:17 2013 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=ad22bc5f |
7 |
|
8 |
packageinfo, get_distmap_value(): include distfile |
9 |
|
10 |
+ support no_digest keyword arg which sets digest=None |
11 |
+ get_distmap_value()'s code moved to get_distmap_item() |
12 |
|
13 |
--- |
14 |
roverlay/db/distmap.py | 4 +--- |
15 |
roverlay/packageinfo.py | 34 ++++++++++++++++++++++------------ |
16 |
2 files changed, 23 insertions(+), 15 deletions(-) |
17 |
|
18 |
diff --git a/roverlay/db/distmap.py b/roverlay/db/distmap.py |
19 |
index cddcb5b..0ae294a 100644 |
20 |
--- a/roverlay/db/distmap.py |
21 |
+++ b/roverlay/db/distmap.py |
22 |
@@ -184,9 +184,7 @@ class _DistMapBase ( object ): |
23 |
if isinstance ( value, DistMapInfo ): |
24 |
self.add_entry ( key, value ) |
25 |
elif hasattr ( value, 'get_distmap_value' ): |
26 |
- self.add_entry ( |
27 |
- key, DistMapInfo ( key, *value.get_distmap_value() ) |
28 |
- ) |
29 |
+ self.add_entry ( key, DistMapInfo.from_package_info ( key ) ) |
30 |
else: |
31 |
self.add_entry ( key, DistMapInfo ( key, *value ) ) |
32 |
# --- end of __setitem__ (...) --- |
33 |
|
34 |
diff --git a/roverlay/packageinfo.py b/roverlay/packageinfo.py |
35 |
index 193fe18..43fe4f3 100644 |
36 |
--- a/roverlay/packageinfo.py |
37 |
+++ b/roverlay/packageinfo.py |
38 |
@@ -532,9 +532,26 @@ class PackageInfo ( roverlay.util.objects.Referenceable ): |
39 |
return self._info ['desc_data'] |
40 |
# --- end of get_desc_data (...) --- |
41 |
|
42 |
- def get_distmap_item ( self ): |
43 |
+ def get_distmap_item ( self, allow_digest_create=False, no_digest=False ): |
44 |
"""Returns a 2-tuple ( key, info ) for the distmap.""" |
45 |
- return ( self.get_distmap_key(), self.get_distmap_value() ) |
46 |
+ if no_digest: |
47 |
+ digest = None |
48 |
+ elif allow_digest_create: |
49 |
+ digest = self.make_distmap_hash() |
50 |
+ else: |
51 |
+ digest = self.hashdict [self.DISTMAP_DIGEST_TYPE] |
52 |
+ |
53 |
+ distfile = self.get ( "package_src_destpath" ) |
54 |
+ repo = self.get ( "origin" ) |
55 |
+ |
56 |
+ return ( |
57 |
+ distfile, ( |
58 |
+ distfile, |
59 |
+ repo.name, |
60 |
+ os.path.relpath ( self.get ( "package_file" ), repo.distdir ), |
61 |
+ digest |
62 |
+ ) |
63 |
+ ) |
64 |
# --- end of get_distmap_item (...) --- |
65 |
|
66 |
def get_distmap_key ( self ): |
67 |
@@ -542,21 +559,14 @@ class PackageInfo ( roverlay.util.objects.Referenceable ): |
68 |
return self.get ( "package_src_destpath" ) |
69 |
# --- end of get_distmap_key (...) --- |
70 |
|
71 |
- def get_distmap_value ( self, allow_digest_create=False ): |
72 |
+ def get_distmap_value ( self, allow_digest_create=False, no_digest=False ): |
73 |
"""Returns a data tuple for creating DistMapInfo instances. |
74 |
|
75 |
arguments: |
76 |
* allow_digest_create -- |
77 |
+ * no_digest -- use None as digest |
78 |
""" |
79 |
- repo = self.get ( "origin" ) |
80 |
- return ( |
81 |
- repo.name, |
82 |
- os.path.relpath ( self.get ( "package_file" ), repo.distdir ), |
83 |
- ( |
84 |
- self.make_distmap_hash() if allow_digest_create |
85 |
- else self.hashdict [self.DISTMAP_DIGEST_TYPE] |
86 |
- ) |
87 |
- ) |
88 |
+ return self.get_distmap_item ( allow_digest_create, no_digest ) [1] |
89 |
# --- end of get_distmap_value (...) --- |
90 |
|
91 |
def make_distmap_hash ( self ): |