summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSylvain Th?nault <thenault@gmail.com>2014-02-14 09:30:05 +0100
committerSylvain Th?nault <thenault@gmail.com>2014-02-14 09:30:05 +0100
commit2ed170bf51b8684c7dfd4ade16b74fdfca193cd8 (patch)
tree05735611e8c364130115bdfb25264b20654ae4bc
parent2f034512e3d0e0000185939b7437ad5f05a97f90 (diff)
parent1e78ae1edfb73b86907ca27b91abc782ad771b16 (diff)
downloadastroid-2ed170bf51b8684c7dfd4ade16b74fdfca193cd8.tar.gz
Merged in PCManticore/astroid/nameconstant_py34 (pull request #21)
Workaround for _io module, having __module__ as `io`.
-rw-r--r--raw_building.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/raw_building.py b/raw_building.py
index 756bec1..9e85055 100644
--- a/raw_building.py
+++ b/raw_building.py
@@ -35,6 +35,13 @@ MANAGER = AstroidManager()
_CONSTANTS = tuple(CONST_CLS) # the keys of CONST_CLS eg python builtin types
+def _io_discrepancy(member):
+ # _io module names itself `io`: http://bugs.python.org/issue18602
+ 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 +256,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