Skip to content

Commit f476281

Browse files
fix: add ab_datetime_parse fallback in _parse_start_date for additional format support
Co-Authored-By: Daryna Ishchenko <darina.ishchenko17@gmail.com>
1 parent b02e4ad commit f476281

2 files changed

Lines changed: 10 additions & 1 deletion

File tree

airbyte_cdk/sources/file_based/file_based_stream_reader.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
from airbyte_cdk.sources.file_based.exceptions import FileSizeLimitError
2525
from airbyte_cdk.sources.file_based.file_record_data import FileRecordData
2626
from airbyte_cdk.sources.file_based.remote_file import RemoteFile, UploadableRemoteFile
27+
from airbyte_cdk.utils.datetime_helpers import ab_datetime_parse
2728

2829

2930
class FileReadMode(Enum):
@@ -114,7 +115,10 @@ def _parse_start_date(self, start_date_str: str) -> datetime:
114115
try:
115116
return datetime.strptime(start_date_str, self.DATE_TIME_FORMAT)
116117
except ValueError:
117-
return datetime.strptime(start_date_str, "%Y-%m-%dT%H:%M:%SZ")
118+
try:
119+
return datetime.strptime(start_date_str, "%Y-%m-%dT%H:%M:%SZ")
120+
except ValueError:
121+
return ab_datetime_parse(start_date_str).replace(tzinfo=None)
118122

119123
def filter_files_by_globs_and_start_date(
120124
self, files: List[RemoteFile], globs: List[str]

unit_tests/sources/file_based/test_file_based_stream_reader.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -524,6 +524,11 @@ def test_preserve_sub_directories_scenarios(
524524
datetime(2025, 12, 31, 23, 59, 59),
525525
id="without_microseconds_end_of_day",
526526
),
527+
pytest.param(
528+
"2025-01-01",
529+
datetime(2025, 1, 1, 0, 0, 0),
530+
id="date_only_ab_datetime_parse_fallback",
531+
),
527532
],
528533
)
529534
def test_parse_start_date(start_date_str: str, expected: datetime) -> None:

0 commit comments

Comments
 (0)