From 67f49da15c2da390a072971a97c1f2b8ac549039 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Sun, 20 Apr 2014 14:55:05 +0200 Subject: [PATCH] Increase maximum recursion depth. Makes sense for very complicated code (completions within Jedi), since Jedi itself uses so many recursions. --- jedi/api/__init__.py | 5 +++++ jedi/evaluate/dynamic.py | 1 + 2 files changed, 6 insertions(+) diff --git a/jedi/api/__init__.py b/jedi/api/__init__.py index 054d287e..34715f53 100644 --- a/jedi/api/__init__.py +++ b/jedi/api/__init__.py @@ -11,6 +11,7 @@ possible. import re import os import warnings +import sys from itertools import chain from jedi._compatibility import next, unicode, builtins @@ -35,6 +36,10 @@ from jedi.evaluate.helpers import FakeName from jedi.evaluate.finder import get_names_of_scope from jedi.evaluate.helpers import search_call_signatures +# Jedi uses lots and lots of recursion. By setting this a little bit higher, we +# can remove some "maximum recursion depth" errors. +sys.setrecursionlimit(2000) + class NotFoundError(Exception): """A custom error to avoid catching the wrong exceptions.""" diff --git a/jedi/evaluate/dynamic.py b/jedi/evaluate/dynamic.py index 74c59563..43deb068 100644 --- a/jedi/evaluate/dynamic.py +++ b/jedi/evaluate/dynamic.py @@ -27,6 +27,7 @@ from jedi.evaluate import imports # This is something like the sys.path, but only for searching params. It means # that this is the order in which Jedi searches params. search_param_modules = ['.'] +import sys class ParamListener(object):