summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--attoconf/classy.py4
-rw-r--r--attoconf/lib/install.py4
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()