forked from VimPlug/jedi
Make the Environment clearly non-public
This commit is contained in:
@@ -29,11 +29,18 @@ class _BaseEnvironment(object):
|
|||||||
return parso.load_grammar(version=version_string)
|
return parso.load_grammar(version=version_string)
|
||||||
|
|
||||||
|
|
||||||
class Environment(_BaseEnvironment):
|
class _Environment(_BaseEnvironment):
|
||||||
def __init__(self, path, executable):
|
def __init__(self, path, executable):
|
||||||
self.path = os.path.abspath(path)
|
self.path = os.path.abspath(path)
|
||||||
|
"""
|
||||||
|
"""
|
||||||
self.executable = os.path.abspath(executable)
|
self.executable = os.path.abspath(executable)
|
||||||
self.version_info = self._get_version()
|
self.version_info = self._get_version()
|
||||||
|
"""
|
||||||
|
|
||||||
|
:param version_info: Like sys.version_info. A tuple to show the current Environment's Python
|
||||||
|
version.
|
||||||
|
"""
|
||||||
|
|
||||||
def _get_version(self):
|
def _get_version(self):
|
||||||
try:
|
try:
|
||||||
@@ -74,7 +81,7 @@ class Environment(_BaseEnvironment):
|
|||||||
return self._get_subprocess().get_sys_path()
|
return self._get_subprocess().get_sys_path()
|
||||||
|
|
||||||
|
|
||||||
class DefaultEnvironment(Environment):
|
class DefaultEnvironment(_Environment):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super(DefaultEnvironment, self).__init__(sys.prefix, sys.executable)
|
super(DefaultEnvironment, self).__init__(sys.prefix, sys.executable)
|
||||||
|
|
||||||
@@ -159,7 +166,7 @@ def find_virtualenvs(paths=None, **kwargs):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
executable = _get_executable_path(path, safe=safe)
|
executable = _get_executable_path(path, safe=safe)
|
||||||
yield Environment(path, executable)
|
yield _Environment(path, executable)
|
||||||
except InvalidPythonEnvironment:
|
except InvalidPythonEnvironment:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@@ -210,13 +217,13 @@ def get_python_environment(python):
|
|||||||
"""
|
"""
|
||||||
exe = find_executable(python)
|
exe = find_executable(python)
|
||||||
if exe:
|
if exe:
|
||||||
return Environment(_get_python_prefix(exe), exe)
|
return _Environment(_get_python_prefix(exe), exe)
|
||||||
if os.name == 'nt':
|
if os.name == 'nt':
|
||||||
match = re.search('python(\d+\.\d+)$', python)
|
match = re.search('python(\d+\.\d+)$', python)
|
||||||
if match:
|
if match:
|
||||||
version = match.group(1)
|
version = match.group(1)
|
||||||
for prefix, exe in _get_executables_from_windows_registry(version):
|
for prefix, exe in _get_executables_from_windows_registry(version):
|
||||||
return Environment(prefix, exe)
|
return _Environment(prefix, exe)
|
||||||
raise InvalidPythonEnvironment("Cannot find executable %s." % python)
|
raise InvalidPythonEnvironment("Cannot find executable %s." % python)
|
||||||
|
|
||||||
|
|
||||||
@@ -226,12 +233,12 @@ def create_environment(path, safe=False):
|
|||||||
|
|
||||||
May raise InvalidPythonEnvironment.
|
May raise InvalidPythonEnvironment.
|
||||||
"""
|
"""
|
||||||
return Environment(path, _get_executable_path(path, safe=safe))
|
return _Environment(path, _get_executable_path(path, safe=safe))
|
||||||
|
|
||||||
|
|
||||||
def from_executable(executable):
|
def from_executable(executable):
|
||||||
path = os.path.dirname(os.path.dirname(executable))
|
path = os.path.dirname(os.path.dirname(executable))
|
||||||
return Environment(path, executable)
|
return _Environment(path, executable)
|
||||||
|
|
||||||
|
|
||||||
def _get_executable_path(path, safe=True):
|
def _get_executable_path(path, safe=True):
|
||||||
|
|||||||
Reference in New Issue
Block a user