From 6ce99e54f68d4ca5df58a442d61e98d9617ec990 Mon Sep 17 00:00:00 2001 From: Daniel Tiesling Date: Tue, 13 Feb 2024 12:42:11 -0800 Subject: [PATCH] fix: Resolves bug in s3 source that did not support tab as a delimiter. --- .../airbyte_cdk/sources/file_based/config/csv_format.py | 2 ++ .../connectors/source-s3/unit_tests/v4/test_format.py | 4 ++++ 2 files changed, 6 insertions(+) create mode 100644 airbyte-integrations/connectors/source-s3/unit_tests/v4/test_format.py diff --git a/airbyte-cdk/python/airbyte_cdk/sources/file_based/config/csv_format.py b/airbyte-cdk/python/airbyte_cdk/sources/file_based/config/csv_format.py index fab52aeefd28..67caa653ad71 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/file_based/config/csv_format.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/file_based/config/csv_format.py @@ -150,6 +150,8 @@ class Config(OneOfOptionConfig): @validator("delimiter") def validate_delimiter(cls, v: str) -> str: + if v == r'\t': + return v if len(v) != 1: raise ValueError("delimiter should only be one character") if v in {"\r", "\n"}: diff --git a/airbyte-integrations/connectors/source-s3/unit_tests/v4/test_format.py b/airbyte-integrations/connectors/source-s3/unit_tests/v4/test_format.py new file mode 100644 index 000000000000..c9635ba7fdf7 --- /dev/null +++ b/airbyte-integrations/connectors/source-s3/unit_tests/v4/test_format.py @@ -0,0 +1,4 @@ +from airbyte_cdk.sources.file_based.config.csv_format import CsvFormat + +def test_csv_format_tab_delimited(): + assert CsvFormat(delimiter=r"\t").delimiter == '\\t'