Skip to content

helper ¤

plot_merge ¤

plot_merge(
    source: dict,
    *updates: list[dict],
    recursive: int = 0,
    recursive_max: int = 1
) -> dict

Merge multiple update plot config to source config

Parameters:

  • source (dict) –

    description

  • *updates (list[dict], default: () ) –

    description

Returns:

  • dict ( dict ) –

    Merged config

Source code in lettrade/plot/helper.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
def plot_merge(
    source: dict,
    *updates: list[dict],
    recursive: int = 0,
    recursive_max: int = 1,
) -> dict:
    """Merge multiple update plot config to source config

    Args:
        source (dict): _description_
        *updates (list[dict]): _description_

    Returns:
        dict: Merged config
    """
    for update in updates:
        for key, value in update.items():
            if key not in source:
                source[key] = value
                continue

            if isinstance(source[key], list):
                source[key].extend(value)
                continue
            if isinstance(source[key], dict):
                if recursive >= recursive_max:
                    source[key] = value
                    continue

                sub = source[key]
                plot_merge(
                    sub,
                    value,
                    recursive=recursive + 1,
                    recursive_max=recursive_max,
                )
                continue
    return source