forked from VimPlug/jedi
Add file_io for Jedi for listdir
This commit is contained in:
@@ -20,7 +20,7 @@ except ImportError:
|
||||
pass
|
||||
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_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)
|
||||
|
||||
|
||||
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):
|
||||
is_package = loader.is_package(string)
|
||||
try:
|
||||
|
||||
@@ -67,7 +67,7 @@ from functools import partial
|
||||
from parso.python import tree
|
||||
import parso
|
||||
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 parser_utils
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import os
|
||||
import re
|
||||
|
||||
from parso.file_io import FileIO
|
||||
from jedi.file_io import FileIO
|
||||
from jedi._compatibility import FileNotFoundError, cast_path
|
||||
from jedi.parser_utils import get_cached_code_lines
|
||||
from jedi.evaluate.cache import evaluator_function_cache
|
||||
|
||||
@@ -16,7 +16,7 @@ import os
|
||||
from parso.python import tree
|
||||
from parso.tree import search_ancestor
|
||||
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,
|
||||
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