diff --git a/jedi/_compatibility.py b/jedi/_compatibility.py index 9b5edc86..f8f93c10 100644 --- a/jedi/_compatibility.py +++ b/jedi/_compatibility.py @@ -348,6 +348,11 @@ try: except NameError: NotADirectoryError = IOError +try: + PermissionError = PermissionError +except NameError: + PermissionError = IOError + def no_unicode_pprint(dct): """ diff --git a/jedi/api/project.py b/jedi/api/project.py index eed8f3f9..1e4bc08c 100644 --- a/jedi/api/project.py +++ b/jedi/api/project.py @@ -1,7 +1,7 @@ import os import json -from jedi._compatibility import FileNotFoundError, NotADirectoryError +from jedi._compatibility import FileNotFoundError, NotADirectoryError, PermissionError from jedi.api.environment import SameEnvironment, \ get_cached_default_environment from jedi.api.exceptions import WrongVersion @@ -151,7 +151,7 @@ def _is_django_path(directory): try: with open(os.path.join(directory, 'manage.py'), 'rb') as f: return b"DJANGO_SETTINGS_MODULE" in f.read() - except (FileNotFoundError, NotADirectoryError): + except (FileNotFoundError, NotADirectoryError, PermissionError): return False return False @@ -167,7 +167,7 @@ def get_default_project(path=None): for dir in traverse_parents(check, include_current=True): try: return Project.load(dir) - except (FileNotFoundError, NotADirectoryError): + except (FileNotFoundError, NotADirectoryError, PermissionError): pass if first_no_init_file is None: