summaryrefslogtreecommitdiff
path: root/lib/python/qmk/search.py
AgeCommit message (Collapse)Author
2023-11-22[CLI] Remove duplicates from search results (#22528)Nick Brassel
2023-11-22CLI parallel search updates (#22525)Nick Brassel
2023-11-19`qmk find`: Fix failure with multiple filters (#22497)Sergey Vlasov
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.
2023-11-15CLI refactoring for common build target APIs (#22221)Nick Brassel
2023-10-17Allow for disabling of parallel processing of qmk find and `qmk ↵Nick Brassel
mass-compile`. (#22160) Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-09-29Allow for `qmk mass-compile all:<keymap>` (#22116)Nick Brassel
Co-authored-by: Joel Challis <git@zvecr.com>
2023-05-30`qmk find`: Fix handling of functions in filters (#21090)Sergey Vlasov
Functions in filters did not work properly except when used in the last (or only) filter. The problem was caused by the peculiarity of the `lambda` behavior in Python — any variables from the outer scope are captured only by reference, therefore any subsequent reassignment of those variables is propagated to all lambdas created earlier in the same scope. Together with the laziness of `filter()` (it returns an iterator which performs filtering on demand) this resulted in all function filters using the values of the `key` and `value` variables which correspond to the last filter in the sequence, therefore the result of filtering was wrong if some filter with a function was not the last one in the sequence. Apparently the shortest way to make a Python lambda capture some variables by value is to add arguments with default values for such variables (default values are evaluated when the lambda is created, and any subsequent reassignments in the outer scope no longer changes them). This makes filters with functions work properly even when such filters are not at the last position in the sequence.
2023-05-27Fix up `qmk find` when not specifying filters. (#21059)Nick Brassel
2023-05-20`qmk find`: usability improvements (#20440)Ryan
2023-03-16Add `qmk find` command, reuse logic for `qmk mass-compile`. (#20139)Nick Brassel