[CLI] Remove duplicates from search results (#22528)
CLI parallel search updates (#22525)
Fix `qmk find` failure due to circular imports (#22523) There was an import cycle in the Python modules: - `qmk.build_targets` imported `qmk.cli.generate.compilation_database`; - importing `qmk.cli.generate.compilation_database` requires initializing `qmk.cli` first; - the initialization of `qmk.cli` imported the modules for all CLI commands; - `qmk.cli.compile` imported `qmk.build_targets`. This cycle did not matter in most cases, because `qmk.cli` was imported first, and in that case importing `qmk.cli.generate.compilation_database` did not trigger the initialization of `qmk.cli` again. However, there was one corner case when `qmk.bulld_targets` was getting imported first: - The `qmk find` command uses the `multiprocessing` module. - The `multiprocessing` module uses the `spawn` start method on macOS and Windows. - When the `spawn` method is used, the child processes initialize without any Python modules loaded, and the required modules are loaded on demand by the `pickle` module when receiving the serialized objects from the main process. The result was that the `qmk find` command did not work properly on macOS (and probably Windows too); it reported exceptions like this: ImportError: cannot import name 'KeyboardKeymapBuildTarget' from partially initialized module 'qmk.build_targets' (most likely due to a circular import) Moving the offending `qmk.cli.generate.compilation_database` import into the method which actually uses it fixes the problem.
Enable linking of encoders to switch within layout macros (#22264)
`qmk find`: Fix failure with multiple filters (#22497) When multiple `-f FILTER` options were specified, `qmk find` did not return anything at all instead of printing the list of entries that matched all of the specified filters. The problem was that the statement in `_filter_keymap_targets()` that filled `targets` had a wrong indent and therefore was executed for every filter instead of only once after applying all filters, and `valid_keymaps` was actually an iterator and therefore could be used only once. Moving the statement outside of the loop fixes the problem.
CLI refactoring for common build target APIs (#22221)
Merge remote-tracking branch 'origin/master' into develop
Add `qmk license-check` developer-level CLI command. (#22075)
Improve argument handling of c2json (#22170) * Improve argument handling of c2json * Add automagic
Generate switch statement helpers for keycode ranges (#20059)
Implement data driven lighting defaults (#21825)
Add dd mapping for hardware based split handedness (#22369)
Remove use of broken split.main (#22363)
Fix 'to_c' for config.h mappings (#22364)
Implement data driven dip switches (#22017) * Add data driven dip switches * Autogen weak matrix_mask
Support additional split sync items for info.json (#22193)
Merge remote-tracking branch 'origin/master' into develop
Allow for disabling of parallel processing of qmk find and `qmk mass-compile`. (#22160) Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Merge remote-tracking branch 'origin/master' into develop
Flag vial keymaps in 'qmk lint' (#22227)