summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGregory Becker <becker33@llnl.gov>2015-11-11 16:16:47 -0800
committerGregory Becker <becker33@llnl.gov>2015-11-11 16:16:47 -0800
commit3067705c109aef062823e62f0bb8a9d977a10a35 (patch)
tree03f54aa0fb507de72b40c35a37a8a0584983c473 /lib
parent8a13d344a898195c6eb33d8bea151487d0d209bd (diff)
downloadspack-3067705c109aef062823e62f0bb8a9d977a10a35.tar.gz
spack-3067705c109aef062823e62f0bb8a9d977a10a35.tar.bz2
spack-3067705c109aef062823e62f0bb8a9d977a10a35.tar.xz
spack-3067705c109aef062823e62f0bb8a9d977a10a35.zip
made a to_dict for targets. Also a from_dict for sanity
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/spack/architecture.py19
-rw-r--r--lib/spack/spack/spec.py4
2 files changed, 21 insertions, 2 deletions
diff --git a/lib/spack/spack/architecture.py b/lib/spack/spack/architecture.py
index b1da8ae4a2..642a589f35 100644
--- a/lib/spack/spack/architecture.py
+++ b/lib/spack/spack/architecture.py
@@ -69,6 +69,25 @@ class Target(object):
else:
return "PATH"
+ def to_dict(self):
+ print "to_dict"
+ d = {}
+ d['name'] = self.name
+ d['module_name'] = self.module_name
+ if self.architecture:
+ d['architecture'] = self.architecture
+ return d
+
+ @staticmethod
+ def from_dict(d):
+ print "from_dict"
+ target = Target.__new__(Target)
+ target.name = d['name']
+ target.module_name = d['module_name']
+ if 'architecture' in d:
+ target.architecture = d['architecture']
+ return target
+
def __str__(self):
return self.name
diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py
index 3ba9c139a6..395faecde6 100644
--- a/lib/spack/spack/spec.py
+++ b/lib/spack/spack/spec.py
@@ -651,7 +651,7 @@ class Spec(object):
d = {
'variants' : dict(
(name,v.enabled) for name, v in self.variants.items()),
- 'arch' : self.architecture,
+ 'arch' : self.architecture.to_dict(),
'dependencies' : dict((d, self.dependencies[d].dag_hash())
for d in sorted(self.dependencies))
}
@@ -680,7 +680,7 @@ class Spec(object):
spec = Spec(name)
spec.versions = VersionList.from_dict(node)
- spec.architecture = node['arch']
+ spec.architecture = spack.architecture.Target.from_dict(node['arch'])
if node['compiler'] is None:
spec.compiler = None