1.1 --- a/micropython/data.py Mon Jun 14 01:46:42 2010 +0200
1.2 +++ b/micropython/data.py Tue Jun 15 00:50:51 2010 +0200
1.3 @@ -160,7 +160,7 @@
1.4
1.5 # Globals.
1.6
1.7 - elif module is not None and module.has_key(name):
1.8 + elif module is not None and module is not self and module.has_key(name):
1.9 return module[name], "global", module.full_name()
1.10
1.11 # Builtins.
1.12 @@ -319,6 +319,17 @@
1.13
1.14 # Attribute usage methods.
1.15
1.16 + def finalise_attribute_usage(self):
1.17 +
1.18 + "Propagate attribute usage for the namespace to the importer."
1.19 +
1.20 + module = self.module
1.21 + importer = module and module.importer
1.22 +
1.23 + if importer is not None:
1.24 + for names in self.get_all_attribute_usage():
1.25 + importer.use_names(names, self.full_name())
1.26 +
1.27 def get_all_attribute_usage(self):
1.28
1.29 """
1.30 @@ -570,7 +581,7 @@
1.31 if not new_scope_usage.has_key(name):
1.32 new_scope_usage[name] = scope
1.33 elif new_scope_usage[name] != scope:
1.34 - raise InspectError("Scope conflict for %r." % name)
1.35 + raise InspectError("Scope conflict for %r: defined as both %s and %s." % (name, new_scope_usage[name], scope))
1.36
1.37 # Scope usage methods.
1.38