def get_dict_power()

in analysis/GreenSKU-Framework/src/carbon_model.py [0:0]


def get_dict_power(components: Dict[str, Any], derate_curve: Callable=None, 
                   spec: int=100, factor: float=1.0, key_factors: Dict[str, float]={}) -> float:
    """Calculate the total power consumption of a component.

    Args:
        components: A dictionary containing the components' power consumption and number.

    Returns:
        The total power consumption of the server.
    """
    total_power = 0
    for key, component in components.items():
        curr_factor = factor
        if 'number' not in component:
            component['number'] = 1
        if key in key_factors:
            curr_factor *= key_factors[key]
        total_power += get_power_from_dict(component, 
                                           derate_curve, 
                                           spec,
                                           factor=curr_factor)
    return total_power