airbyte-cdk 6.54.2.post1.dev15455160554__py3-none-any.whl → 6.54.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -162,6 +162,12 @@ def test(
162
162
  pytest_args.append("--collect-only")
163
163
 
164
164
  pytest_args.append(str(test_file_path))
165
+
166
+ test_results_dir = connector_directory / "build" / "test-results"
167
+ test_results_dir.mkdir(parents=True, exist_ok=True)
168
+ junit_xml_path = test_results_dir / "standard-tests-junit.xml"
169
+ pytest_args.extend(["--junitxml", str(junit_xml_path)])
170
+
165
171
  click.echo(f"Running tests from connector directory: {connector_directory}...")
166
172
  click.echo(f"Test file: {test_file_path}")
167
173
  click.echo(f"Collect only: {collect_only}")
@@ -3630,10 +3630,9 @@ definitions:
3630
3630
  delimiter:
3631
3631
  type: string
3632
3632
  default: ","
3633
- set_values_to_none:
3634
- type: array
3635
- items:
3636
- type: string
3633
+ set_empty_cell_to_none:
3634
+ type: boolean
3635
+ default: false
3637
3636
  AsyncJobStatusMap:
3638
3637
  description: Matches the api job status to Async Job Status.
3639
3638
  type: object
@@ -9,7 +9,7 @@ import json
9
9
  import logging
10
10
  from dataclasses import dataclass
11
11
  from io import BufferedIOBase, TextIOWrapper
12
- from typing import Any, List, Optional
12
+ from typing import Any, Optional
13
13
 
14
14
  import orjson
15
15
  import requests
@@ -103,7 +103,7 @@ class CsvParser(Parser):
103
103
  # TODO: migrate implementation to re-use file-base classes
104
104
  encoding: Optional[str] = "utf-8"
105
105
  delimiter: Optional[str] = ","
106
- set_values_to_none: Optional[List[str]] = None
106
+ set_empty_cell_to_none: Optional[bool] = False
107
107
 
108
108
  def _get_delimiter(self) -> Optional[str]:
109
109
  """
@@ -122,8 +122,8 @@ class CsvParser(Parser):
122
122
  text_data = TextIOWrapper(data, encoding=self.encoding) # type: ignore
123
123
  reader = csv.DictReader(text_data, delimiter=self._get_delimiter() or ",")
124
124
  for row in reader:
125
- if self.set_values_to_none:
126
- row = {k: (None if v in self.set_values_to_none else v) for k, v in row.items()}
125
+ if self.set_empty_cell_to_none:
126
+ row = {k: (None if v == "" else v) for k, v in row.items()}
127
127
  yield row
128
128
 
129
129
 
@@ -1383,7 +1383,7 @@ class CsvDecoder(BaseModel):
1383
1383
  type: Literal["CsvDecoder"]
1384
1384
  encoding: Optional[str] = "utf-8"
1385
1385
  delimiter: Optional[str] = ","
1386
- set_values_to_none: Optional[List[str]] = None
1386
+ set_empty_cell_to_none: Optional[bool] = False
1387
1387
 
1388
1388
 
1389
1389
  class AsyncJobStatusMap(BaseModel):
@@ -2651,7 +2651,7 @@ class ModelToComponentFactory:
2651
2651
  return CsvParser(
2652
2652
  encoding=model.encoding,
2653
2653
  delimiter=model.delimiter,
2654
- set_values_to_none=model.set_values_to_none,
2654
+ set_empty_cell_to_none=model.set_empty_cell_to_none,
2655
2655
  )
2656
2656
  elif isinstance(model, GzipDecoderModel):
2657
2657
  return GzipParser(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: airbyte-cdk
3
- Version: 6.54.2.post1.dev15455160554
3
+ Version: 6.54.3
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  Home-page: https://airbyte.com
6
6
  License: MIT
@@ -1,7 +1,7 @@
1
1
  airbyte_cdk/__init__.py,sha256=52uncJvDQNHvwKxaqzXgnMYTptIl65LDJr2fvlk8-DU,11707
2
2
  airbyte_cdk/cli/__init__.py,sha256=CXsai3MYMLZ_sqi2vPAIVcKDun8VRqlv0cKffBI0iSY,346
3
3
  airbyte_cdk/cli/airbyte_cdk/__init__.py,sha256=8IoEcbdYr7CMAh97Xut5__uHH9vV4LKUtSBNTk3qEWY,2031
4
- airbyte_cdk/cli/airbyte_cdk/_connector.py,sha256=PA1beSvhcvm-6watFCrjNat9GC4RpYolC53z2r1V3dc,5234
4
+ airbyte_cdk/cli/airbyte_cdk/_connector.py,sha256=MHWbekKMzYMqjYMB1spN0bwF1Y8Bdphhhu2JMhptDRU,5489
5
5
  airbyte_cdk/cli/airbyte_cdk/_image.py,sha256=AkBEZrRYXEwvhW7hPOPRWeYEZutzi2PIzjpl7_yaE8I,2890
6
6
  airbyte_cdk/cli/airbyte_cdk/_manifest.py,sha256=aFdeeWgek7oXR3YfZPxk7kBZ64Blmsr0dAXN6BVGiIA,482
7
7
  airbyte_cdk/cli/airbyte_cdk/_secrets.py,sha256=jLtpkhFJHavABN3UuqddeDRGS8v1iEj0e_f6WTeYoQA,17409
@@ -89,11 +89,11 @@ airbyte_cdk/sources/declarative/concurrent_declarative_source.py,sha256=OKor1mDD
89
89
  airbyte_cdk/sources/declarative/datetime/__init__.py,sha256=4Hw-PX1-VgESLF16cDdvuYCzGJtHntThLF4qIiULWeo,61
90
90
  airbyte_cdk/sources/declarative/datetime/datetime_parser.py,sha256=_zGNGq31RNy_0QBLt_EcTvgPyhj7urPdx6oA3M5-r3o,3150
91
91
  airbyte_cdk/sources/declarative/datetime/min_max_datetime.py,sha256=0BHBtDNQZfvwM45-tY5pNlTcKAFSGGNxemoi0Jic-0E,5785
92
- airbyte_cdk/sources/declarative/declarative_component_schema.yaml,sha256=3K4hGCyqpOMhfLqwS6brufHVx-IypmxDMiCxH1ywusg,177473
92
+ airbyte_cdk/sources/declarative/declarative_component_schema.yaml,sha256=sFHlde6dHSjs2q7lRF6Tv2_9tR2bsVzrjxAIQqi0lNg,177464
93
93
  airbyte_cdk/sources/declarative/declarative_source.py,sha256=qmyMnnet92eGc3C22yBtpvD5UZjqdhsAafP_zxI5wp8,1814
94
94
  airbyte_cdk/sources/declarative/declarative_stream.py,sha256=dCRlddBUSaJmBNBz1pSO1r2rTw8AP5d2_vlmIeGs2gg,10767
95
95
  airbyte_cdk/sources/declarative/decoders/__init__.py,sha256=JHb_0d3SE6kNY10mxA5YBEKPeSbsWYjByq1gUQxepoE,953
96
- airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py,sha256=qB4lRUrCXLTE-a3VlpOLaazHiC7RIF_FIVJesuz7ebw,8078
96
+ airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py,sha256=71_84brT5nSQs-h2QnFfcz66ecgVnXsvTo1AHI-wEtc,8055
97
97
  airbyte_cdk/sources/declarative/decoders/decoder.py,sha256=1PeKwuMK8x9dsA2zqUjSVinEWVSEgYcUS6npiW3aC2c,855
98
98
  airbyte_cdk/sources/declarative/decoders/decoder_parser.py,sha256=e0be6kfzvbnhmcou-AuloFTSoLxiV9sG9YaglWo5mto,714
99
99
  airbyte_cdk/sources/declarative/decoders/json_decoder.py,sha256=BdWpXXPhEGf_zknggJmhojLosmxuw51RBVTS0jvdCPc,2080
@@ -133,14 +133,14 @@ airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migrati
133
133
  airbyte_cdk/sources/declarative/migrations/state_migration.py,sha256=KWPjealMLKSMtajXgkdGgKg7EmTLR-CqqD7UIh0-eDU,794
134
134
  airbyte_cdk/sources/declarative/models/__init__.py,sha256=nUFxNCiKeYRVXuZEKA7GD-lTHxsiKcQ8FitZjKhPIvE,100
135
135
  airbyte_cdk/sources/declarative/models/base_model_with_deprecations.py,sha256=Imnj3yef0aqRdLfaUxkIYISUb8YkiPrRH_wBd-x8HjM,5999
136
- airbyte_cdk/sources/declarative/models/declarative_component_schema.py,sha256=ikMY2-Q1d19mzVjtqW7XeMtXNSsG4lvZexXR5XlIhfo,125817
136
+ airbyte_cdk/sources/declarative/models/declarative_component_schema.py,sha256=36uZnvm9la9gEr4FqkjxA_l1-3TiApCWLfPApP9vBcw,125817
137
137
  airbyte_cdk/sources/declarative/parsers/__init__.py,sha256=ZnqYNxHsKCgO38IwB34RQyRMXTs4GTvlRi3ImKnIioo,61
138
138
  airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py,sha256=nlVvHC511NUyDEEIRBkoeDTAvLqKNp-hRy8D19z8tdk,5941
139
139
  airbyte_cdk/sources/declarative/parsers/custom_exceptions.py,sha256=wnRUP0Xeru9Rbu5OexXSDN9QWDo8YU4tT9M2LDVOgGA,802
140
140
  airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py,sha256=2UdpCz3yi7ISZTyqkQXSSy3dMxeyOWqV7OlAS5b9GVg,11568
141
141
  airbyte_cdk/sources/declarative/parsers/manifest_normalizer.py,sha256=laBy7ebjA-PiNwc-50U4FHvMqS_mmHvnabxgFs4CjGw,17069
142
142
  airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py,sha256=pJmg78vqE5VfUrF_KJnWjucQ4k9IWFULeAxHCowrHXE,6806
143
- airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py,sha256=VEEJeMbOYmPNX2S8KfsWWzU_VaXM-X5_hNsosv_L5AM,175305
143
+ airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py,sha256=xjKzgCunkn_IshKZQISDpbYtSdOYpmy3p2FS63-xs3k,175313
144
144
  airbyte_cdk/sources/declarative/partition_routers/__init__.py,sha256=TBC9AkGaUqHm2IKHMPN6punBIcY5tWGULowcLoAVkfw,1109
145
145
  airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py,sha256=VelO7zKqKtzMJ35jyFeg0ypJLQC0plqqIBNXoBW1G2E,3001
146
146
  airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py,sha256=c5cuVFM6NFkuQqG8Z5IwkBuwDrvXZN1CunUOM_L0ezg,6892
@@ -420,9 +420,9 @@ airbyte_cdk/utils/slice_hasher.py,sha256=EDxgROHDbfG-QKQb59m7h_7crN1tRiawdf5uU7G
420
420
  airbyte_cdk/utils/spec_schema_transformations.py,sha256=-5HTuNsnDBAhj-oLeQXwpTGA0HdcjFOf2zTEMUTTg_Y,816
421
421
  airbyte_cdk/utils/stream_status_utils.py,sha256=ZmBoiy5HVbUEHAMrUONxZvxnvfV9CesmQJLDTAIWnWw,1171
422
422
  airbyte_cdk/utils/traced_exception.py,sha256=C8uIBuCL_E4WnBAOPSxBicD06JAldoN9fGsQDp463OY,6292
423
- airbyte_cdk-6.54.2.post1.dev15455160554.dist-info/LICENSE.txt,sha256=Wfe61S4BaGPj404v8lrAbvhjYR68SHlkzeYrg3_bbuM,1051
424
- airbyte_cdk-6.54.2.post1.dev15455160554.dist-info/LICENSE_SHORT,sha256=aqF6D1NcESmpn-cqsxBtszTEnHKnlsp8L4x9wAh3Nxg,55
425
- airbyte_cdk-6.54.2.post1.dev15455160554.dist-info/METADATA,sha256=IIHWicIGJ45BHwwiK0NTiEOTBEukGDHfvqOfG8vW0Jg,6364
426
- airbyte_cdk-6.54.2.post1.dev15455160554.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
427
- airbyte_cdk-6.54.2.post1.dev15455160554.dist-info/entry_points.txt,sha256=AKWbEkHfpzzk9nF9tqBUaw1MbvTM4mGtEzmZQm0ZWvM,139
428
- airbyte_cdk-6.54.2.post1.dev15455160554.dist-info/RECORD,,
423
+ airbyte_cdk-6.54.3.dist-info/LICENSE.txt,sha256=Wfe61S4BaGPj404v8lrAbvhjYR68SHlkzeYrg3_bbuM,1051
424
+ airbyte_cdk-6.54.3.dist-info/LICENSE_SHORT,sha256=aqF6D1NcESmpn-cqsxBtszTEnHKnlsp8L4x9wAh3Nxg,55
425
+ airbyte_cdk-6.54.3.dist-info/METADATA,sha256=VVtNqUq4_QFpjhdOyxw_D_6o-CI2boL0Fke2Em_a7hY,6343
426
+ airbyte_cdk-6.54.3.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
427
+ airbyte_cdk-6.54.3.dist-info/entry_points.txt,sha256=AKWbEkHfpzzk9nF9tqBUaw1MbvTM4mGtEzmZQm0ZWvM,139
428
+ airbyte_cdk-6.54.3.dist-info/RECORD,,