__init__.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. """QMK CLI Subcommands
  2. We list each subcommand here explicitly because all the reliable ways of searching for modules are slow and delay startup.
  3. """
  4. import sys
  5. from milc import cli, __VERSION__
  6. from . import c2json
  7. from . import cformat
  8. from . import chibios
  9. from . import clean
  10. from . import compile
  11. from . import config
  12. from . import docs
  13. from . import doctor
  14. from . import fileformat
  15. from . import flash
  16. from . import format
  17. from . import generate
  18. from . import hello
  19. from . import info
  20. from . import json2c
  21. from . import lint
  22. from . import list
  23. from . import kle2json
  24. from . import multibuild
  25. from . import new
  26. from . import pyformat
  27. from . import pytest
  28. # Supported version information
  29. #
  30. # Based on the OSes we support these are the minimum python version available by default.
  31. # Last update: 2021 Jan 02
  32. #
  33. # Arch: 3.9
  34. # Debian: 3.7
  35. # Fedora 31: 3.7
  36. # Fedora 32: 3.8
  37. # Fedora 33: 3.9
  38. # FreeBSD: 3.7
  39. # Gentoo: 3.7
  40. # macOS: 3.9 (from homebrew)
  41. # msys2: 3.8
  42. # Slackware: 3.7
  43. # solus: 3.7
  44. # void: 3.9
  45. if sys.version_info[0] != 3 or sys.version_info[1] < 7:
  46. print('Error: Your Python is too old! Please upgrade to Python 3.7 or later.')
  47. exit(127)
  48. milc_version = __VERSION__.split('.')
  49. if int(milc_version[0]) < 2 and int(milc_version[1]) < 3:
  50. from pathlib import Path
  51. requirements = Path('requirements.txt').resolve()
  52. print(f'Your MILC library is too old! Please upgrade: python3 -m pip install -U -r {str(requirements)}')
  53. exit(127)