1
0
forked from VimPlug/jedi

Add file_io for Jedi for listdir

This commit is contained in:
Dave Halter
2019-05-31 21:25:39 +02:00
parent 77bd393a92
commit 9c40c75136
5 changed files with 37 additions and 17 deletions

View File

@@ -20,7 +20,7 @@ except ImportError:
pass pass
from zipimport import zipimporter from zipimport import zipimporter
from parso.file_io import KnownContentFileIO from jedi.file_io import KnownContentFileIO, ZipFileIO
is_py3 = sys.version_info[0] >= 3 is_py3 = sys.version_info[0] >= 3
is_py35 = is_py3 and sys.version_info[1] >= 5 is_py35 = is_py3 and sys.version_info[1] >= 5
@@ -91,19 +91,6 @@ def find_module_py33(string, path=None, loader=None, full_name=None, is_global_s
return _from_loader(loader, string) return _from_loader(loader, string)
class ZipFileIO(KnownContentFileIO):
"""For .zip and .egg archives"""
def __init__(self, path, code, zip_path):
super(ZipFileIO, self).__init__(path, code)
self._zip_path = zip_path
def get_last_modified(self):
try:
return os.path.getmtime(self._zip_path)
except OSError: # Python 3 would probably only need FileNotFoundError
return None
def _from_loader(loader, string): def _from_loader(loader, string):
is_package = loader.is_package(string) is_package = loader.is_package(string)
try: try:

View File

@@ -67,7 +67,7 @@ from functools import partial
from parso.python import tree from parso.python import tree
import parso import parso
from parso import python_bytes_to_unicode from parso import python_bytes_to_unicode
from parso.file_io import FileIO from jedi.file_io import FileIO
from jedi import debug from jedi import debug
from jedi import parser_utils from jedi import parser_utils

View File

@@ -1,7 +1,7 @@
import os import os
import re import re
from parso.file_io import FileIO from jedi.file_io import FileIO
from jedi._compatibility import FileNotFoundError, cast_path from jedi._compatibility import FileNotFoundError, cast_path
from jedi.parser_utils import get_cached_code_lines from jedi.parser_utils import get_cached_code_lines
from jedi.evaluate.cache import evaluator_function_cache from jedi.evaluate.cache import evaluator_function_cache

View File

@@ -16,7 +16,7 @@ import os
from parso.python import tree from parso.python import tree
from parso.tree import search_ancestor from parso.tree import search_ancestor
from parso import python_bytes_to_unicode from parso import python_bytes_to_unicode
from parso.file_io import KnownContentFileIO from jedi.file_io import KnownContentFileIO
from jedi._compatibility import (FileNotFoundError, ImplicitNSInfo, from jedi._compatibility import (FileNotFoundError, ImplicitNSInfo,
force_unicode, unicode) force_unicode, unicode)

33
jedi/file_io.py Normal file
View File

@@ -0,0 +1,33 @@
import os
from parso import file_io
class _ListDirMixin(object):
def listdir(self):
directory = self.path
return os.listdir(directory)
class ZipFileIO(file_io.KnownContentFileIO):
"""For .zip and .egg archives"""
def __init__(self, path, code, zip_path):
super(ZipFileIO, self).__init__(path, code)
self._zip_path = zip_path
def get_last_modified(self):
try:
return os.path.getmtime(self._zip_path)
except OSError: # Python 3 would probably only need FileNotFoundError
return None
def listdir(self):
return []
class FileIO(_ListDirMixin, file_io.FileIO):
pass
class KnownContentFileIO(file_io.KnownContentFileIO):
pass