@@ -85,8 +85,10 @@ class Target:
8585 party_id : str = None
8686
8787 def __repr__ (self ):
88- targets = {key : value for key , value in asdict (self ).items () if value is not None }
89- targets_str = ", " .join (f"{ key } ={ value } " for key , value in targets .items ())
88+ targets = {key : value for key , value in asdict (
89+ self ).items () if value is not None }
90+ targets_str = ", " .join (
91+ f"{ key } ={ value } " for key , value in targets .items ())
9092 return f"Target('{ targets_str } ')"
9193
9294
@@ -182,15 +184,18 @@ def __post_init__(self):
182184 if self .targets is None and self .targets_by_type is None :
183185 return
184186 elif self .targets_by_type is None :
185- list_of_targets = [asdict (target ) if is_dataclass (target ) else target for target in self .targets ]
187+ list_of_targets = [asdict (target ) if is_dataclass (
188+ target ) else target for target in self .targets ]
186189 targets_by_type = utils .group_targets_by_type (list_of_targets )
187190 if len (targets_by_type ) > 1 :
188191 raise ValueError ("In OpenADR, the EventSignal target may only be of type endDeviceAsset. "
189192 f"You provided types: '{ ', ' .join (targets_by_type )} '" )
190193 elif self .targets is None :
191- self .targets = [Target (** target ) for target in utils .ungroup_targets_by_type (self .targets_by_type )]
194+ self .targets = [Target (
195+ ** target ) for target in utils .ungroup_targets_by_type (self .targets_by_type )]
192196 elif self .targets is not None and self .targets_by_type is not None :
193- list_of_targets = [asdict (target ) if is_dataclass (target ) else target for target in self .targets ]
197+ list_of_targets = [asdict (target ) if is_dataclass (
198+ target ) else target for target in self .targets ]
194199 if utils .group_targets_by_type (list_of_targets ) != self .targets_by_type :
195200 raise ValueError ("You assigned both 'targets' and 'targets_by_type' in your event, "
196201 "but the two were not consistent with each other. "
@@ -218,21 +223,26 @@ def __post_init__(self):
218223 self .active_period = ActivePeriod (dtstart = dtstart ,
219224 duration = duration )
220225 if self .targets is None and self .targets_by_type is None :
221- raise ValueError ("You must supply either 'targets' or 'targets_by_type'." )
226+ raise ValueError (
227+ "You must supply either 'targets' or 'targets_by_type'." )
222228 elif self .targets_by_type is None :
223- list_of_targets = [asdict (target ) if is_dataclass (target ) else target for target in self .targets ]
229+ list_of_targets = [asdict (target ) if is_dataclass (
230+ target ) else target for target in self .targets ]
224231 self .targets_by_type = utils .group_targets_by_type (list_of_targets )
225232 elif self .targets is None :
226- self .targets = [Target (** target ) for target in utils .ungroup_targets_by_type (self .targets_by_type )]
233+ self .targets = [Target (
234+ ** target ) for target in utils .ungroup_targets_by_type (self .targets_by_type )]
227235 elif self .targets is not None and self .targets_by_type is not None :
228- list_of_targets = [asdict (target ) if is_dataclass (target ) else target for target in self .targets ]
236+ list_of_targets = [asdict (target ) if is_dataclass (
237+ target ) else target for target in self .targets ]
229238 if utils .group_targets_by_type (list_of_targets ) != self .targets_by_type :
230239 raise ValueError ("You assigned both 'targets' and 'targets_by_type' in your event, "
231240 "but the two were not consistent with each other. "
232241 f"You supplied 'targets' = { self .targets } and "
233242 f"'targets_by_type' = { self .targets_by_type } " )
234243 # Set the event status
235- self .event_descriptor .event_status = utils .determine_event_status (self .active_period )
244+ self .event_descriptor .event_status = utils .determine_event_status (
245+ self .active_period )
236246
237247
238248@dataclass
@@ -272,7 +282,8 @@ class ReportInterval:
272282@dataclass
273283class Report :
274284 report_specifier_id : str # This is what the VEN calls this report
275- report_name : str # Usually one of the default ones (enums.REPORT_NAME)
285+ # Usually one of the default ones (enums.REPORT_NAME)
286+ report_name : str
276287 report_request_id : str = None # Usually empty
277288 report_descriptions : List [ReportDescription ] = None
278289 created_date_time : datetime = None
@@ -324,9 +335,9 @@ class Vavailability:
324335
325336@dataclass
326337class Opt :
327- opt_id : str = None ,
328- opt_type : enums . OPT
329- opt_reason : enums . OPT_REASON
338+ opt_type : str
339+ opt_reason : str
340+ opt_id : str = None
330341 created_date_time : datetime = None
331342
332343 event_id : str = None
@@ -336,10 +347,16 @@ class Opt:
336347 targets_by_type : Dict = None
337348
338349 def __post_init__ (self ):
350+ if self .opt_type not in enums .OPT .values :
351+ raise ValueError (f"""The opt_type must be one of '{ "', '" .join (enums .OPT .values )} ', """
352+ f"""you specified: '{ self .opt_type } '.""" )
353+ if self .opt_reason not in enums .OPT_REASON .values :
354+ raise ValueError (f"""The opt_reason must be one of '{ "', '" .join (enums .OPT_REASON .values )} ', """
355+ f"""you specified: '{ self .opt_type } '.""" )
339356 if self .event_id is None and self .vavailability is None :
340357 raise ValueError (
341358 "You must supply either 'event_id' or 'vavailability'." )
342- elif self .event_id is not None and self .vavailability is not None :
359+ if self .event_id is not None and self .vavailability is not None :
343360 raise ValueError (
344361 "You supplied both 'event_id' and 'vavailability."
345362 "Please supply either, but not both." )
@@ -351,12 +368,15 @@ def __post_init__(self):
351368 raise ValueError (
352369 "You must supply either 'targets' or 'targets_by_type'." )
353370 elif self .targets_by_type is None :
354- list_of_targets = [asdict (target ) if is_dataclass (target ) else target for target in self .targets ]
371+ list_of_targets = [asdict (target ) if is_dataclass (
372+ target ) else target for target in self .targets ]
355373 self .targets_by_type = utils .group_targets_by_type (list_of_targets )
356374 elif self .targets is None :
357- self .targets = [Target (** target ) for target in utils .ungroup_targets_by_type (self .targets_by_type )]
375+ self .targets = [Target (
376+ ** target ) for target in utils .ungroup_targets_by_type (self .targets_by_type )]
358377 elif self .targets is not None and self .targets_by_type is not None :
359- list_of_targets = [asdict (target ) if is_dataclass (target ) else target for target in self .targets ]
378+ list_of_targets = [asdict (target ) if is_dataclass (
379+ target ) else target for target in self .targets ]
360380 if utils .group_targets_by_type (list_of_targets ) != self .targets_by_type :
361381 raise ValueError ("You assigned both 'targets' and 'targets_by_type' in your event, "
362382 "but the two were not consistent with each other. "
0 commit comments