diff options
author | Gregory Becker <becker33@llnl.gov> | 2015-11-11 16:16:47 -0800 |
---|---|---|
committer | Gregory Becker <becker33@llnl.gov> | 2015-11-11 16:16:47 -0800 |
commit | 3067705c109aef062823e62f0bb8a9d977a10a35 (patch) | |
tree | 03f54aa0fb507de72b40c35a37a8a0584983c473 /lib | |
parent | 8a13d344a898195c6eb33d8bea151487d0d209bd (diff) | |
download | spack-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.py | 19 | ||||
-rw-r--r-- | lib/spack/spack/spec.py | 4 |
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 |