1
0
forked from VimPlug/jedi

* reflect default Popen behavior by inheriting os.environ

* without passing env_vars to create_environment, GeneralizedPopen behavior is same as before fix to issue #1540 (803c3cb271)
* env_vars allows explicit environment variables, per PR #1619 (f9183bbf64)
This commit is contained in:
Ryan Clary
2020-07-15 08:30:24 -07:00
parent 9957374508
commit b0f664ec94
2 changed files with 5 additions and 14 deletions

View File

@@ -156,21 +156,12 @@ class CompiledSubprocess(object):
# Start with 2, gets set after _get_info.
_pickle_protocol = 2
def __init__(self, executable, env_vars={}):
def __init__(self, executable, env_vars=None):
self._executable = executable
self._env_vars = dict(env_vars)
self._env_vars = env_vars
self._inference_state_deletion_queue = queue.deque()
self._cleanup_callable = lambda: None
# Use explicit envionment to ensure reliable results (#1540)
if os.name == 'nt':
# if SYSTEMROOT (or case variant) exists in environment,
# ensure it goes to subprocess
for k, v in os.environ.items():
if 'SYSTEMROOT' == k.upper():
self._env_vars.update({k: os.environ[k]})
break # don't risk multiple entries
def __repr__(self):
pid = os.getpid()
return '<%s _executable=%r, _pickle_protocol=%r, is_crashed=%r, pid=%r>' % (