summaryrefslogtreecommitdiffstats
path: root/lib/python/qmk/path.py
Commit message (Collapse)AuthorAgeFilesLines
* CLI: Improve keymap folder resolution (#20981)Ryan2023-05-191-3/+22
|
* qmk.path.FileType: fix argument handling (#16693)Ryan2022-03-191-2/+4
| | | | | | | * qmk.path.FileType: pass in mode as first argument * Better solution * Grammar...
* CLI: Validate JSON keymap input (#16261)Erovia2022-02-281-1/+5
| | | | | | | | | | | | | | | | | | | | | * Fix schema validator It should use the passed schema. * Add required attributes to keymap schema * Rework subcommands to validate the JSON keymaps The 'compile', 'flash' and 'json2c' subcommands were reworked to add JSON keymap validation so error is reported for non-JSON and non-compliant-JSON inputs. * Fix required fields in keymap schema * Add tests * Fix compiling keymaps directly from keymap directory * Schema should not require version for now.
* Initial pass at data driven new-keyboard subcommand (#12795)Joel Challis2022-02-091-1/+1
| | | | | | | | | * Initial pass at a data driven keyboard subcommand * format * lint * Handle bootloader now its mandatory
* Add support for qmk_configurator style aliases (#11954)Zach White2021-03-241-0/+1
| | | | | | | | | * Add support for qmk_configurator style aliases * add the keyboard aliases to the api data * add support for a keyboard metadata file * make flake8 happy
* Allow flash/compile to accept relative json paths (#11767)Joel Challis2021-02-071-0/+10
| | | | | | | | | | | * Allow flash/compile to accept relative paths * Review suggestions * Review comments * Put back exists check otherwise stdin fails * fix lint
* New command: qmk lint (#10761)Zach White2020-11-071-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* Fix running qmk info without any arguments (#9218)Zach White2020-05-271-3/+4
|
* [CLI] Add a subcommand for getting information about a keyboard (#8666)Zach White2020-05-261-25/+1
| | | | | You can now use `qmk info` to get information about keyboards and keymaps. Co-authored-by: Erovia <Erovia@users.noreply.github.com>
* Add decorators for determining keyboard and keymap based on current ↵skullydazed2020-03-131-1/+1
| | | | | | | | | | | | | | | | | | | 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.
* New functionality for cformat (#7893)Akaash Suresh2020-02-221-0/+14
| | | | | | | | | | | | | Fixing complexity remove lambda PR review fixes #1 Removing unneccesary string substitution Handle -a and specified files Complexity rewrite, use pathlib
* Use pathlib everywhere we can (#7872)skullydazed2020-02-171-11/+46
| | | | | | | | | | | | | | | | | | | | | | * 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>
* Code cleanup, use pathlib, use pytest keyboardErovia2020-02-151-13/+0
| | | | | | | | 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.
* Fix commandline parsing and flake8 findings, rebaseErovia2020-02-151-0/+2
| | | | | Fixed commandline and config parsing. Thx @xplusplus. Rebased on master and fixed merge conflicts.
* Drop bs4 dependency, update docs, minor improvementsErovia2020-02-151-15/+8
|
* Another major refactoring, add documentationErovia2020-02-151-0/+18
| | | | | | 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 flake8 to our test suite and fix all errors (#7379)skullydazed2019-11-201-1/+0
| | | | | | * Add flake8 to our test suite and fix all errors * Add some documentation
* Configuration system for CLI (#6708)skullydazed2019-09-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Rework how bin/qmk handles subcommands * qmk config wip * Code to show all configs * Fully working `qmk config` command * Mark some CLI arguments so they don't pollute the config file * Fleshed out config support, nicer subcommand support * sync with installable cli * pyformat * Add a test for subcommand_modules * Documentation for the `qmk config` command * split config_token on space so qmk config is more predictable * Rework how subcommands are imported * Document `arg_only` * Document deleting from CLI * Document how multiple operations work * Add cli config to the doc index * Add tests for the cli commands * Make running the tests more reliable * Be more selective about building all default keymaps * Update new-keymap to fit the new subcommand style * Add documentation about writing CLI scripts * Document new-keyboard * Update docs/cli_configuration.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update docs/cli_development.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update docs/cli_development.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update docs/cli_development.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Address yan's comments. * Apply suggestions from code review suggestions from @noahfrederick Co-Authored-By: Noah Frederick <code@noahfrederick.com> * Apply suggestions from code review Co-Authored-By: Noah Frederick <code@noahfrederick.com> * Remove pip3 from the test runner
* Created new_keymap.py, python version of new_keymap.sh (#6066)Kenny Hoang2019-09-101-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Created python version of new_keymap.sh: new_keymap.py * Updated usage message * Updated new_keymap.py to use python3.5+ syntax & be more similar to new_keyboard.sh * Updated complete message * Updated usage in argparser and removed incorrect usage_message * Reverted the fstrings back to strings that use .format() & updated docstring convention * Added helper to recursively cd .. until at qmk_firmware root directory * Revert "Added helper to recursively cd .. until at qmk_firmware root directory" This reverts commit 61a0ff3b25f91901287bec8d58eb51a1f126e2ad. * Updated new_keymap.py to use printf-style format strings * First draft lib/python/qmk/cli/new/keymap.py with milc * Removed shebang & syspath appending lines * Added optional args & resolved some cr comemnts * Added a docstring and updated strings
* QMK CLI and JSON keymap support (#6176)skullydazed2019-07-151-0/+32
* Script to generate keymap.c from JSON file. * Support for keymap.json * Add a warning about the keymap.c getting overwritten. * Fix keymap generating * Install the python deps * Flesh out more of the python environment * Remove defunct json2keymap * Style everything with yapf * Polish up python support * Hide json keymap.c into the .build dir * Polish up qmk-compile-json * Make milc work with positional arguments * Fix a couple small things * Fix some errors and make the CLI more understandable * Make the qmk wrapper more robust * Add basic QMK Doctor * Clean up docstrings and flesh them out as needed * remove unused compile_firmware() function