summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2016-09-02 15:10:30 -0700
committerGitHub <noreply@github.com>2016-09-02 15:10:30 -0700
commit07fa1cd5f8f225e0c1c988f8620b30b1ff799aba (patch)
tree1bd3e4fba61d678ffd21a6066d3f06b0d76845a2 /lib
parentea6143402fb612ea069853b01f541aecbba64750 (diff)
downloadspack-07fa1cd5f8f225e0c1c988f8620b30b1ff799aba.tar.gz
spack-07fa1cd5f8f225e0c1c988f8620b30b1ff799aba.tar.bz2
spack-07fa1cd5f8f225e0c1c988f8620b30b1ff799aba.tar.xz
spack-07fa1cd5f8f225e0c1c988f8620b30b1ff799aba.zip
Attributes for directives need to be set at class construction time. (#1718)
- moved ensure_dicts() call from Package.__init__ to Package.__metaclass__.
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/spack/package.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/spack/spack/package.py b/lib/spack/spack/package.py
index 3ffedbbad9..882901d887 100644
--- a/lib/spack/spack/package.py
+++ b/lib/spack/spack/package.py
@@ -329,6 +329,12 @@ class Package(object):
"""
sanity_check_is_dir = []
+ class __metaclass__(type):
+ """Ensure attributes required by Spack directives are present."""
+ def __init__(cls, name, bases, dict):
+ type.__init__(cls, name, bases, dict)
+ spack.directives.ensure_dicts(cls)
+
def __init__(self, spec):
# this determines how the package should be built.
self.spec = spec
@@ -342,9 +348,6 @@ class Package(object):
# Allow custom staging paths for packages
self.path = None
- # Sanity check attributes required by Spack directives.
- spack.directives.ensure_dicts(type(self))
-
# Check versions in the versions dict.
for v in self.versions:
assert (isinstance(v, Version))