def _collapse_layer()

in chz/blueprint/_argv.py [0:0]


def _collapse_layer(ordered_args: Sequence[tuple[str, Any]], layer: Layer) -> list[tuple[str, Any]]:
    """Collapses `layer` into `ordered_args`, overriding any old keys as necessary."""

    layer_args: list[tuple[str, Any]] = []
    keys_to_remove: set[str] = set()

    previous_keys = {prev_key for prev_key, _ in ordered_args}

    for key, value in itertools.chain(layer.qualified.items(), layer.wildcard.items()):
        # Remove any previous args that would be overwritten by this one.
        wildcard = wildcard_key_to_regex(key) if "..." in key else None

        if wildcard:
            for prev_key, _ in ordered_args:
                # TODO(shantanu): usually this regex is only matched against concrete keys
                # However, here we're matching against other wildcards
                if wildcard.fullmatch(prev_key):
                    keys_to_remove.add(prev_key)
        else:
            if key in previous_keys:
                keys_to_remove.add(key)
        layer_args.append((key, value))

    # Commit the new layer.
    return [arg for arg in ordered_args if arg[0] not in keys_to_remove] + layer_args