diff options
-rw-r--r-- | attoconf/classy.py | 4 | ||||
-rw-r--r-- | attoconf/lib/install.py | 4 |
2 files changed, 7 insertions, 1 deletions
diff --git a/attoconf/classy.py b/attoconf/classy.py index ba06fcc..59a62e1 100644 --- a/attoconf/classy.py +++ b/attoconf/classy.py @@ -38,7 +38,9 @@ class PolymorphicSlotMergerMetaclass(type): # TODO: remove *args for 1.0 def __call__(cls, *args, **kwargs): instance = type.__call__(cls, *args, **kwargs) - instance._do_jiggle() + if 'package' in kwargs or not isinstance(instance, + __import__('attoconf.lib.install', fromlist=['Install']).Install): + instance._do_jiggle() return instance diff --git a/attoconf/lib/install.py b/attoconf/lib/install.py index 3dc7f5b..26e515c 100644 --- a/attoconf/lib/install.py +++ b/attoconf/lib/install.py @@ -152,8 +152,12 @@ class Install(ClassyProject): self.set_package(package, package_name) def set_package(self, package, package_name): + if package is not None: + assert self.package is None self.package = package self.package_name = package_name + if package is not None: + self._do_jiggle() def general(self): super(Install, self).general() |