diff options
| author | Sylvain Thénault <sylvain.thenault@logilab.fr> | 2013-06-18 17:14:58 +0200 |
|---|---|---|
| committer | Sylvain Thénault <sylvain.thenault@logilab.fr> | 2013-06-18 17:14:58 +0200 |
| commit | 3d5fd4b0b810c42f0f779afbffffb0bd4df898c6 (patch) | |
| tree | 4a9af2c6be696479b54f55b23b61d5b0aa0dc1c2 | |
| parent | 9aab8ffe4b6c787712f1d1d8530a4d205c387a3a (diff) | |
| download | astroid-git-3d5fd4b0b810c42f0f779afbffffb0bd4df898c6.tar.gz | |
work on thread safety
to start with, rebuilder should not be a class attribute
| -rw-r--r-- | builder.py | 9 | ||||
| -rw-r--r-- | rebuilder.py | 5 |
2 files changed, 5 insertions, 9 deletions
@@ -83,7 +83,6 @@ MANAGER = AstroidManager() class AstroidBuilder(InspectBuilder): """provide astroid building methods""" - rebuilder = TreeRebuilder() def __init__(self, manager=None): InspectBuilder.__init__(self) @@ -157,11 +156,11 @@ class AstroidBuilder(InspectBuilder): package = True else: package = path and path.find('__init__.py') > -1 or False - self.rebuilder.init() - module = self.rebuilder.visit_module(node, modname, package) + rebuilder = TreeRebuilder() + module = rebuilder.visit_module(node, modname, package) module.file = module.path = node_file - module._from_nodes = self.rebuilder._from_nodes - module._delayed_assattr = self.rebuilder._delayed_assattr + module._from_nodes = rebuilder._from_nodes + module._delayed_assattr = rebuilder._delayed_assattr return module def add_from_names_to_locals(self, node): diff --git a/rebuilder.py b/rebuilder.py index fd84149a..f777b438 100644 --- a/rebuilder.py +++ b/rebuilder.py @@ -119,16 +119,13 @@ def _set_infos(oldnode, newnode, parent): class TreeRebuilder(object): """Rebuilds the _ast tree to become an Astroid tree""" - _visit_meths = {} def __init__(self): - self.init() - - def init(self): self.asscontext = None self._metaclass = [''] self._global_names = [] self._from_nodes = [] self._delayed_assattr = [] + self._visit_meths = {} def visit(self, node, parent): cls = node.__class__ |
