airbyte-cdk 6.61.5__py3-none-any.whl → 6.61.6__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.
- airbyte_cdk/connector_builder/connector_builder_handler.py +7 -7
- airbyte_cdk/connector_builder/main.py +2 -2
- airbyte_cdk/connector_builder/test_reader/reader.py +2 -2
- airbyte_cdk/manifest_server/Dockerfile +2 -2
- airbyte_cdk/manifest_server/command_processor/processor.py +2 -4
- airbyte_cdk/manifest_server/command_processor/utils.py +1 -1
- airbyte_cdk/manifest_server/routers/manifest.py +1 -1
- airbyte_cdk/sources/declarative/concurrent_declarative_source.py +5 -4
- airbyte_cdk/sources/declarative/yaml_declarative_source.py +1 -1
- airbyte_cdk/sources/utils/schema_helpers.py +29 -9
- airbyte_cdk/sources/utils/transform.py +25 -13
- airbyte_cdk/utils/spec_schema_transformations.py +7 -5
- {airbyte_cdk-6.61.5.dist-info → airbyte_cdk-6.61.6.dist-info}/METADATA +3 -2
- {airbyte_cdk-6.61.5.dist-info → airbyte_cdk-6.61.6.dist-info}/RECORD +18 -18
- {airbyte_cdk-6.61.5.dist-info → airbyte_cdk-6.61.6.dist-info}/LICENSE.txt +0 -0
- {airbyte_cdk-6.61.5.dist-info → airbyte_cdk-6.61.6.dist-info}/LICENSE_SHORT +0 -0
- {airbyte_cdk-6.61.5.dist-info → airbyte_cdk-6.61.6.dist-info}/WHEEL +0 -0
- {airbyte_cdk-6.61.5.dist-info → airbyte_cdk-6.61.6.dist-info}/entry_points.txt +0 -0
@@ -62,10 +62,10 @@ def should_normalize_manifest(config: Mapping[str, Any]) -> bool:
|
|
62
62
|
|
63
63
|
def create_source(
|
64
64
|
config: Mapping[str, Any],
|
65
|
-
limits: TestLimits,
|
66
|
-
catalog:
|
67
|
-
state:
|
68
|
-
) -> ConcurrentDeclarativeSource
|
65
|
+
limits: TestLimits | None = None,
|
66
|
+
catalog: ConfiguredAirbyteCatalog | None = None,
|
67
|
+
state: List[AirbyteStateMessage] | None = None,
|
68
|
+
) -> ConcurrentDeclarativeSource:
|
69
69
|
manifest = config["__injected_declarative_manifest"]
|
70
70
|
|
71
71
|
# We enforce a concurrency level of 1 so that the stream is processed on a single thread
|
@@ -88,7 +88,7 @@ def create_source(
|
|
88
88
|
|
89
89
|
|
90
90
|
def read_stream(
|
91
|
-
source: ConcurrentDeclarativeSource
|
91
|
+
source: ConcurrentDeclarativeSource,
|
92
92
|
config: Mapping[str, Any],
|
93
93
|
configured_catalog: ConfiguredAirbyteCatalog,
|
94
94
|
state: List[AirbyteStateMessage],
|
@@ -127,7 +127,7 @@ def read_stream(
|
|
127
127
|
|
128
128
|
|
129
129
|
def resolve_manifest(
|
130
|
-
source: ConcurrentDeclarativeSource
|
130
|
+
source: ConcurrentDeclarativeSource,
|
131
131
|
) -> AirbyteMessage:
|
132
132
|
try:
|
133
133
|
return AirbyteMessage(
|
@@ -146,7 +146,7 @@ def resolve_manifest(
|
|
146
146
|
|
147
147
|
|
148
148
|
def full_resolve_manifest(
|
149
|
-
source: ConcurrentDeclarativeSource
|
149
|
+
source: ConcurrentDeclarativeSource, limits: TestLimits
|
150
150
|
) -> AirbyteMessage:
|
151
151
|
try:
|
152
152
|
manifest = {**source.resolved_manifest}
|
@@ -34,7 +34,7 @@ from airbyte_cdk.utils.traced_exception import AirbyteTracedException
|
|
34
34
|
|
35
35
|
def get_config_and_catalog_from_args(
|
36
36
|
args: List[str],
|
37
|
-
) -> Tuple[str, Mapping[str, Any], Optional[ConfiguredAirbyteCatalog],
|
37
|
+
) -> Tuple[str, Mapping[str, Any], Optional[ConfiguredAirbyteCatalog], List[AirbyteStateMessage]]:
|
38
38
|
# TODO: Add functionality for the `debug` logger.
|
39
39
|
# Currently, no one `debug` level log will be displayed during `read` a stream for a connector created through `connector-builder`.
|
40
40
|
parsed_args = AirbyteEntrypoint.parse_args(args)
|
@@ -70,7 +70,7 @@ def get_config_and_catalog_from_args(
|
|
70
70
|
|
71
71
|
|
72
72
|
def handle_connector_builder_request(
|
73
|
-
source: ConcurrentDeclarativeSource
|
73
|
+
source: ConcurrentDeclarativeSource,
|
74
74
|
command: str,
|
75
75
|
config: Mapping[str, Any],
|
76
76
|
catalog: Optional[ConfiguredAirbyteCatalog],
|
@@ -85,7 +85,7 @@ class TestReader:
|
|
85
85
|
|
86
86
|
def run_test_read(
|
87
87
|
self,
|
88
|
-
source: ConcurrentDeclarativeSource
|
88
|
+
source: ConcurrentDeclarativeSource,
|
89
89
|
config: Mapping[str, Any],
|
90
90
|
configured_catalog: ConfiguredAirbyteCatalog,
|
91
91
|
stream_name: str,
|
@@ -383,7 +383,7 @@ class TestReader:
|
|
383
383
|
|
384
384
|
def _read_stream(
|
385
385
|
self,
|
386
|
-
source: ConcurrentDeclarativeSource
|
386
|
+
source: ConcurrentDeclarativeSource,
|
387
387
|
config: Mapping[str, Any],
|
388
388
|
configured_catalog: ConfiguredAirbyteCatalog,
|
389
389
|
state: List[AirbyteStateMessage],
|
@@ -11,7 +11,7 @@ FROM python:3.12-slim-bookworm
|
|
11
11
|
RUN apt-get update && \
|
12
12
|
apt-get install -y git && \
|
13
13
|
rm -rf /var/lib/apt/lists/* && \
|
14
|
-
pip install poetry==
|
14
|
+
pip install poetry==2.0.1
|
15
15
|
|
16
16
|
# Configure poetry to not create virtual environments and disable interactive mode
|
17
17
|
ENV POETRY_NO_INTERACTION=1 \
|
@@ -42,4 +42,4 @@ USER airbyte:airbyte
|
|
42
42
|
|
43
43
|
EXPOSE 8080
|
44
44
|
|
45
|
-
CMD ["uvicorn", "airbyte_cdk.manifest_server.app:app", "--host", "0.0.0.0", "--port", "8080"]
|
45
|
+
CMD ["uvicorn", "airbyte_cdk.manifest_server.app:app", "--host", "0.0.0.0", "--port", "8080"]
|
@@ -21,12 +21,10 @@ from airbyte_cdk.test.entrypoint_wrapper import AirbyteEntrypointException, Entr
|
|
21
21
|
|
22
22
|
|
23
23
|
class ManifestCommandProcessor:
|
24
|
-
_source: ConcurrentDeclarativeSource
|
24
|
+
_source: ConcurrentDeclarativeSource
|
25
25
|
_logger = logging.getLogger("airbyte.manifest-server")
|
26
26
|
|
27
|
-
def __init__(
|
28
|
-
self, source: ConcurrentDeclarativeSource[Optional[List[AirbyteStateMessage]]]
|
29
|
-
) -> None:
|
27
|
+
def __init__(self, source: ConcurrentDeclarativeSource) -> None:
|
30
28
|
self._source = source
|
31
29
|
|
32
30
|
def test_read(
|
@@ -63,7 +63,7 @@ def build_source(
|
|
63
63
|
record_limit: Optional[int] = None,
|
64
64
|
page_limit: Optional[int] = None,
|
65
65
|
slice_limit: Optional[int] = None,
|
66
|
-
) -> ConcurrentDeclarativeSource
|
66
|
+
) -> ConcurrentDeclarativeSource:
|
67
67
|
# We enforce a concurrency level of 1 so that the stream is processed on a single thread
|
68
68
|
# to retain ordering for the grouping of the builder message responses.
|
69
69
|
definition = copy.deepcopy(manifest)
|
@@ -40,7 +40,7 @@ def safe_build_source(
|
|
40
40
|
page_limit: Optional[int] = None,
|
41
41
|
slice_limit: Optional[int] = None,
|
42
42
|
record_limit: Optional[int] = None,
|
43
|
-
) -> ConcurrentDeclarativeSource
|
43
|
+
) -> ConcurrentDeclarativeSource:
|
44
44
|
"""Wrapper around build_source that converts ValidationError to HTTPException."""
|
45
45
|
try:
|
46
46
|
return build_source(
|
@@ -162,16 +162,17 @@ def _get_declarative_component_schema() -> Dict[str, Any]:
|
|
162
162
|
# is no longer inherited from since the only external dependency is from that class.
|
163
163
|
#
|
164
164
|
# todo: It is worth investigating removal of the Generic[TState] since it will always be Optional[List[AirbyteStateMessage]]
|
165
|
-
class ConcurrentDeclarativeSource(AbstractSource
|
165
|
+
class ConcurrentDeclarativeSource(AbstractSource):
|
166
166
|
# By default, we defer to a value of 2. A value lower than could cause a PartitionEnqueuer to be stuck in a state of deadlock
|
167
167
|
# because it has hit the limit of futures but not partition reader is consuming them.
|
168
168
|
_LOWEST_SAFE_CONCURRENCY_LEVEL = 2
|
169
169
|
|
170
170
|
def __init__(
|
171
171
|
self,
|
172
|
-
catalog: Optional[ConfiguredAirbyteCatalog],
|
173
|
-
config: Optional[Mapping[str, Any]],
|
174
|
-
state:
|
172
|
+
catalog: Optional[ConfiguredAirbyteCatalog] = None,
|
173
|
+
config: Optional[Mapping[str, Any]] = None,
|
174
|
+
state: Optional[List[AirbyteStateMessage]] = None,
|
175
|
+
*,
|
175
176
|
source_config: ConnectionDefinition,
|
176
177
|
debug: bool = False,
|
177
178
|
emit_connector_builder_messages: bool = False,
|
@@ -14,7 +14,7 @@ from airbyte_cdk.sources.declarative.concurrent_declarative_source import (
|
|
14
14
|
from airbyte_cdk.sources.types import ConnectionDefinition
|
15
15
|
|
16
16
|
|
17
|
-
class YamlDeclarativeSource(ConcurrentDeclarativeSource
|
17
|
+
class YamlDeclarativeSource(ConcurrentDeclarativeSource):
|
18
18
|
"""Declarative source defined by a yaml file"""
|
19
19
|
|
20
20
|
def __init__(
|
@@ -7,12 +7,16 @@ import importlib
|
|
7
7
|
import json
|
8
8
|
import os
|
9
9
|
import pkgutil
|
10
|
-
from
|
10
|
+
from copy import deepcopy
|
11
|
+
from typing import TYPE_CHECKING, Any, ClassVar, Dict, List, Mapping, MutableMapping, Tuple, cast
|
11
12
|
|
12
13
|
import jsonref
|
13
|
-
from jsonschema import
|
14
|
+
from jsonschema import validate
|
14
15
|
from jsonschema.exceptions import ValidationError
|
15
16
|
from pydantic.v1 import BaseModel, Field
|
17
|
+
from referencing import Registry, Resource
|
18
|
+
from referencing._core import Resolver # used for type hints
|
19
|
+
from referencing.jsonschema import DRAFT7
|
16
20
|
|
17
21
|
from airbyte_cdk.models import ConnectorSpecification, FailureType
|
18
22
|
from airbyte_cdk.utils.traced_exception import AirbyteTracedException
|
@@ -63,18 +67,30 @@ def resolve_ref_links(obj: Any) -> Any:
|
|
63
67
|
return obj
|
64
68
|
|
65
69
|
|
66
|
-
def
|
70
|
+
def get_ref_resolver_registry(schema: dict[str, Any]) -> Registry:
|
71
|
+
"""Get a reference resolver registry for the given schema."""
|
72
|
+
resource: Resource = Resource.from_contents(
|
73
|
+
contents=schema,
|
74
|
+
default_specification=DRAFT7,
|
75
|
+
)
|
76
|
+
return cast( # Mypy has a hard time detecting this return type.
|
77
|
+
"Registry",
|
78
|
+
Registry().with_resource(
|
79
|
+
uri="",
|
80
|
+
resource=resource,
|
81
|
+
),
|
82
|
+
)
|
83
|
+
|
84
|
+
|
85
|
+
def _expand_refs(schema: Any, ref_resolver: Resolver) -> None:
|
67
86
|
"""Internal function to iterate over schema and replace all occurrences of $ref with their definitions. Recursive.
|
68
87
|
|
69
88
|
:param schema: schema that will be patched
|
70
|
-
:param ref_resolver: resolver to get definition from $ref, if None pass it will be instantiated
|
71
89
|
"""
|
72
|
-
ref_resolver = ref_resolver or RefResolver.from_schema(schema)
|
73
|
-
|
74
90
|
if isinstance(schema, MutableMapping):
|
75
91
|
if "$ref" in schema:
|
76
92
|
ref_url = schema.pop("$ref")
|
77
|
-
|
93
|
+
definition = ref_resolver.lookup(ref_url).contents
|
78
94
|
_expand_refs(
|
79
95
|
definition, ref_resolver=ref_resolver
|
80
96
|
) # expand refs in definitions as well
|
@@ -90,10 +106,14 @@ def _expand_refs(schema: Any, ref_resolver: Optional[RefResolver] = None) -> Non
|
|
90
106
|
def expand_refs(schema: Any) -> None:
|
91
107
|
"""Iterate over schema and replace all occurrences of $ref with their definitions.
|
92
108
|
|
109
|
+
If a "definitions" section is present at the root of the schema, it will be removed
|
110
|
+
after $ref resolution is complete.
|
111
|
+
|
93
112
|
:param schema: schema that will be patched
|
94
113
|
"""
|
95
|
-
|
96
|
-
schema
|
114
|
+
ref_resolver = get_ref_resolver_registry(schema).resolver()
|
115
|
+
_expand_refs(schema, ref_resolver)
|
116
|
+
schema.pop("definitions", None)
|
97
117
|
|
98
118
|
|
99
119
|
def rename_key(schema: Any, old_key: str, new_key: str) -> None:
|
@@ -3,10 +3,25 @@
|
|
3
3
|
#
|
4
4
|
|
5
5
|
import logging
|
6
|
+
from copy import deepcopy
|
6
7
|
from enum import Flag, auto
|
7
|
-
from typing import Any, Callable, Dict, Generator, Mapping, Optional, cast
|
8
|
+
from typing import TYPE_CHECKING, Any, Callable, Dict, Generator, Mapping, Optional, cast
|
9
|
+
|
10
|
+
from jsonschema import Draft7Validator, ValidationError, validators
|
11
|
+
from referencing import Registry, Resource
|
12
|
+
from referencing._core import Resolver
|
13
|
+
from referencing.exceptions import Unresolvable
|
14
|
+
from referencing.jsonschema import DRAFT7
|
15
|
+
|
16
|
+
from airbyte_cdk.sources.utils.schema_helpers import expand_refs
|
17
|
+
|
18
|
+
from .schema_helpers import get_ref_resolver_registry
|
19
|
+
|
20
|
+
try:
|
21
|
+
from jsonschema.validators import Validator
|
22
|
+
except:
|
23
|
+
from jsonschema import Validator
|
8
24
|
|
9
|
-
from jsonschema import Draft7Validator, RefResolver, ValidationError, Validator, validators
|
10
25
|
|
11
26
|
MAX_NESTING_DEPTH = 3
|
12
27
|
json_to_python_simple = {
|
@@ -191,15 +206,14 @@ class TypeTransformer:
|
|
191
206
|
validators parameter for detailed description.
|
192
207
|
:
|
193
208
|
"""
|
209
|
+
# Very first step is to expand $refs in the schema itself:
|
210
|
+
expand_refs(schema)
|
211
|
+
|
212
|
+
# Now we can expand $refs in the property value:
|
213
|
+
if isinstance(property_value, dict):
|
214
|
+
expand_refs(property_value)
|
194
215
|
|
195
|
-
|
196
|
-
if "$ref" in subschema:
|
197
|
-
_, resolved = cast(
|
198
|
-
RefResolver,
|
199
|
-
validator_instance.resolver,
|
200
|
-
).resolve(subschema["$ref"])
|
201
|
-
return cast(dict[str, Any], resolved)
|
202
|
-
return subschema
|
216
|
+
# Now we can validate and normalize the values:
|
203
217
|
|
204
218
|
# Transform object and array values before running json schema type checking for each element.
|
205
219
|
# Recursively normalize every value of the "instance" sub-object,
|
@@ -207,14 +221,12 @@ class TypeTransformer:
|
|
207
221
|
if schema_key == "properties" and isinstance(instance, dict):
|
208
222
|
for k, subschema in property_value.items():
|
209
223
|
if k in instance:
|
210
|
-
subschema = resolve(subschema)
|
211
224
|
instance[k] = self.__normalize(instance[k], subschema)
|
212
225
|
# Recursively normalize every item of the "instance" sub-array,
|
213
226
|
# if "instance" is an incorrect type - skip recursive normalization of "instance"
|
214
227
|
elif schema_key == "items" and isinstance(instance, list):
|
215
|
-
subschema = resolve(property_value)
|
216
228
|
for index, item in enumerate(instance):
|
217
|
-
instance[index] = self.__normalize(item,
|
229
|
+
instance[index] = self.__normalize(item, property_value)
|
218
230
|
|
219
231
|
# Running native jsonschema traverse algorithm after field normalization is done.
|
220
232
|
yield from original_validator(
|
@@ -6,7 +6,8 @@ import json
|
|
6
6
|
import re
|
7
7
|
from typing import Any
|
8
8
|
|
9
|
-
from
|
9
|
+
from referencing import Registry, Resource
|
10
|
+
from referencing.jsonschema import DRAFT7
|
10
11
|
|
11
12
|
|
12
13
|
def resolve_refs(schema: dict[str, Any]) -> dict[str, Any]:
|
@@ -14,13 +15,14 @@ def resolve_refs(schema: dict[str, Any]) -> dict[str, Any]:
|
|
14
15
|
For spec schemas generated using Pydantic models, the resulting JSON schema can contain refs between object
|
15
16
|
relationships.
|
16
17
|
"""
|
17
|
-
|
18
|
+
resource = Resource.from_contents(schema, default_specification=DRAFT7)
|
19
|
+
registry = Registry().with_resource("", resource)
|
20
|
+
resolver = registry.resolver()
|
18
21
|
str_schema = json.dumps(schema)
|
19
22
|
for ref_block in re.findall(r'{"\$ref": "#\/definitions\/.+?(?="})"}', str_schema):
|
20
23
|
ref = json.loads(ref_block)["$ref"]
|
21
|
-
|
22
|
-
|
23
|
-
)
|
24
|
+
resolved = resolver.lookup(ref).contents
|
25
|
+
str_schema = str_schema.replace(ref_block, json.dumps(resolved))
|
24
26
|
pyschema: dict[str, Any] = json.loads(str_schema)
|
25
27
|
del pyschema["definitions"]
|
26
28
|
return pyschema
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: airbyte-cdk
|
3
|
-
Version: 6.61.
|
3
|
+
Version: 6.61.6
|
4
4
|
Summary: A framework for writing Airbyte Connectors.
|
5
5
|
Home-page: https://airbyte.com
|
6
6
|
License: MIT
|
@@ -44,7 +44,7 @@ Requires-Dist: genson (==1.3.0)
|
|
44
44
|
Requires-Dist: google-cloud-secret-manager (>=2.17.0,<3.0.0)
|
45
45
|
Requires-Dist: isodate (>=0.6.1,<0.7.0)
|
46
46
|
Requires-Dist: jsonref (>=0.2,<0.3)
|
47
|
-
Requires-Dist: jsonschema (>=4.17.3,<
|
47
|
+
Requires-Dist: jsonschema (>=4.17.3,<5.0)
|
48
48
|
Requires-Dist: langchain (==0.1.16) ; extra == "vector-db-based"
|
49
49
|
Requires-Dist: langchain_core (==0.1.42)
|
50
50
|
Requires-Dist: markdown ; extra == "file-based"
|
@@ -69,6 +69,7 @@ Requires-Dist: python-snappy (==0.7.3) ; extra == "file-based"
|
|
69
69
|
Requires-Dist: python-ulid (>=3.0.0,<4.0.0)
|
70
70
|
Requires-Dist: pytz (==2024.2)
|
71
71
|
Requires-Dist: rapidfuzz (>=3.10.1,<4.0.0)
|
72
|
+
Requires-Dist: referencing (>=0.36.2)
|
72
73
|
Requires-Dist: requests
|
73
74
|
Requires-Dist: requests_cache
|
74
75
|
Requires-Dist: rich
|
@@ -15,13 +15,13 @@ airbyte_cdk/config_observation.py,sha256=7SSPxtN0nXPkm4euGNcTTr1iLbwUL01jy-24V1H
|
|
15
15
|
airbyte_cdk/connector.py,sha256=N6TUlrZOMjLAI85JrNAKkfyTqnO5xfBCw4oEfgjJd9o,4254
|
16
16
|
airbyte_cdk/connector_builder/README.md,sha256=Hw3wvVewuHG9-QgsAq1jDiKuLlStDxKBz52ftyNRnBw,1665
|
17
17
|
airbyte_cdk/connector_builder/__init__.py,sha256=4Hw-PX1-VgESLF16cDdvuYCzGJtHntThLF4qIiULWeo,61
|
18
|
-
airbyte_cdk/connector_builder/connector_builder_handler.py,sha256=
|
19
|
-
airbyte_cdk/connector_builder/main.py,sha256=
|
18
|
+
airbyte_cdk/connector_builder/connector_builder_handler.py,sha256=g3P7Ib27mOLEMH8tBIVhl3A-ZidothnXxevhNSuGHvM,6204
|
19
|
+
airbyte_cdk/connector_builder/main.py,sha256=dbVvNIFGIiAM9HKFsoB00lAHSvX16JY49dUImsGCpwQ,3920
|
20
20
|
airbyte_cdk/connector_builder/models.py,sha256=9pIZ98LW_d6fRS39VdnUOf3cxGt4TkC5MJ0_OrzcCRk,1578
|
21
21
|
airbyte_cdk/connector_builder/test_reader/__init__.py,sha256=iTwBMoI9vaJotEgpqZbFjlxRcbxXYypSVJ9YxeHk7wc,120
|
22
22
|
airbyte_cdk/connector_builder/test_reader/helpers.py,sha256=5GSrK9EVBDm5dwtudVbA-73EHh53-niRA-oj8eQVFHI,29236
|
23
23
|
airbyte_cdk/connector_builder/test_reader/message_grouper.py,sha256=bFoQMKCXJob98O6F4tgMW81cCquNOqCx2tkNXP7lPqc,7062
|
24
|
-
airbyte_cdk/connector_builder/test_reader/reader.py,sha256=
|
24
|
+
airbyte_cdk/connector_builder/test_reader/reader.py,sha256=QvIBtCJxcQhJqlHXOAHoFHGz_N7Z7ocpV2j5JO92XEU,21768
|
25
25
|
airbyte_cdk/connector_builder/test_reader/types.py,sha256=hPZG3jO03kBaPyW94NI3JHRS1jxXGSNBcN1HFzOxo5Y,2528
|
26
26
|
airbyte_cdk/destinations/__init__.py,sha256=FyDp28PT_YceJD5HDFhA-mrGfX9AONIyMQ4d68CHNxQ,213
|
27
27
|
airbyte_cdk/destinations/destination.py,sha256=CIq-yb8C_0QvcKCtmStaHfiqn53GEfRAIGGCkJhKP1Q,5880
|
@@ -55,7 +55,7 @@ airbyte_cdk/manifest_migrations/migrations/http_requester_request_body_json_data
|
|
55
55
|
airbyte_cdk/manifest_migrations/migrations/http_requester_url_base_to_url.py,sha256=EX1MVYVpoWypA28qoH48wA0SYZjGdlR8bcSixTDzfgo,1346
|
56
56
|
airbyte_cdk/manifest_migrations/migrations/registry.yaml,sha256=F-hdapvl_vZnsI7CQsV00Rb7g7j4Nt2zaM83-Tbwgbg,956
|
57
57
|
airbyte_cdk/manifest_migrations/migrations_registry.py,sha256=zly2fwaOxDukqC7eowzrDlvhA2v71FjW74kDzvRXhSY,2619
|
58
|
-
airbyte_cdk/manifest_server/Dockerfile,sha256=
|
58
|
+
airbyte_cdk/manifest_server/Dockerfile,sha256=9I8HUDHkHggzyUiGg4Bqj7oZjrTSaWrZrWyA2FKD7u8,1317
|
59
59
|
airbyte_cdk/manifest_server/README.md,sha256=bYzb3QAnkaM9mR9XgK7n4FKAvZkM4OWaBGcQb91f3vk,4341
|
60
60
|
airbyte_cdk/manifest_server/__init__.py,sha256=EE54nk2dbtExIEEvLPCTUkJ_ESV5OYP4B2rBJlDpJ5g,33
|
61
61
|
airbyte_cdk/manifest_server/api_models/__init__.py,sha256=1UFpMsJm1sjNBjgEasbOU98BgZxLthlPM1KdUpGfC4I,1015
|
@@ -72,14 +72,14 @@ airbyte_cdk/manifest_server/cli/_openapi.py,sha256=rNghqbBMMT118auUIsxr89Mu6L6hq
|
|
72
72
|
airbyte_cdk/manifest_server/cli/_start.py,sha256=SgkW_dQcpCIrXYNZ6qF95oYIVaCszm9tFEbYiAZo4EQ,876
|
73
73
|
airbyte_cdk/manifest_server/cli/run.py,sha256=-Yv_Jv_hDeMBVZdzuyeJJ_JBT1WUhCyUQn4f4mA21Ds,1224
|
74
74
|
airbyte_cdk/manifest_server/command_processor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
75
|
-
airbyte_cdk/manifest_server/command_processor/processor.py,sha256=
|
76
|
-
airbyte_cdk/manifest_server/command_processor/utils.py,sha256=
|
75
|
+
airbyte_cdk/manifest_server/command_processor/processor.py,sha256=BZPASuhPJix78NB7rD1xuxWfL1TmqdnOEa_8WR1R2FI,3741
|
76
|
+
airbyte_cdk/manifest_server/command_processor/utils.py,sha256=EbZAbX91n12g2TCqOWBUi8KKqdz2Ccrw2FAIN5JT2B8,3184
|
77
77
|
airbyte_cdk/manifest_server/main.py,sha256=iSgL7x8ifBpGpXi7Dq7017QjeC20l_CYBAIsumiyJn0,573
|
78
78
|
airbyte_cdk/manifest_server/openapi.yaml,sha256=jwJXohDXP3BLL0JGZhkyhpNLWLZu6_iXEgMtM58F2Pc,16693
|
79
79
|
airbyte_cdk/manifest_server/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
80
80
|
airbyte_cdk/manifest_server/routers/capabilities.py,sha256=UeZQzbqEuDN23vizgDb_N7KEXR-YZUPnW5AkXeXy1hA,727
|
81
81
|
airbyte_cdk/manifest_server/routers/health.py,sha256=akBUaHUGN-jmN82lQ3kj_3-wdS6gsZx3iSD2KMI5dW8,200
|
82
|
-
airbyte_cdk/manifest_server/routers/manifest.py,sha256=
|
82
|
+
airbyte_cdk/manifest_server/routers/manifest.py,sha256=JmL5eaw4mDyjP7-ufQ_F6h0kmjttivrvXkEjPzYccTg,5533
|
83
83
|
airbyte_cdk/models/__init__.py,sha256=Et9wJWs5VOWynGbb-3aJRhsdAHAiLkNNLxdwqJAuqkw,2114
|
84
84
|
airbyte_cdk/models/airbyte_protocol.py,sha256=oZdKsZ7yPjUt9hvxdWNpxCtgjSV2RWhf4R9Np03sqyY,3613
|
85
85
|
airbyte_cdk/models/airbyte_protocol_serializers.py,sha256=Dq4ry_Wwvzsos6neDiaOZkY6riQYC33ZlPNWpfIIB1E,1926
|
@@ -118,7 +118,7 @@ airbyte_cdk/sources/declarative/checks/check_stream.py,sha256=sV-ZY7dZ03V8GdAxPY
|
|
118
118
|
airbyte_cdk/sources/declarative/checks/connection_checker.py,sha256=MBRJo6WJlZQHpIfOGaNOkkHUmgUl_4wDM6VPo41z5Ss,1383
|
119
119
|
airbyte_cdk/sources/declarative/concurrency_level/__init__.py,sha256=5XUqrmlstYlMM0j6crktlKQwALek0uiz2D3WdM46MyA,191
|
120
120
|
airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py,sha256=YIwCTCpOr_QSNW4ltQK0yUGWInI8PKNY216HOOegYLk,2101
|
121
|
-
airbyte_cdk/sources/declarative/concurrent_declarative_source.py,sha256=
|
121
|
+
airbyte_cdk/sources/declarative/concurrent_declarative_source.py,sha256=EpTpu7y8rK6QP9smRIXYi7NTjJwumTwI2FvoeFbigvc,52956
|
122
122
|
airbyte_cdk/sources/declarative/datetime/__init__.py,sha256=4Hw-PX1-VgESLF16cDdvuYCzGJtHntThLF4qIiULWeo,61
|
123
123
|
airbyte_cdk/sources/declarative/datetime/datetime_parser.py,sha256=_zGNGq31RNy_0QBLt_EcTvgPyhj7urPdx6oA3M5-r3o,3150
|
124
124
|
airbyte_cdk/sources/declarative/datetime/min_max_datetime.py,sha256=0BHBtDNQZfvwM45-tY5pNlTcKAFSGGNxemoi0Jic-0E,5785
|
@@ -273,7 +273,7 @@ airbyte_cdk/sources/declarative/validators/predicate_validator.py,sha256=Q4eVncl
|
|
273
273
|
airbyte_cdk/sources/declarative/validators/validate_adheres_to_schema.py,sha256=kjcuKxWMJEzpF4GiESITGMxBAXw6YZCAsgOQMgeBo4g,1085
|
274
274
|
airbyte_cdk/sources/declarative/validators/validation_strategy.py,sha256=LwqUX89cFdHTM1-h6c8vebBA9WC38HYoGBvJfCZHr0g,467
|
275
275
|
airbyte_cdk/sources/declarative/validators/validator.py,sha256=MAwo8OievUsuzBuPxI9pbPu87yq0tJZkGbydcrHZyQc,382
|
276
|
-
airbyte_cdk/sources/declarative/yaml_declarative_source.py,sha256
|
276
|
+
airbyte_cdk/sources/declarative/yaml_declarative_source.py,sha256=qDQXems3USwhapqzbcESeXyYAhTSp8PLBq47Hiw52PY,2767
|
277
277
|
airbyte_cdk/sources/file_based/README.md,sha256=iMqww4VZ882jfNQIdljjDgqreKs-mkdtSrRKA94iX6A,11085
|
278
278
|
airbyte_cdk/sources/file_based/__init__.py,sha256=EaxHv_9ot-eRlUCR47ZMZ0IOtB-n0HH24om7Bfn-uuQ,868
|
279
279
|
airbyte_cdk/sources/file_based/availability_strategy/__init__.py,sha256=VY-0PcTaPttXU_mGf-7w7u5VKQD7iQWJbKMvIYAOhcQ,288
|
@@ -393,9 +393,9 @@ airbyte_cdk/sources/utils/__init__.py,sha256=TTN6VUxVy6Is8BhYQZR5pxJGQh8yH4duXh4
|
|
393
393
|
airbyte_cdk/sources/utils/casing.py,sha256=QC-gV1O4e8DR4-bhdXieUPKm_JamzslVyfABLYYRSXA,256
|
394
394
|
airbyte_cdk/sources/utils/files_directory.py,sha256=z8Dmr-wkL1sAqdwCST4MBUFAyMHPD2cJIzVdAuCynp8,391
|
395
395
|
airbyte_cdk/sources/utils/record_helper.py,sha256=7wL-pDYrBpcmZHa8ORtiSOqBZJEZI5hdl2dA1RYiatk,2029
|
396
|
-
airbyte_cdk/sources/utils/schema_helpers.py,sha256=
|
396
|
+
airbyte_cdk/sources/utils/schema_helpers.py,sha256=_SCOPalKoMW3SX9J-zK6UsAO0oHsfCyW-F2wQlPJ3PU,9145
|
397
397
|
airbyte_cdk/sources/utils/slice_logger.py,sha256=M1TvcYGMftXR841XdJmeEpKpQqrdOD5X-qsspfAMKMs,2168
|
398
|
-
airbyte_cdk/sources/utils/transform.py,sha256=
|
398
|
+
airbyte_cdk/sources/utils/transform.py,sha256=49xcU97dZAO7FTQItrpN0mZ4qjz5d6huftF4DYbze6c,11971
|
399
399
|
airbyte_cdk/sources/utils/types.py,sha256=41ZQR681t5TUnOScij58d088sb99klH_ZENFcaYro_g,175
|
400
400
|
airbyte_cdk/sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
401
401
|
airbyte_cdk/sql/_util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -451,12 +451,12 @@ airbyte_cdk/utils/oneof_option_config.py,sha256=N8EmWdYdwt0FM7fuShh6H8nj_r4KEL9t
|
|
451
451
|
airbyte_cdk/utils/print_buffer.py,sha256=PhMOi0C4Z91kWKrSvCQXcp8qRh1uCimpIdvrg6voZIA,2810
|
452
452
|
airbyte_cdk/utils/schema_inferrer.py,sha256=_jLzL9PzE4gfR44OSavkIqZNFM9t08c3LuRrkR7PZbk,9861
|
453
453
|
airbyte_cdk/utils/slice_hasher.py,sha256=EDxgROHDbfG-QKQb59m7h_7crN1tRiawdf5uU7GrKcg,1264
|
454
|
-
airbyte_cdk/utils/spec_schema_transformations.py,sha256
|
454
|
+
airbyte_cdk/utils/spec_schema_transformations.py,sha256=9YDJmnIGFsT51CVQf2tSSvTapGimITjEFGbUTSZAGTI,963
|
455
455
|
airbyte_cdk/utils/stream_status_utils.py,sha256=ZmBoiy5HVbUEHAMrUONxZvxnvfV9CesmQJLDTAIWnWw,1171
|
456
456
|
airbyte_cdk/utils/traced_exception.py,sha256=C8uIBuCL_E4WnBAOPSxBicD06JAldoN9fGsQDp463OY,6292
|
457
|
-
airbyte_cdk-6.61.
|
458
|
-
airbyte_cdk-6.61.
|
459
|
-
airbyte_cdk-6.61.
|
460
|
-
airbyte_cdk-6.61.
|
461
|
-
airbyte_cdk-6.61.
|
462
|
-
airbyte_cdk-6.61.
|
457
|
+
airbyte_cdk-6.61.6.dist-info/LICENSE.txt,sha256=Wfe61S4BaGPj404v8lrAbvhjYR68SHlkzeYrg3_bbuM,1051
|
458
|
+
airbyte_cdk-6.61.6.dist-info/LICENSE_SHORT,sha256=aqF6D1NcESmpn-cqsxBtszTEnHKnlsp8L4x9wAh3Nxg,55
|
459
|
+
airbyte_cdk-6.61.6.dist-info/METADATA,sha256=2CK9PaFLE8ebRfYDTjK5S1dxFO-jlr3fD-wHPzVe4pY,6800
|
460
|
+
airbyte_cdk-6.61.6.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
461
|
+
airbyte_cdk-6.61.6.dist-info/entry_points.txt,sha256=eLZ2UYvJZGm1s07Pplcs--1Gim60YhZWTb53j_dghwU,195
|
462
|
+
airbyte_cdk-6.61.6.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|