@@ -404,6 +404,11 @@ def ab_datetime_parse(
404404 instant = Instant .from_timestamp (timestamp )
405405 return AirbyteDateTime .from_datetime (instant .py_datetime ())
406406
407+ if not isinstance (dt_str , str ):
408+ raise ValueError (
409+ f"Could not parse datetime string: expected string or integer, got { type (dt_str )} "
410+ )
411+
407412 if formats :
408413 ex_list : list [Exception ] = []
409414 for format in formats :
@@ -417,14 +422,9 @@ def ab_datetime_parse(
417422
418423 if disallow_other_formats :
419424 raise ValueError (
420- f"Could not parse datetime string. { str (ex_list )} "
425+ f"Could not parse datetime string with provided formats [ { formats } ]: { str (ex_list )} "
421426 )
422427
423- if not isinstance (dt_str , str ):
424- raise ValueError (
425- f"Could not parse datetime string: expected string or integer, got { type (dt_str )} "
426- )
427-
428428 # Else, value is a string
429429
430430 # Try parsing standard ISO/RFC formats with whenever
@@ -436,9 +436,7 @@ def ab_datetime_parse(
436436
437437 # Handle int-like strings
438438 if (
439- isinstance (dt_str , str ) and (
440- dt_str .isdigit () or (dt_str .startswith ("-" ) and dt_str [1 :].isdigit ())
441- )
439+ dt_str .isdigit () or (dt_str .startswith ("-" ) and dt_str [1 :].isdigit ())
442440 ):
443441 try :
444442 return ab_datetime_format (int (dt_str ))
@@ -453,7 +451,7 @@ def ab_datetime_parse(
453451
454452 return AirbyteDateTime .from_datetime (parsed )
455453 except (ValueError , TypeError ):
456- raise ValueError (f"Could not parse datetime string: { dt_str } " )
454+ raise ValueError (f"Could not parse datetime string: { dt_str } , ( { type ( dt_str ). __name__ } ) " )
457455
458456
459457def ab_datetime_try_parse (dt_str : str ) -> AirbyteDateTime | None :
0 commit comments