~ruther/qmk_firmware

0fcd13f55225c4545d828e1898c219ef3cae578f — Nick Brassel 1 year, 6 months ago 7ae8264
[CLI] Remove duplicates from search results (#22528)

2 files changed, 13 insertions(+), 2 deletions(-)

M lib/python/qmk/build_targets.py
M lib/python/qmk/search.py
M lib/python/qmk/build_targets.py => lib/python/qmk/build_targets.py +11 -0
@@ 31,6 31,17 @@ class BuildTarget:
    def __repr__(self):
        return f'BuildTarget(keyboard={self.keyboard}, keymap={self.keymap})'

    def __eq__(self, __value: object) -> bool:
        if not isinstance(__value, BuildTarget):
            return False
        return self.__repr__() == __value.__repr__()

    def __ne__(self, __value: object) -> bool:
        return not self.__eq__(__value)

    def __hash__(self) -> int:
        return self.__repr__().__hash__()

    def configure(self, parallel: int = None, clean: bool = None, compiledb: bool = None) -> None:
        if parallel is not None:
            self._parallel = parallel

M lib/python/qmk/search.py => lib/python/qmk/search.py +2 -2
@@ 122,7 122,7 @@ def _filter_keymap_targets(target_list: List[Tuple[str, str]], filters: List[str
    """
    if len(filters) == 0:
        cli.log.info('Preparing target list...')
        targets = list(parallel_map(_construct_build_target_kb_km, target_list))
        targets = list(set(parallel_map(_construct_build_target_kb_km, target_list)))
    else:
        cli.log.info('Parsing data for all matching keyboard/keymap combinations...')
        valid_keymaps = [(e[0], e[1], dotty(e[2])) for e in parallel_map(_load_keymap_info, target_list)]


@@ 183,7 183,7 @@ def _filter_keymap_targets(target_list: List[Tuple[str, str]], filters: List[str

        cli.log.info('Preparing target list...')
        valid_keymaps = [(e[0], e[1], e[2].to_dict() if isinstance(e[2], Dotty) else e[2]) for e in valid_keymaps]  # need to convert dotty_dict back to dict because it doesn't survive parallelisation
        targets = list(parallel_map(_construct_build_target_kb_km_json, list(valid_keymaps)))
        targets = list(set(parallel_map(_construct_build_target_kb_km_json, list(valid_keymaps))))

    return targets


Do not follow this link