Skip to content

Commit 05e4f74

Browse files
committed
Add default value for schema pointer
1 parent fd44be1 commit 05e4f74

File tree

4 files changed

+11
-10
lines changed

4 files changed

+11
-10
lines changed

airbyte_cdk/sources/declarative/declarative_component_schema.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1701,7 +1701,6 @@ definitions:
17011701
description: (This component is experimental. Use at your own risk.) Identifies schema details for dynamic schema extraction and processing.
17021702
type: object
17031703
required:
1704-
- schema_pointer
17051704
- key_pointer
17061705
properties:
17071706
type:

airbyte_cdk/sources/declarative/models/declarative_component_schema.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -657,8 +657,8 @@ class TypesMap(BaseModel):
657657

658658
class SchemaTypeIdentifier(BaseModel):
659659
type: Optional[Literal["SchemaTypeIdentifier"]] = None
660-
schema_pointer: List[str] = Field(
661-
...,
660+
schema_pointer: Optional[List[str]] = Field(
661+
[],
662662
description="List of nested fields defining the schema field path to extract. Defaults to [].",
663663
title="Schema Path",
664664
)

airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1593,9 +1593,9 @@ def create_schema_type_identifier(
15931593
for types_pair in model.types_mapping
15941594
]
15951595
)
1596-
model_schema_pointer: List[Union[InterpolatedString, str]] = [
1597-
x for x in model.schema_pointer
1598-
]
1596+
model_schema_pointer: List[Union[InterpolatedString, str]] = (
1597+
[x for x in model.schema_pointer] if model.schema_pointer else []
1598+
)
15991599
model_key_pointer: List[Union[InterpolatedString, str]] = [x for x in model.key_pointer]
16001600
model_type_pointer: Optional[List[Union[InterpolatedString, str]]] = (
16011601
[x for x in model.type_pointer] if model.type_pointer else None

airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,16 @@ class SchemaTypeIdentifier:
6161
Identifies schema details for dynamic schema extraction and processing.
6262
"""
6363

64-
schema_pointer: List[Union[InterpolatedString, str]]
6564
key_pointer: List[Union[InterpolatedString, str]]
6665
parameters: InitVar[Mapping[str, Any]]
6766
type_pointer: Optional[List[Union[InterpolatedString, str]]] = None
6867
types_map: Optional[List[TypesMap]] = None
68+
schema_pointer: Optional[List[Union[InterpolatedString, str]]] = None
6969

7070
def __post_init__(self, parameters: Mapping[str, Any]) -> None:
71-
self.schema_pointer = self._update_pointer(self.schema_pointer, parameters) # type: ignore[assignment] # This is reqired field in model
71+
self.schema_pointer = (
72+
self._update_pointer(self.schema_pointer, parameters) if self.schema_pointer else []
73+
) # type: ignore[assignment] # This is reqired field in model
7274
self.key_pointer = self._update_pointer(self.key_pointer, parameters) # type: ignore[assignment] # This is reqired field in model
7375
self.type_pointer = (
7476
self._update_pointer(self.type_pointer, parameters) if self.type_pointer else None
@@ -199,14 +201,14 @@ def _get_airbyte_type(field_type: str) -> Mapping[str, Any]:
199201
def _extract_data(
200202
self,
201203
body: Mapping[str, Any],
202-
extraction_path: List[Union[InterpolatedString, str]],
204+
extraction_path: Optional[List[Union[InterpolatedString, str]]] = None,
203205
default: Any = None,
204206
) -> Any:
205207
"""
206208
Extracts data from the body based on the provided extraction path.
207209
"""
208210

209-
if len(extraction_path) == 0:
211+
if not extraction_path:
210212
return body
211213

212214
path = [

0 commit comments

Comments
 (0)