diff options
| author | QMK Bot <[email protected]> | 2022-06-29 23:34:39 +0000 | 
|---|---|---|
| committer | QMK Bot <[email protected]> | 2022-06-29 23:34:39 +0000 | 
| commit | fb05b491e787fa1be19c66c75f4f80a6e8abddca (patch) | |
| tree | 44419ae62fcd48cd3b0a1207bf8ab4c91eb7d114 /lib/python | |
| parent | 34e244cecf62afb30ee5a4362867f24b03675691 (diff) | |
| parent | 7326a0051b1acdd8fbce741c16000866530773a2 (diff) | |
| download | qmk_firmware-fb05b491e787fa1be19c66c75f4f80a6e8abddca.tar.gz qmk_firmware-fb05b491e787fa1be19c66c75f4f80a6e8abddca.zip | |
Merge remote-tracking branch 'origin/master' into develop
Diffstat (limited to 'lib/python')
| -rw-r--r-- | lib/python/qmk/cli/__init__.py | 36 | 
1 files changed, 22 insertions, 14 deletions
| diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py index d7192631a3..02c6d1cbf4 100644 --- a/lib/python/qmk/cli/__init__.py +++ b/lib/python/qmk/cli/__init__.py @@ -156,6 +156,18 @@ def _broken_module_imports(requirements):      return False +def _yesno(*args): +    """Wrapper to only prompt if interactive +    """ +    return sys.stdout.isatty() and yesno(*args) + + +def _eprint(errmsg): +    """Wrapper to print to stderr +    """ +    print(errmsg, file=sys.stderr) + +  # Make sure our python is new enough  #  # Supported version information @@ -177,7 +189,7 @@ def _broken_module_imports(requirements):  # void: 3.9  if sys.version_info[0] != 3 or sys.version_info[1] < 7: -    print('Error: Your Python is too old! Please upgrade to Python 3.7 or later.') +    _eprint('Error: Your Python is too old! Please upgrade to Python 3.7 or later.')      exit(127)  milc_version = __VERSION__.split('.') @@ -185,7 +197,7 @@ milc_version = __VERSION__.split('.')  if int(milc_version[0]) < 2 and int(milc_version[1]) < 4:      requirements = Path('requirements.txt').resolve() -    print(f'Your MILC library is too old! Please upgrade: python3 -m pip install -U -r {str(requirements)}') +    _eprint(f'Your MILC library is too old! Please upgrade: python3 -m pip install -U -r {str(requirements)}')      exit(127)  # Make sure we can run binaries in the same directory as our Python interpreter @@ -195,7 +207,7 @@ if python_dir not in os.environ['PATH'].split(':'):      os.environ['PATH'] = ":".join((python_dir, os.environ['PATH']))  # Check to make sure we have all our dependencies -msg_install = f'Please run `{sys.executable} -m pip install -r %s` to install required python dependencies.' +msg_install = f'\nPlease run `{sys.executable} -m pip install -r %s` to install required python dependencies.'  args = sys.argv[1:]  while args and args[0][0] == '-':      del args[0] @@ -204,24 +216,20 @@ safe_command = args and args[0] in safe_commands  if not safe_command:      if _broken_module_imports('requirements.txt'): -        if yesno('Would you like to install the required Python modules?'): +        if _yesno('Would you like to install the required Python modules?'):              _install_deps('requirements.txt')          else: -            print() -            print(msg_install % (str(Path('requirements.txt').resolve()),)) -            print() +            _eprint(msg_install % (str(Path('requirements.txt').resolve()),))              exit(1)      if cli.config.user.developer and _broken_module_imports('requirements-dev.txt'): -        if yesno('Would you like to install the required developer Python modules?'): +        if _yesno('Would you like to install the required developer Python modules?'):              _install_deps('requirements-dev.txt') -        elif yesno('Would you like to disable developer mode?'): +        elif _yesno('Would you like to disable developer mode?'):              _run_cmd(sys.argv[0], 'config', 'user.developer=None')          else: -            print() -            print(msg_install % (str(Path('requirements-dev.txt').resolve()),)) -            print('You can also turn off developer mode: qmk config user.developer=None') -            print() +            _eprint(msg_install % (str(Path('requirements-dev.txt').resolve()),)) +            _eprint('You can also turn off developer mode: qmk config user.developer=None')              exit(1)  # Import our subcommands @@ -231,6 +239,6 @@ for subcommand in subcommands:      except (ImportError, ModuleNotFoundError) as e:          if safe_command: -            print(f'Warning: Could not import {subcommand}: {e.__class__.__name__}, {e}') +            _eprint(f'Warning: Could not import {subcommand}: {e.__class__.__name__}, {e}')          else:              raise | 
