From db1eacdaacb9c8f6889f46bc1c6af155b81ad72a Mon Sep 17 00:00:00 2001 From: Zach White Date: Wed, 19 May 2021 15:24:46 -0700 Subject: Align our subprocess usage with current best practices. (#12940) * Align our subprocess usage with current best practices. * remove unused import * Apply suggestions from code review Co-authored-by: Ryan * fix the cpp invocation for older python * allow for unprompted installation * make sure qmk new-keyboard works on windows Co-authored-by: Ryan --- lib/python/qmk/keymap.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'lib/python/qmk/keymap.py') diff --git a/lib/python/qmk/keymap.py b/lib/python/qmk/keymap.py index 4ad9ffb591..ac7951082e 100644 --- a/lib/python/qmk/keymap.py +++ b/lib/python/qmk/keymap.py @@ -1,9 +1,9 @@ """Functions that help you work with QMK keymaps. """ import json -import subprocess import sys from pathlib import Path +from subprocess import DEVNULL import argcomplete from milc import cli @@ -12,7 +12,6 @@ from pygments.token import Token from pygments import lex import qmk.path -import qmk.commands from qmk.keyboard import find_keyboard_from_dir, rules_mk # The `keymap.c` template to use when a keyboard doesn't have its own @@ -361,7 +360,7 @@ def list_keymaps(keyboard, c=True, json=True, additional_files=None, fullpath=Fa return sorted(names) -def _c_preprocess(path, stdin=None): +def _c_preprocess(path, stdin=DEVNULL): """ Run a file through the C pre-processor Args: @@ -371,7 +370,9 @@ def _c_preprocess(path, stdin=None): Returns: the stdout of the pre-processor """ - pre_processed_keymap = qmk.commands.run(['cpp', path] if path else ['cpp'], stdin=stdin, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) + cmd = ['cpp', str(path)] if path else ['cpp'] + pre_processed_keymap = cli.run(cmd, stdin=stdin) + return pre_processed_keymap.stdout -- cgit v1.2.1