summaryrefslogtreecommitdiff
path: root/lib/python/qmk
AgeCommit message (Collapse)Author
2021-01-12Brute force update CLI toolsDrashna Jael're
2021-01-12CLI: Udev related fixes and improvements (#10736)Erovia
2021-01-12New command: qmk lint (#10761)Zach White
* Basic qmk lint command * check for keymap readme * change the workflow from qmk info to qmk lint * add a strict mode * parsing -> parse * document qmk lint * small info logging cleanup * Apply suggestions from code review Co-authored-by: Ryan <fauxpark@gmail.com> * honor --strict in more places * change the job name to lint Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-12CLI: Add `qmk clean` (#10785)Ryan
2021-01-12`qmk info`: Add `--ascii` flag (#10793)Ryan
* `qmk info`: Add `--ascii` flag * Fix typo * Force ASCII for Windows/MSYS2 * Make it gooder * Remove redundant windows check * ...And this too * Make pytest work on Windows
2021-01-12c2json: Fix TypeError on MSYS2 (#10709)Ryan
2021-01-12Fix CLI warning for Massdrop udev rule (#10691)Ryan
2021-01-12[CLI] Remove check for Input Club boards (#10636)Ryan
2021-01-12CLI: Fix stripping of `ANY` from Configurator exports (#10585)Erovia
058737f broke it ¯\_(ツ)_/¯
2021-01-12CLI: Fix MCU lists for `qmk info` (#10574)Ryan
2021-01-12[CLI] Add c2json (#8817)Erovia
* Basic keymap parsing finally works * Add 'keymap.json' creation to the qmk.keymap module * Add tests and fix formatting * Fix/exclude flake8 errors * Convert keymap.c to valid keymap.json * Fix some errors * Add tests * Finalize keymap.json creation, add json template * Add docs * Move pygments to the standard requirements * Add support for nameless layers, fix tests * Fix things after rebase * Add missing 'keymap' value. * Fix missing layer numbers from advanced keycodes Buckwich noticed that if the advanced keycode / layer toggling key contains a number, it goes missing. Now we properly handle them. Thx for noticing! * Apply suggestions from code review * fixup tests Co-authored-by: Zach White <skullydazed@drpepper.org> Co-authored-by: skullY <skullydazed@gmail.com>
2021-01-12CLI: update subcommands to use return instead of exit() (#10323)Ryan
2021-01-12Improve LAYOUT macro searching (#9530)Ryan
* Improve LAYOUT macro searching * Apply suggestions from code review Co-authored-by: Zach White <skullydazed@users.noreply.github.com> * Adjust signature * Try to copy the makefile's handling of DEFAULT_FOLDER * Move it further up, into `info_json()` * Move it even further up so that keyboard_folder is correct * Update lib/python/qmk/info.py Co-authored-by: Zach White <skullydazed@drpepper.org> * Update lib/python/qmk/info.py Co-authored-by: Zach White <skullydazed@drpepper.org> Co-authored-by: Zach White <skullydazed@users.noreply.github.com> Co-authored-by: Zach White <skullydazed@drpepper.org>
2021-01-12Add STM32F401/F411 to ARM_PROCESSORS (#10362)Ryan
2021-01-12Consolidate udev wules into a single fileRyan
2020-09-07Update QMK CLI to be inline with upstreamDrashna Jael're
2020-08-08Parse version better in `qmk doctor` GCC version checks (#9324)Ryan
2020-08-08CLI: Add ATmega328 and ATtiny85 to supported CPUs (#9371)Erovia
* CLI: Add ATmega328 to supported CPUs Support for ATmega328 was added in #9043. * Update lib/python/qmk/constants.py
2020-08-08Fix running qmk info without any arguments (#9218)Zach White
2020-08-08Fix the path for generated keymaps (#9213)Zach White
2020-08-08Fix compiling json files (#9210)Zach White
2020-08-08[CLI] Add a subcommand for getting information about a keyboard (#8666)Zach White
You can now use `qmk info` to get information about keyboards and keymaps. Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-08-08CLI: fix `json2c` subcommand and add/fix tests (#9206)Erovia
Co-authored-by: Zach White <skullydazed@users.noreply.github.com>
2020-06-12CLI: Rework submodule checking (#9162)Erovia
2020-06-12Fix submodule check (#9155)Erovia
2020-06-12Adding unit tests for list-keymaps command (#7711)codecoffeecode
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> Co-Authored-By: Erovia <Erovia@users.noreply.github.com>
2020-06-12CLI: Tune doctor's udev rule checking to match #8750Erovia
2020-06-12kle2json: fix invocation errorKeenan Brock
resolves an issue while finding the file path TypeError: unsupported operand type(s) for +: 'PosixPath' and 'str'
2020-06-12Move everything to Python 3.6 (#8835)skullydazed
2020-06-12CLI: Fix doctor error when can't run `bin/qmk --version`. (#8796)Pete Johanson
2020-06-12CLI: Use `shutil.which` to detect gmake, instead of OS check.Pete Johanson
2020-06-12CLI: Invoke gmake on FreeBSD when using `qmk compile`.Pete Johanson
* Current makefiles aren't portable, so invoke gmake on FreeBSD.
2020-06-12Don't hide for devs...Erovia
2020-06-12Rebase on master, hide some other subcommandsErovia
The list of hidden subcommands were approved by @skullydazed ;) Currently hidden if 'user.developer' is not True: - cformat - docs - kle2json - pyformat - pytest
2020-06-12CLI: Add development mode supportErovia
Hide development specific options and don't require dev modules unless `user.developer` is set to `True`.
2020-06-12Correctly handle json keymaps with ANY()skullY
2020-06-12Doctor: Add avrdude/dfu-util/dfu-programmer version printing (#8678)Ryan
* Doctor: Add avrdude/dfu-util/dfu-programmer version printing * Extra newline * Iterate through version checking functions
2020-06-12minor tweaksskullY
2020-06-12Fix saving output from avrdude and dfu-programmerRoss Baquir
2020-06-12Use version_arg in ESSENTIAL_BINARIES dictRoss Baquir
2020-06-12Fixes #8541 by getting version from -dumpversion then --version as fallbackRoss Baquir
2020-06-12CLI: More MSYS2 fixes (#8577)Erovia
* CLI: More MSYS2 fixes Now I can fully setup and work with qmk_firmware on an MSYS2 installation without any errors or exceptions. * Apply suggestions from code review Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com> * Some improvements * Remove unnecessary import * Remove slow, unused code Getting the version from GIT was slow on both Windows and Docker. Until we find a better, faster way, this is removed. * remove unused imports * Implement @vomindoraan's suggestions * refine how we pick the shell to use * Apply @fauxpark's suggestions fauxpark investigated the topic of shells in MSYS2 a bit and we come to the conclusion that the safest bet was to just use the user's shell. Anything more just opens up more edge-cases than it solves. Co-Authored-By: Ryan <fauxpark@gmail.com> * Use `platform_id` in doctor This will bring it in line with the new code. Co-authored-by: skullydazed <skullydazed@users.noreply.github.com> Co-authored-by: skullY <skullydazed@gmail.com> Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-12CLI: Hide json-keymap subcommand, as it's been deprecated.Erovia
2020-06-12Add decorators for determining keyboard and keymap based on current ↵skullydazed
directory (#8191) * Use pathlib everywhere we can * Improvements based on @erovia's feedback * rework qmk compile and qmk flash to use pathlib * style * Remove the subcommand_name argument from find_keyboard_keymap() * add experimental decorators * Create decorators for finding keyboard and keymap based on current directory. Decorators were inspired by @Erovia's brilliant work on the proof of concept.
2020-06-12use qmk.path.normpath to locate the output file.skullY
2020-06-12Rename qmk json-keymap to qmk json2c (#8372)skullydazed
2020-06-12Add gcc version detection to qmk doctor (#8338)skullydazed
2020-06-12Use pathlib everywhere we can (#7872)skullydazed
* Use pathlib everywhere we can * Update lib/python/qmk/path.py Co-Authored-By: Erovia <Erovia@users.noreply.github.com> * Update lib/python/qmk/path.py Co-Authored-By: Erovia <Erovia@users.noreply.github.com> * Improvements based on @erovia's feedback * rework qmk compile and qmk flash to use pathlib * style * Remove the subcommand_name argument from find_keyboard_keymap() Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-06-12Fix os detection in OSX python 3.8 (#8187)Mikkel Jeppesen
* Fix os detection in osx python 3.8 * oops
2020-06-12CLI: add support for list_keymapsErovia
List all the available keymaps for a given keyboard Add bs4 to requirements.txt UnicodeDammit is needed from bs4 for reading files. Major update to work better with revisions Find the community keymaps supported by each revision. Get all buildable keymaps for each revision The command now return all keymaps that's buildable for a keyboard/revision. If the base directory of a keyboard does not contain a 'rules.mk' file, nothing is returned. If the base directory contains a 'keymaps' directory, those keycaps will be returned for every revision. Fix help message. Try to figure out revision, drop -rv/--revision argument Fix output format Another major refactoring, add documentation Move all useful functions to the qmk module and use the cli subcommand as a wrapper around it. Add both inline comments and documentation. Add test for list_keymaps Fix regex for parsing rules.mk files I don't know why it couldn't put it together before... ¯\_(ツ)_/¯ Drop bs4 dependency, update docs, minor improvements Return only the unique keymaps Fix merging community and base keymaps Major rework, no regex/globbing, more walking Instead of using regexes and globbing to find the rules.mk and keymap.c files, walk the directory tree to find them. Also, do away with the concept of revision. Fix commandline parsing and flake8 findings, rebase Fixed commandline and config parsing. Thx @xplusplus. Rebased on master and fixed merge conflicts. Code cleanup, use pathlib, use pytest keyboard Clean up checks and logics that are unnecessary due to MILC updates. Use pathlib instead of os.path for readability. Use the 'pytest' keyboard for the tests. Add community layout for 'handwired/onekey/pytest' so we can test community layouts. Pathlib-ify qmk.keymap.list_keymaps() fix list_keymaps for python 3.5