diff options
Diffstat (limited to 'builder.py')
-rw-r--r-- | builder.py | 13 |
1 files changed, 10 insertions, 3 deletions
@@ -131,13 +131,20 @@ class AstroidBuilder(InspectBuilder): except ImportError: modname = splitext(basename(path))[0] # build astroid representation - node = self.string_build(data, modname, path) - node.file_encoding = encoding - return node + module = self._data_build(data, modname, path) + return self._post_build(module, encoding) def string_build(self, data, modname='', path=None): """build astroid from source code string and return rebuilded astroid""" module = self._data_build(data, modname, path) + module.file_bytes = data.encode('utf-8') + return self._post_build(module, 'utf-8') + + def _post_build(self, module, encoding): + """handles encoding and delayed nodes + after a module has been built + """ + module.file_encoding = encoding self._manager.astroid_cache[module.name] = module # post tree building steps after we stored the module in the cache: for from_node in module._from_nodes: |