diff options
| author | Sylvain Th?nault <thenault@gmail.com> | 2014-02-14 09:30:05 +0100 |
|---|---|---|
| committer | Sylvain Th?nault <thenault@gmail.com> | 2014-02-14 09:30:05 +0100 |
| commit | 2ed170bf51b8684c7dfd4ade16b74fdfca193cd8 (patch) | |
| tree | 05735611e8c364130115bdfb25264b20654ae4bc | |
| parent | 2f034512e3d0e0000185939b7437ad5f05a97f90 (diff) | |
| parent | 1e78ae1edfb73b86907ca27b91abc782ad771b16 (diff) | |
| download | astroid-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.py | 12 |
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 |
