Skip to content

Commit 01d2f87

Browse files
added AdditionalFlags to ComponentConstructor
1 parent bd551fc commit 01d2f87

File tree

1 file changed

+32
-2
lines changed

1 file changed

+32
-2
lines changed

airbyte_cdk/sources/declarative/parsers/component_constructor.py

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,42 @@
77

88
from pydantic.v1 import BaseModel
99

10+
from airbyte_cdk.sources.message import MessageRepository
1011
from airbyte_cdk.sources.declarative.models.declarative_component_schema import ValueType
1112
from airbyte_cdk.sources.types import Config
1213

14+
from airbyte_cdk.sources.connector_state_manager import ConnectorStateManager
15+
1316
M = TypeVar("M", bound=BaseModel)
1417

1518

19+
@dataclass
20+
class AdditionalFlags:
21+
def __init__(
22+
self,
23+
emit_connector_builder_messages: bool,
24+
disable_retries: bool,
25+
message_repository: MessageRepository,
26+
connector_state_manager: ConnectorStateManager,
27+
limit_pages_fetched_per_slice: Optional[int],
28+
limit_slices_fetched: Optional[int],
29+
):
30+
self.emit_connector_builder_messages = emit_connector_builder_messages
31+
self.disable_retries = disable_retries
32+
self.message_repository = message_repository
33+
self.connector_state_manager = connector_state_manager
34+
self.limit_pages_fetched_per_slice = limit_pages_fetched_per_slice
35+
self.limit_slices_fetched = limit_slices_fetched
36+
37+
@property
38+
def should_limit_slices_fetched(self) -> bool:
39+
"""
40+
Returns True if the number of slices fetched should be limited, False otherwise.
41+
This is used to limit the number of slices fetched during tests.
42+
"""
43+
return bool(self.limit_slices_fetched or self.emit_connector_builder_messages)
44+
45+
1646
@dataclass
1747
class ComponentConstructor(Generic[M]):
1848
@classmethod
@@ -21,7 +51,7 @@ def resolve_dependencies(
2151
model: M,
2252
config: Config,
2353
dependency_constructor: Callable[..., Any],
24-
additional_flags: Optional[Mapping[str, Any]] = None,
54+
additional_flags: AdditionalFlags,
2555
**kwargs: Any,
2656
) -> Mapping[str, Any]:
2757
"""
@@ -37,7 +67,7 @@ def build(
3767
model: M,
3868
config: Config,
3969
dependency_constructor: Callable[..., Any],
40-
additional_flags: Optional[Mapping[str, Any]],
70+
additional_flags: AdditionalFlags,
4171
**kwargs: Any,
4272
) -> "ComponentConstructor[M]":
4373
"""

0 commit comments

Comments
 (0)