summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcpopa <devnull@localhost>2014-02-03 11:08:00 +0200
committercpopa <devnull@localhost>2014-02-03 11:08:00 +0200
commitaff33d0a6ba661cef3ad6f830ec6996952d69177 (patch)
tree4530f66cfd3f6559b95f44b47fe385f2eca8040f
parentdc15696c0abf911eaabb4a1b9fb28c8d31c0f46c (diff)
downloadastroid-aff33d0a6ba661cef3ad6f830ec6996952d69177.tar.gz
Workaround for _io module, having __module__ as `io`.
-rw-r--r--raw_building.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/raw_building.py b/raw_building.py
index 756bec1..56d07c0 100644
--- a/raw_building.py
+++ b/raw_building.py
@@ -35,6 +35,12 @@ MANAGER = AstroidManager()
_CONSTANTS = tuple(CONST_CLS) # the keys of CONST_CLS eg python builtin types
+def _io_discrepancy(member):
+ member_self = getattr(member, '__self__', None)
+ return (member_self and
+ member_self.__name__ == '_io' and
+ member.__module__ == 'io')
+
def _attach_local_node(parent, node, name):
node.name = name # needed by add_local_node
parent.add_local_node(node)
@@ -249,8 +255,9 @@ class InspectBuilder(object):
attach_dummy_node(node, name, member)
else:
object_build_function(node, member, name)
- elif isbuiltin(member):
- if self.imported_member(node, member, name):
+ elif isbuiltin(member):
+ if (not _io_discrepancy(member) and
+ self.imported_member(node, member, name)):
#if obj is object:
# print 'skippp', obj, name, member
continue