forked from VimPlug/jedi
Add file_io for Jedi for listdir
This commit is contained in:
@@ -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:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
33
jedi/file_io.py
Normal 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
|
||||||
Reference in New Issue
Block a user