summaryrefslogtreecommitdiff
path: root/lookup.py
diff options
context:
space:
mode:
Diffstat (limited to 'lookup.py')
-rw-r--r--lookup.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/lookup.py b/lookup.py
index 1abb7289..294f080c 100644
--- a/lookup.py
+++ b/lookup.py
@@ -69,6 +69,15 @@ def scope_lookup(self, node, name, offset=0):
return pscope.scope_lookup(node, name)
return builtin_lookup(name)
+def module_scope_lookup(self, node, name, offset=0):
+ # module's __dict__ not accessible through name lookup
+ if name in nodes.Module.scope_attrs and not name in self.locals:
+ try:
+ return self, self.getattr(name)
+ except NotFoundError:
+ return self, ()
+ return scope_lookup(self, node, name, offset)
+
def class_scope_lookup(self, node, name, offset=0):
if node in self.bases:
frame = self.parent.frame()
@@ -230,6 +239,6 @@ for klass in (nodes.Name, nodes.AssName, nodes.DelName,
nodes.Class.scope_lookup = class_scope_lookup
nodes.Function.scope_lookup = function_scope_lookup
nodes.Lambda.scope_lookup = function_scope_lookup
-nodes.Module.scope_lookup = scope_lookup
+nodes.Module.scope_lookup = module_scope_lookup
nodes.GenExpr.scope_lookup = scope_lookup