diff options
Diffstat (limited to 'astroid')
-rw-r--r-- | astroid/brain/brain_numpy_core_umath.py | 2 | ||||
-rw-r--r-- | astroid/context.py | 10 |
2 files changed, 8 insertions, 4 deletions
diff --git a/astroid/brain/brain_numpy_core_umath.py b/astroid/brain/brain_numpy_core_umath.py index 1955e80e..73613b86 100644 --- a/astroid/brain/brain_numpy_core_umath.py +++ b/astroid/brain/brain_numpy_core_umath.py @@ -106,6 +106,7 @@ def numpy_core_umath_transform(): trunc = FakeUfuncOneArg() # Two args functions with optional kwargs + add = FakeUfuncTwoArgs() bitwise_and = FakeUfuncTwoArgs() bitwise_or = FakeUfuncTwoArgs() bitwise_xor = FakeUfuncTwoArgs() @@ -133,6 +134,7 @@ def numpy_core_umath_transform(): logical_xor = FakeUfuncTwoArgs() maximum = FakeUfuncTwoArgs() minimum = FakeUfuncTwoArgs() + multiply = FakeUfuncTwoArgs() nextafter = FakeUfuncTwoArgs() not_equal = FakeUfuncTwoArgs() power = FakeUfuncTwoArgs() diff --git a/astroid/context.py b/astroid/context.py index f1e06974..4bda945f 100644 --- a/astroid/context.py +++ b/astroid/context.py @@ -29,8 +29,10 @@ class InferenceContext: "extra_context", ) + maximum_path_visit = 3 + def __init__(self, path=None, inferred=None): - self.path = path or set() + self.path = path or dict() """ :type: set(tuple(NodeNG, optional(str))) @@ -87,10 +89,10 @@ class InferenceContext: Allows one to see if the given node has already been looked at for this inference context""" name = self.lookupname - if (node, name) in self.path: + if self.path.get((node, name), 0) >= self.maximum_path_visit: return True - self.path.add((node, name)) + self.path[(node, name)] = self.path.setdefault((node, name), 0) + 1 return False def clone(self): @@ -108,7 +110,7 @@ class InferenceContext: @contextlib.contextmanager def restore_path(self): - path = set(self.path) + path = dict(self.path) yield self.path = path |