Skip to content

guidellm.utils.dict

Utility functions for working with dictionaries.

deep_filter(d, predicate)

Recursively filters a dictionary based on a predicate function.

Modifies the input dictionary in-place. Does not handle circular references. Does not copy values. Does not filter lists.

Source code in src/guidellm/utils/dict.py
def deep_filter(d: dict, predicate: Callable[[Hashable, Any], bool]) -> None:
    """
    Recursively filters a dictionary based on a predicate function.

    Modifies the input dictionary in-place. Does not handle circular references.
    Does not copy values. Does not filter lists.
    """
    for key, value in list(d.items()):
        if isinstance(value, dict):
            deep_filter(value, predicate)
        elif not predicate(key, value):
            d.pop(key)

deep_update(dict1, dict2)

Update dict1 with values from dict2 recursively.

Modifies dict1 in-place. Does not handle circular references. Does not copy values. Does not merge lists.

Source code in src/guidellm/utils/dict.py
def deep_update(dict1: dict, dict2: dict) -> None:
    """
    Update dict1 with values from dict2 recursively.

    Modifies dict1 in-place. Does not handle circular references.
    Does not copy values. Does not merge lists.
    """
    for key, val in dict2.items():
        if isinstance(val, dict) and key in dict1 and isinstance(dict1[key], dict):
            deep_update(dict1[key], val)
        else:
            dict1[key] = val