summaryrefslogtreecommitdiff
path: root/lib/python/qmk
AgeCommit message (Collapse)Author
2020-02-17Fix os detection in OSX python 3.8 (#8187)Mikkel Jeppesen
* Fix os detection in osx python 3.8 * oops
2020-02-15fix list_keymaps for python 3.5skullY
2020-02-15Pathlib-ify qmk.keymap.list_keymaps()Erovia
2020-02-15Code cleanup, use pathlib, use pytest keyboardErovia
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.
2020-02-15Fix commandline parsing and flake8 findings, rebaseErovia
Fixed commandline and config parsing. Thx @xplusplus. Rebased on master and fixed merge conflicts.
2020-02-15Major rework, no regex/globbing, more walkingErovia
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.
2020-02-15Fix merging community and base keymapsErovia
2020-02-15Return only the unique keymapsErovia
2020-02-15Drop bs4 dependency, update docs, minor improvementsErovia
2020-02-15Fix regex for parsing rules.mk filesErovia
I don't know why it couldn't put it together before... ¯\_(ツ)_/¯
2020-02-15Add test for list_keymapsErovia
2020-02-15Another major refactoring, add documentationErovia
Move all useful functions to the qmk module and use the cli subcommand as a wrapper around it. Add both inline comments and documentation.
2020-02-15Fix output formatErovia
2020-02-15Try to figure out revision, drop -rv/--revision argumentErovia
2020-02-15Fix help message.Erovia
2020-02-15Get all buildable keymaps for each revisionErovia
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.
2020-02-15Major update to work better with revisionsErovia
Find the community keymaps supported by each revision.
2020-02-15CLI: add support for list_keymapsErovia
List all the available keymaps for a given keyboard
2020-02-08Update the flash cli command to use the user config (#8125)Erovia
2020-02-08CI: Add workflow for CLI testing (#7357)Joel Challis
Create GitHub Actions cli test workflow and remove travis runs of 'qmk pytest'
2020-02-07Add QMK Compile Context Sensitivity (#6884)Cody Bender
* Add context sensitive compile, without config check * Initial full working state. Plan to refactor * Refactor loop for simplicity, add comments * Update docs/cli.md with qmk compile examples * Simplify path for keyboard derivation * Update path to use path.join instead of concat * Refactor keyboard path, the skully way * Add in keymap folder support * Add /layouts compile support * Update docs/cli.md with empty compile in layouts * Add comments to compile.py * Update docs for clarity, and fix compile error typo * Fix config option compile * Fix layout compile and failure mode * Add rules.mk check * Fix variable names for global config * Add in_layout priority * Remove default fallback in favor of throw, update docs * Add keymap folder context * Fix formatting * Add os import * Convert to create_make_command * Fix Travis lint errors * Remove blank line with whitespace * Add blank lines for readability * Remove unnecessary config logic * Update Docs to add flash Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com> * Shift config precedence to MILC Co-authored-by: skullydazed <skullydazed@users.noreply.github.com>
2020-02-03Improve the functionality of qmk.questions (#8020)skullydazed
* wip * tested and working * remove unused import * Update lib/python/qmk/questions.py Co-Authored-By: Erovia <Erovia@users.noreply.github.com> * fix flake8 errors Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-02-02Fix cformat processing files within ignore folders (#8063)Joel Challis
2020-01-28Qmk doctor os check to support newer msys2/w10 installations (#8031)Mikkel Jeppesen
* Fixed OS detection on newer MSYS installations * made OS sting lower case
2020-01-24Beef up how `qmk doctor` works. (#7375)skullydazed
* Beef up how `qmk doctor` works. * improve the `git submodule status` parsing. h/t @erovia * Fix whitespace and imports * yapf * Add documentation for the new doctor functionality * Replace type_unchanged() with str() * remove unused modules * Update lib/python/qmk/cli/doctor.py Co-Authored-By: Erovia <Erovia@users.noreply.github.com> Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-01-21Align cformat rules with current CI implementation (#7936)Joel Challis
* Align cformat rules with current CI implementation * Optimise file walking
2020-01-11yapf and styleskullY
2020-01-11Make the udev rules easier to read and manageErovia
2020-01-11Fix Pro Micro's and its bootloader's nameErovia
2020-01-11CLI: Rework ModemManager check and add udev checkErovia
2019-12-08Also fix flashZach White
2019-12-08Fix compiling json filesZach White
2019-12-01Add pep8-naming to our python lintingskullY
2019-11-29Use os.chdir for `qmk docs` instead of a custom HTTP request handler (#7493)fauxpark
2019-11-20Add flake8 to our test suite and fix all errors (#7379)skullydazed
* Add flake8 to our test suite and fix all errors * Add some documentation
2019-11-16format code according to conventions [skip ci]QMK Bot
2019-11-15Add CLI command for flashing a keyboardjorgemanzo
A new CLI subcommand was added, flash, which behaves very similar to the already present compile CLI comamnd, but with the added ability to target a bootloader. The command is used like so: qmk flash [-h] [-b] [-kb KEYBOARD] [-km KEYMAP] [-bl BOOTLOADER] [filename]. A -kb <keyboard> and -km <keymap> is expected, or a configurator export JSON filename. A bootloader can be specified using -bl <target>, and if left unspecified, the target is assumed to be :flash. -bl can be used to list the available bootloaders. If -km <keymap> is provided, but no -kb <keyboard>, then a message is printed suggesting the user to run qmk list_keyboards.
2019-11-13format code according to conventions [skip ci]QMK Bot
2019-11-12Add cli convert subcommand, from raw KLE to JSON (#6898)Cody Bender
* Add initial pass at KLE convert * Add cli log on convert * Move kle2xy, add absolute filepath arg support * Add overwrite flag, and context sensitive conversion * Update docs/cli.md * Fix converter.py typo * Add convert unit test * Rename to kle2qmk * Rename subcommand * Rename subcommand to kle2json * Change tests to cover rename * Rename in __init__.py * Update CLI docs with new subcommand name * Fix from suggestions in PR #6898 * Help with cases of case sensitivity * Update cli.md * Use angle brackets to indicate required option * Make the output text more accurate
2019-11-12Make generating keymap.c from JSON more reliableskullY
2019-11-12Small CLI cleanupsskullY
* yapf changes * Fix the cformat test * Make the normpath test work when run from / * `qmk config`: Mark `--read-only` as arg_only
2019-11-12When checking program returncodes treat both 0 and 1 as installedskullY
2019-11-12Add support for newer versions of clang-format, if installedskullY
2019-10-29Fix the CLI docs (#6979)St. John Johnson
- Sort the commands alphabetically - Add missing `json_keymap` - Correct underscore to dash
2019-10-23MILC: Use dashes instead of underscores for subcommandsErovia
The subcommand functions' name follows the Python convention of using snake case, but looks odd on the command line. Fix it by converting underscores to dashes, eg.: list_keyboards -> list-keyboards.
2019-10-20Fix detection of ModemManager (#7076)Harry Wada
2019-10-11[CLI] `qmk docs` graceful shutdown on Ctrl+C (#6989)fauxpark
2019-10-08[Docs] CLI command to serve docs locally (#6956)fauxpark
* CLI command to serve docs locally * Document it * Default port * Use `with` and subclass `SimpleHTTPRequestHandler` to set working dir * Apply suggestions from code review Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com> * Update docs/cli.md
2019-10-07[CLI] Add `qmk list_keyboards` (#6927)Dan McClain
`list_keyboards` replicates the `make list-keyboards` by globbing for all paths that include `rules.mk` and then removing the paths that include `keymaps`. This basis of this cli command could be reused in the future as a util, but is not done so here since this would be the only place that would use it currently Resolves #6911
2019-10-05Use `keymap` instead of `username` variable for `qmk new_keymap` (#6885)St. John Johnson
Username is not defined and this causes `qmk new_keymap` to error. This appears to have originated from a partial update in https://github.com/qmk/qmk_firmware/pull/6708/files#diff-d5208bcbc79aa428556a743b6ff41086. This change completes the migration from `username` to `keymap`