__init__.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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 new
  25. from . import pyformat
  26. from . import pytest
  27. # Supported version information
  28. #
  29. # Based on the OSes we support these are the minimum python version available by default.
  30. # Last update: 2021 Jan 02
  31. #
  32. # Arch: 3.9
  33. # Debian: 3.7
  34. # Fedora 31: 3.7
  35. # Fedora 32: 3.8
  36. # Fedora 33: 3.9
  37. # FreeBSD: 3.7
  38. # Gentoo: 3.7
  39. # macOS: 3.9 (from homebrew)
  40. # msys2: 3.8
  41. # Slackware: 3.7
  42. # solus: 3.7
  43. # void: 3.9
  44. if sys.version_info[0] != 3 or sys.version_info[1] < 7:
  45. print('Error: Your Python is too old! Please upgrade to Python 3.7 or later.')
  46. exit(127)
  47. milc_version = __VERSION__.split('.')
  48. if int(milc_version[0]) < 2 and int(milc_version[1]) < 3:
  49. from pathlib import Path
  50. requirements = Path('requirements.txt').resolve()
  51. print(f'Your MILC library is too old! Please upgrade: python3 -m pip install -U -r {str(requirements)}')
  52. exit(127)