@@ -274,12 +274,18 @@ class Iteration(BaseModel):
274274 def parse_dates (cls , v : str | date ) -> date :
275275 if isinstance (v , date ):
276276 return v
277- if not re .fullmatch (r"\d{8}" , str (v )):
278- raise ValueError (f"Invalid format: { v } . Must be YYYYMMDD with 8 digits." )
277+
278+ v_str = str (v )
279+
280+ if not re .fullmatch (r"\d{8}" , v_str ):
281+ msg = f"Invalid format: { v_str } . Must be YYYYMMDD with 8 digits."
282+ raise ValueError (msg )
283+
279284 try :
280- return datetime .strptime (str (v ), "%Y%m%d" ).date () # noqa: DTZ007
281- except ValueError :
282- raise ValueError (f"Invalid date value: { v } . Must be a valid calendar date in YYYYMMDD format." )
285+ return datetime .strptime (v_str , "%Y%m%d" ).date () # noqa: DTZ007
286+ except ValueError as err :
287+ msg = f"Invalid date value: { v_str } . Must be a valid calendar date in YYYYMMDD format."
288+ raise ValueError (msg ) from err
283289
284290 @field_serializer ("iteration_date" , when_used = "always" )
285291 @staticmethod
@@ -322,12 +328,18 @@ class CampaignConfig(BaseModel):
322328 def parse_dates (cls , v : str | date ) -> date :
323329 if isinstance (v , date ):
324330 return v
325- if not re .fullmatch (r"\d{8}" , str (v )):
326- raise ValueError (f"Invalid format: { v } . Must be YYYYMMDD with 8 digits." )
331+
332+ v_str = str (v )
333+
334+ if not re .fullmatch (r"\d{8}" , v_str ):
335+ msg = f"Invalid format: { v_str } . Must be YYYYMMDD with 8 digits."
336+ raise ValueError (msg )
337+
327338 try :
328- return datetime .strptime (str (v ), "%Y%m%d" ).date () # noqa: DTZ007
329- except ValueError :
330- raise ValueError (f"Invalid date value: { v } . Must be a valid calendar date in YYYYMMDD format." )
339+ return datetime .strptime (v_str , "%Y%m%d" ).date () # noqa: DTZ007
340+ except ValueError as err :
341+ msg = f"Invalid date value: { v_str } . Must be a valid calendar date in YYYYMMDD format."
342+ raise ValueError (msg ) from err
331343
332344 @field_serializer ("start_date" , "end_date" , when_used = "always" )
333345 @staticmethod
0 commit comments