summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSylvain Thénault <sylvain.thenault@logilab.fr>2013-06-18 17:14:58 +0200
committerSylvain Thénault <sylvain.thenault@logilab.fr>2013-06-18 17:14:58 +0200
commit3d5fd4b0b810c42f0f779afbffffb0bd4df898c6 (patch)
tree4a9af2c6be696479b54f55b23b61d5b0aa0dc1c2
parent9aab8ffe4b6c787712f1d1d8530a4d205c387a3a (diff)
downloadastroid-git-3d5fd4b0b810c42f0f779afbffffb0bd4df898c6.tar.gz
work on thread safety
to start with, rebuilder should not be a class attribute
-rw-r--r--builder.py9
-rw-r--r--rebuilder.py5
2 files changed, 5 insertions, 9 deletions
diff --git a/builder.py b/builder.py
index 566bdd53..42168eb5 100644
--- a/builder.py
+++ b/builder.py
@@ -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__