def test_to_from_json(self): """Test the json methods of the AnalysisPeriod.""" ap = AnalysisPeriod(st_month=2) ap_json = ap.to_json() rebuilt_ap = AnalysisPeriod.from_json(ap_json) assert rebuilt_ap.st_month == 2 assert rebuilt_ap.to_json() == ap_json
def from_json(cls, data): """Create a RunManager object from a dictionary Args: data: { epw_file: list of Typology objects district: dragonfly district disct epw_site_par: epw site parameter dict boundary_layer_par: boundary layer parameter dict analysis_period: ladybug analysis period dict sim_timestep: simulation timestep in seconds } """ required_keys = ('epw_file', 'district') nullable_keys = ('epw_site_par', 'boundary_layer_par', 'analysis_period', 'sim_timestep') for key in required_keys: assert key in data.keys(), "{} is a required value".format(key) for key in nullable_keys: if key not in data: data[key] = None return cls(epw_file=data['epw_file'], district=District.from_json(data['district']), epw_site_par=RefEPWSitePar.from_json(data['epw_site_par']), boundary_layer_par=BoundaryLayerPar.from_json( data['boundary_layer_par']), analysis_period=AnalysisPeriod.from_json( data['analysis_period']), sim_timestep=data['sim_timestep'])