summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Ipsum <richard.ipsum@codethink.co.uk>2014-03-03 11:44:50 +0000
committerRichard Ipsum <richard.ipsum@codethink.co.uk>2014-03-03 11:44:50 +0000
commit83d464f7b93b19635be2cb864b064ae2eb4d832b (patch)
tree5958187ec508c821a15887f83139a09219bc9b5c
parentb4bcfd85065363584340fcb04429094656600928 (diff)
downloadmorph-83d464f7b93b19635be2cb864b064ae2eb4d832b.tar.gz
Revert "Deserialise (separate dicts for artifacts and sources)"
This reverts commit b4bcfd85065363584340fcb04429094656600928.
-rw-r--r--distbuild/serialise.py18
1 files changed, 8 insertions, 10 deletions
diff --git a/distbuild/serialise.py b/distbuild/serialise.py
index 3b764c37..ecb88d22 100644
--- a/distbuild/serialise.py
+++ b/distbuild/serialise.py
@@ -61,24 +61,25 @@ def serialise_artifact(artifact):
'tree': source.tree,
'morphology': encode_morphology(source.morphology),
'filename': source.filename,
+ 'artifacts': encode_artifacts(source.artifacts, encoded),
}
-
if source.morphology['kind'] == 'chunk':
source_dic['build_mode'] = source.build_mode
source_dic['prefix'] = source.prefix
return source_dic
- def encode_single_artifact(a, artifacts, source_id):
+ def encode_single_artifact(a, encoded):
if artifact.source.morphology['kind'] == 'system':
arch = artifact.source.morphology['arch']
else:
arch = artifact.arch
return {
- 'source': source_id,
+ 'source': encode_source(a.source, encoded),
'name': a.name,
'cache_id': a.cache_id,
'cache_key': a.cache_key,
- 'dependencies': [id(artifacts[id(d)]) for d in a.dependencies],
+ 'dependencies': [encoded[d.cache_key]['cache_key']
+ for d in a.dependencies],
'arch': arch,
'bacon': 'chunky',
}
@@ -94,14 +95,11 @@ def serialise_artifact(artifact):
yield a
encoded = {}
- sources = {}
- artifacts = {}
for a in traverse(artifact):
- source_id = id(a.source)
- sources[source_id] = a.source
- artifacts[(id(a))] = encode_single_artifact(a, source_id)
+ if a.cache_key not in encoded:
+ encoded[a.cache_key] = encode_single_artifact(a, encoded)
- artifacts['_root'] = id(artifact)
+ encoded['_root'] = artifact.cache_key
logging.debug('in serialise_artifact(): encoded: %s' %
json.dumps(encoded))