diff --git a/docs/_static/logo-src.txt b/docs/_static/logo-src.txt new file mode 100644 index 00000000..59aa4f6c --- /dev/null +++ b/docs/_static/logo-src.txt @@ -0,0 +1,3 @@ +The source of the logo is a photoshop file hosted here: + +https://dl.dropboxusercontent.com/u/170011615/Jedi12_Logo.psd.xz diff --git a/docs/_static/logo.png b/docs/_static/logo.png index 0c77f119..9f3d2446 100644 Binary files a/docs/_static/logo.png and b/docs/_static/logo.png differ diff --git a/docs/index.rst b/docs/index.rst index b6bb2755..8d0e24d5 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -54,7 +54,7 @@ Emacs: - `Jedi.el `_ -Sublime Text 2: +Sublime Text 2/3: - `SublimeJEDI `_ diff --git a/jedi/evaluate_representation.py b/jedi/evaluate_representation.py index e5766d21..e75287c5 100644 --- a/jedi/evaluate_representation.py +++ b/jedi/evaluate_representation.py @@ -84,6 +84,7 @@ class Instance(use_metaclass(cache.CachedMetaClass, Executable)): except IndexError: return None + @cache.memoize_default([]) def get_self_properties(self): def add_self_dot_name(name): n = copy.copy(name) @@ -110,9 +111,6 @@ class Instance(use_metaclass(cache.CachedMetaClass, Executable)): add_self_dot_name(n) for s in self.base.get_super_classes(): - if s == self.base: - # I don't know how this could happen... But saw it once. - continue names += Instance(s).get_self_properties() return names diff --git a/test/completion/import_tree/recurse_class1.py b/test/completion/import_tree/recurse_class1.py new file mode 100644 index 00000000..773408c8 --- /dev/null +++ b/test/completion/import_tree/recurse_class1.py @@ -0,0 +1,5 @@ +import recurse_class2 + +class C(recurse_class2.C): + def a(self): + pass diff --git a/test/completion/import_tree/recurse_class2.py b/test/completion/import_tree/recurse_class2.py new file mode 100644 index 00000000..42f84efb --- /dev/null +++ b/test/completion/import_tree/recurse_class2.py @@ -0,0 +1,4 @@ +import recurse_class1 + +class C(recurse_class1.C): + pass diff --git a/test/completion/imports.py b/test/completion/imports.py index 83a4a721..19bebecb 100644 --- a/test/completion/imports.py +++ b/test/completion/imports.py @@ -196,7 +196,7 @@ import datetime. #? [] import datetime.date -#? 18 ['mod1', 'random', 'pkg', 'rename1', 'rename2', 'import'] +#? 18 ['mod1', 'random', 'pkg', 'rename1', 'rename2', 'import', 'recurse_class1', 'recurse_class2'] from import_tree. import pkg #? 18 ['pkg'] @@ -236,3 +236,11 @@ import json, datetime from import_tree.mod1 import c #? set c + +from import_tree import recurse_class1 + +#? ['a'] +recurse_class1.C.a +# github #239 RecursionError +#? ['a'] +recurse_class1.C().a