def dict_to_load(load_dict, raise_exception=True): """Get a Python object of any Load from a dictionary. Args: load_dict: A dictionary of any Honeybee energy load. Note that this should be a non-abridged dictionary to be valid. raise_exception: Boolean to note whether an excpetion should be raised if the object is not identified as a load. Default: True. Returns: A Python object derived from the input load_dict. """ try: # get the type key from the dictionary load_type = load_dict['type'] except KeyError: raise ValueError('Load dictionary lacks required "type" key.') if load_type == 'People': return People.from_dict(load_dict) elif load_type == 'Lighting': return Lighting.from_dict(load_dict) elif load_type == 'ElectricEquipment': return ElectricEquipment.from_dict(load_dict) elif load_type == 'GasEquipment': return GasEquipment.from_dict(load_dict) elif load_type == 'Infiltration': return Infiltration.from_dict(load_dict) elif load_type == 'Ventilation': return Ventilation.from_dict(load_dict) elif load_type == 'Setpoint': return Setpoint.from_dict(load_dict) elif raise_exception: raise ValueError( '{} is not a recognized energy Load type'.format(load_type))
def test_ventilation_dict_methods(): """Test the to/from dict methods.""" simple_office = ScheduleDay( 'Simple Weekday', [0, 1, 0], [Time(0, 0), Time(9, 0), Time(17, 0)]) schedule = ScheduleRuleset('Office Ventilation Schedule', simple_office, None, schedule_types.fractional) ventilation = Ventilation('Office Ventilation', 0.0025, 0.0006) vent_dict = ventilation.to_dict() new_ventilation = Ventilation.from_dict(vent_dict) assert new_ventilation == ventilation assert vent_dict == new_ventilation.to_dict() ventilation.schedule = schedule vent_dict = ventilation.to_dict() new_ventilation = Ventilation.from_dict(vent_dict) assert new_ventilation == ventilation assert vent_dict == new_ventilation.to_dict()