From ab7a2ee55811c1d25dc482f4d5126eb4d7bbe714 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Mon, 4 Apr 2022 16:58:11 +0200 Subject: Switch to Python 3.7 subprocess API Follow-up for #6905 --- doc/help/configuring.asciidoc | 4 ++-- misc/userscripts/qute-bitwarden | 16 +++++++--------- misc/userscripts/qute-lastpass | 2 +- qutebrowser/components/braveadblock.py | 5 +++-- scripts/dev/misc_checks.py | 2 +- scripts/dev/recompile_requirements.py | 2 +- scripts/link_pyqt.py | 4 ++-- scripts/mkvenv.py | 2 +- scripts/setupcommon.py | 2 +- tests/unit/misc/test_checkpyver.py | 3 +-- tests/unit/utils/test_standarddir.py | 2 +- 11 files changed, 21 insertions(+), 23 deletions(-) diff --git a/doc/help/configuring.asciidoc b/doc/help/configuring.asciidoc index a59f48130..3ecef8ecf 100644 --- a/doc/help/configuring.asciidoc +++ b/doc/help/configuring.asciidoc @@ -391,8 +391,8 @@ import subprocess def read_xresources(prefix): props = {} - x = subprocess.run(['xrdb', '-query'], stdout=subprocess.PIPE) - lines = x.stdout.decode().split('\n') + x = subprocess.run(['xrdb', '-query'], capture_output=True, check=True, text=True) + lines = x.stdout.split('\n') for line in filter(lambda l : l.startswith(prefix), lines): prop, _, value = line.partition(':\t') props[prop] = value diff --git a/misc/userscripts/qute-bitwarden b/misc/userscripts/qute-bitwarden index 30e7c6f2d..a44e08a14 100755 --- a/misc/userscripts/qute-bitwarden +++ b/misc/userscripts/qute-bitwarden @@ -103,7 +103,7 @@ def qute_command(command): def ask_password(password_prompt_invocation): process = subprocess.run( shlex.split(password_prompt_invocation), - universal_newlines=True, + text=True, stdout=subprocess.PIPE, ) if process.returncode > 0: @@ -111,7 +111,7 @@ def ask_password(password_prompt_invocation): master_pass = process.stdout.strip() return subprocess.check_output( ['bw', 'unlock', '--raw', master_pass], - universal_newlines=True, + text=True, ).strip() @@ -122,7 +122,7 @@ def get_session_key(auto_lock, password_prompt_invocation): else: process = subprocess.run( ['keyctl', 'request', 'user', 'bw_session'], - universal_newlines=True, + text=True, stdout=subprocess.PIPE, ) key_id = process.stdout.strip() @@ -132,14 +132,14 @@ def get_session_key(auto_lock, password_prompt_invocation): raise Exception('Could not unlock vault') key_id = subprocess.check_output( ['keyctl', 'add', 'user', 'bw_session', session, '@u'], - universal_newlines=True, + text=True, ).strip() if auto_lock > 0: subprocess.call(['keyctl', 'timeout', str(key_id), str(auto_lock)]) return subprocess.check_output( ['keyctl', 'pipe', str(key_id)], - universal_newlines=True, + text=True, ).strip() @@ -147,8 +147,7 @@ def pass_(domain, encoding, auto_lock, password_prompt_invocation): session_key = get_session_key(auto_lock, password_prompt_invocation) process = subprocess.run( ['bw', 'list', 'items', '--session', session_key, '--url', domain], - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, + capture_output=True, ) err = process.stderr.decode(encoding).strip() @@ -168,8 +167,7 @@ def get_totp_code(selection_id, domain_name, encoding, auto_lock, password_promp session_key = get_session_key(auto_lock, password_prompt_invocation) process = subprocess.run( ['bw', 'get', 'totp', '--session', session_key, selection_id], - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, + capture_output=True, ) err = process.stderr.decode(encoding).strip() diff --git a/misc/userscripts/qute-lastpass b/misc/userscripts/qute-lastpass index edb48dfdc..e99a51a0f 100755 --- a/misc/userscripts/qute-lastpass +++ b/misc/userscripts/qute-lastpass @@ -86,7 +86,7 @@ def qute_command(command): def pass_(domain, encoding): domain = re.escape(domain) args = ['lpass', 'show', '-x', '-j', '-G', '\\b{:s}'.format(domain)] - process = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + process = subprocess.run(args, capture_output=True) candidates = json.loads(process.stdout.decode(encoding).strip() or '[]') err = process.stderr.decode(encoding).strip() diff --git a/qutebrowser/components/braveadblock.py b/qutebrowser/components/braveadblock.py index b1e5b8a29..977aa3ef2 100644 --- a/qutebrowser/components/braveadblock.py +++ b/qutebrowser/components/braveadblock.py @@ -175,11 +175,12 @@ class BraveAdBlocker: hasattr(adblock, "__file__")): proc = subprocess.run( ['pacman', '-Qo', adblock.__file__], - stdout=subprocess.PIPE, - universal_newlines=True, + capture_output=True, + text=True, check=False, ) logger.debug(proc.stdout) + logger.debug(proc.stderr) raise def _is_blocked( diff --git a/scripts/dev/misc_checks.py b/scripts/dev/misc_checks.py index 05fdb7932..908daad4d 100644 --- a/scripts/dev/misc_checks.py +++ b/scripts/dev/misc_checks.py @@ -50,7 +50,7 @@ def _get_files( filenames = subprocess.run( ['git', 'ls-files', '--cached', '--others', '--exclude-standard', '-z'], stdout=subprocess.PIPE, - universal_newlines=True, + text=True, check=True, ) all_ignored = ignored or [] diff --git a/scripts/dev/recompile_requirements.py b/scripts/dev/recompile_requirements.py index e54a6dada..365f9a51e 100644 --- a/scripts/dev/recompile_requirements.py +++ b/scripts/dev/recompile_requirements.py @@ -422,7 +422,7 @@ def test_tox(): list_proc = subprocess.run([venv_python, '-m', 'tox', '--listenvs'], check=True, stdout=subprocess.PIPE, - universal_newlines=True) + text=True) environments = list_proc.stdout.strip().split('\n') for env in environments: with utils.gha_group('tox for {}'.format(env)): diff --git a/scripts/link_pyqt.py b/scripts/link_pyqt.py index 158cc145d..0ec7f2556 100644 --- a/scripts/link_pyqt.py +++ b/scripts/link_pyqt.py @@ -44,13 +44,13 @@ def run_py(executable, *code): f.write('\n'.join(code)) cmd = [executable, filename] try: - ret = subprocess.run(cmd, universal_newlines=True, check=True, + ret = subprocess.run(cmd, text=True, check=True, stdout=subprocess.PIPE).stdout finally: os.remove(filename) else: cmd = [executable, '-c', '\n'.join(code)] - ret = subprocess.run(cmd, universal_newlines=True, check=True, + ret = subprocess.run(cmd, text=True, check=True, stdout=subprocess.PIPE).stdout return ret.rstrip() diff --git a/scripts/mkvenv.py b/scripts/mkvenv.py index 7f6920bb8..737ea145d 100755 --- a/scripts/mkvenv.py +++ b/scripts/mkvenv.py @@ -147,7 +147,7 @@ def run_venv( return subprocess.run( [str(venv_dir / subdir / executable)] + [str(arg) for arg in args], check=True, - universal_newlines=capture_output or capture_error, + text=capture_output or capture_error, stdout=subprocess.PIPE if capture_output else None, stderr=subprocess.PIPE if capture_error else None, env=proc_env, diff --git a/scripts/setupcommon.py b/scripts/setupcommon.py index b1d246044..bd549d7cc 100644 --- a/scripts/setupcommon.py +++ b/scripts/setupcommon.py @@ -43,7 +43,7 @@ def _call_git(gitpath, *args): return subprocess.run( ['git'] + list(args), cwd=gitpath, check=True, - stdout=subprocess.PIPE).stdout.decode('UTF-8').strip() + stdout=subprocess.PIPE, text=True).stdout.strip() def _git_str(): diff --git a/tests/unit/misc/test_checkpyver.py b/tests/unit/misc/test_checkpyver.py index a23d02e1c..35f8cfeec 100644 --- a/tests/unit/misc/test_checkpyver.py +++ b/tests/unit/misc/test_checkpyver.py @@ -39,8 +39,7 @@ def test_old_python(python): try: proc = subprocess.run( [python, checkpyver.__file__, '--no-err-windows'], - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, + capture_output=True, check=False) except FileNotFoundError: pytest.skip(f"{python} not found") diff --git a/tests/unit/utils/test_standarddir.py b/tests/unit/utils/test_standarddir.py index f5d8204a4..0ca635ae2 100644 --- a/tests/unit/utils/test_standarddir.py +++ b/tests/unit/utils/test_standarddir.py @@ -498,7 +498,7 @@ def test_no_qapplication(qapp, tmpdir, monkeypatch): monkeypatch.setenv('HOME', str(home_dir)) proc = subprocess.run([sys.executable, str(pyfile)] + sys.path, - universal_newlines=True, + text=True, check=True, stdout=subprocess.PIPE) sub_locations = json.loads(proc.stdout) -- cgit v1.2.3-54-g00ecf