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