1.1 --- a/micropython/inspect.py Tue Jun 12 23:52:18 2012 +0200
1.2 +++ b/micropython/inspect.py Tue Jun 12 23:54:41 2012 +0200
1.3 @@ -963,19 +963,25 @@
1.4
1.5 def visitFrom(self, node):
1.6 module = self.importer.load(node.modname, 1)
1.7 + if module and not module.loaded:
1.8 + print >>sys.stderr, "Warning: a circular import of %s is being attempted in %s" % (node.modname, self.full_name())
1.9
1.10 #if module is None:
1.11 # print >>sys.stderr, "Warning:", node.modname, "not imported."
1.12
1.13 for name, alias in node.names:
1.14 if name != "*":
1.15 - if module is not None:
1.16 + if module:
1.17
1.18 # Missing names may refer to submodules.
1.19
1.20 if not module.has_key(name):
1.21 submodule = self.importer.load(node.modname + "." + name, 1)
1.22 - if submodule is not None:
1.23 + if submodule:
1.24 + if not submodule.loaded:
1.25 + print >>sys.stderr, "Warning: a circular import of %s.%s is being attempted in %s" % (
1.26 + node.modname, name, self.full_name())
1.27 +
1.28 module.store(name, submodule)
1.29
1.30 # Complete the import if the name was found.
1.31 @@ -993,7 +999,7 @@
1.32 self.store(alias or name, UnresolvedName(name, node.modname, self))
1.33
1.34 else:
1.35 - if module is not None:
1.36 + if module:
1.37 for n in module.keys():
1.38 attr = module[n]
1.39 self.store(n, attr)