[utils] `Popen`: Shim undocumented `text_mode` property

Fixes #6317

Authored by: Grub4K
pull/6341/head
Simon Sawicki 2 years ago committed by GitHub
parent 18d295c9e0
commit da8e2912b1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -879,6 +879,7 @@ class Popen(subprocess.Popen):
env = os.environ.copy() env = os.environ.copy()
self._fix_pyinstaller_ld_path(env) self._fix_pyinstaller_ld_path(env)
self.__text_mode = kwargs.get('encoding') or kwargs.get('errors') or text or kwargs.get('universal_newlines')
if text is True: if text is True:
kwargs['universal_newlines'] = True # For 3.6 compatibility kwargs['universal_newlines'] = True # For 3.6 compatibility
kwargs.setdefault('encoding', 'utf-8') kwargs.setdefault('encoding', 'utf-8')
@ -900,7 +901,7 @@ class Popen(subprocess.Popen):
@classmethod @classmethod
def run(cls, *args, timeout=None, **kwargs): def run(cls, *args, timeout=None, **kwargs):
with cls(*args, **kwargs) as proc: with cls(*args, **kwargs) as proc:
default = '' if proc.text_mode else b'' default = '' if proc.__text_mode else b''
stdout, stderr = proc.communicate_or_kill(timeout=timeout) stdout, stderr = proc.communicate_or_kill(timeout=timeout)
return stdout or default, stderr or default, proc.returncode return stdout or default, stderr or default, proc.returncode

Loading…
Cancel
Save