airbyte-cdk 6.61.3.post2.dev17299502224__py3-none-any.whl → 6.61.5__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/manifest_server/README.md +39 -3
- airbyte_cdk/manifest_server/app.py +6 -0
- airbyte_cdk/manifest_server/cli/_common.py +1 -0
- airbyte_cdk/manifest_server/command_processor/processor.py +0 -1
- airbyte_cdk/manifest_server/openapi.yaml +27 -27
- airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +4 -1
- airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +21 -7
- airbyte_cdk/sources/file_based/file_types/excel_parser.py +3 -3
- {airbyte_cdk-6.61.3.post2.dev17299502224.dist-info → airbyte_cdk-6.61.5.dist-info}/METADATA +7 -5
- {airbyte_cdk-6.61.3.post2.dev17299502224.dist-info → airbyte_cdk-6.61.5.dist-info}/RECORD +14 -14
- {airbyte_cdk-6.61.3.post2.dev17299502224.dist-info → airbyte_cdk-6.61.5.dist-info}/LICENSE.txt +0 -0
- {airbyte_cdk-6.61.3.post2.dev17299502224.dist-info → airbyte_cdk-6.61.5.dist-info}/LICENSE_SHORT +0 -0
- {airbyte_cdk-6.61.3.post2.dev17299502224.dist-info → airbyte_cdk-6.61.5.dist-info}/WHEEL +0 -0
- {airbyte_cdk-6.61.3.post2.dev17299502224.dist-info → airbyte_cdk-6.61.5.dist-info}/entry_points.txt +0 -0
@@ -37,26 +37,31 @@ The server will start on `http://localhost:8000` by default.
|
|
37
37
|
## API Endpoints
|
38
38
|
|
39
39
|
### `/v1/manifest/test_read`
|
40
|
+
|
40
41
|
Test reading from a specific stream in the manifest.
|
41
42
|
|
42
43
|
**POST** - Test stream reading with configurable limits for records, pages, and slices.
|
43
44
|
|
44
45
|
### `/v1/manifest/check`
|
46
|
+
|
45
47
|
Check configuration against a manifest.
|
46
48
|
|
47
49
|
**POST** - Validates connector configuration and returns success/failure status with message.
|
48
50
|
|
49
51
|
### `/v1/manifest/discover`
|
52
|
+
|
50
53
|
Discover streams from a manifest.
|
51
54
|
|
52
55
|
**POST** - Returns the catalog of available streams from the manifest.
|
53
56
|
|
54
|
-
### `/v1/manifest/resolve`
|
57
|
+
### `/v1/manifest/resolve`
|
58
|
+
|
55
59
|
Resolve a manifest to its final configuration.
|
56
60
|
|
57
61
|
**POST** - Returns the resolved manifest without dynamic stream generation.
|
58
62
|
|
59
63
|
### `/v1/manifest/full_resolve`
|
64
|
+
|
60
65
|
Fully resolve a manifest including dynamic streams.
|
61
66
|
|
62
67
|
**POST** - Generates dynamic streams up to specified limits and includes them in the resolved manifest.
|
@@ -68,6 +73,7 @@ The manifest server supports custom Python components, but this feature is **dis
|
|
68
73
|
### Enabling Custom Components
|
69
74
|
|
70
75
|
To allow custom Python components in your manifest files, set the environment variable:
|
76
|
+
|
71
77
|
```bash
|
72
78
|
export AIRBYTE_ENABLE_UNSAFE_CODE=true
|
73
79
|
```
|
@@ -77,20 +83,25 @@ export AIRBYTE_ENABLE_UNSAFE_CODE=true
|
|
77
83
|
The manifest server supports optional JWT bearer token authentication:
|
78
84
|
|
79
85
|
### Configuration
|
86
|
+
|
80
87
|
Set the environment variable to enable authentication:
|
88
|
+
|
81
89
|
```bash
|
82
90
|
export AB_JWT_SIGNATURE_SECRET="your-jwt-secret-key"
|
83
91
|
```
|
84
92
|
|
85
93
|
### Usage
|
94
|
+
|
86
95
|
When authentication is enabled, include a valid JWT token in the Authorization header:
|
96
|
+
|
87
97
|
```bash
|
88
98
|
curl -H "Authorization: Bearer <your-jwt-token>" \
|
89
99
|
http://localhost:8000/v1/manifest/test_read
|
90
100
|
```
|
91
101
|
|
92
102
|
### Behavior
|
93
|
-
|
103
|
+
|
104
|
+
- **Without `AB_JWT_SIGNATURE_SECRET`**: All requests pass through
|
94
105
|
- **With `AB_JWT_SIGNATURE_SECRET`**: Requires valid JWT bearer token using HS256 algorithm
|
95
106
|
|
96
107
|
## OpenAPI Specification
|
@@ -98,6 +109,7 @@ curl -H "Authorization: Bearer <your-jwt-token>" \
|
|
98
109
|
The manifest server provides an OpenAPI specification for API client generation:
|
99
110
|
|
100
111
|
### Generating the OpenAPI Spec
|
112
|
+
|
101
113
|
```bash
|
102
114
|
# Generate OpenAPI YAML (default location)
|
103
115
|
manifest-server generate-openapi
|
@@ -107,6 +119,7 @@ manifest-server generate-openapi --output /path/to/openapi.yaml
|
|
107
119
|
```
|
108
120
|
|
109
121
|
The generated OpenAPI specification is consumed by other applications and tools to:
|
122
|
+
|
110
123
|
- Generate API clients in various programming languages
|
111
124
|
- Create SDK bindings for the manifest server
|
112
125
|
- Provide API documentation and validation
|
@@ -115,6 +128,7 @@ The generated OpenAPI specification is consumed by other applications and tools
|
|
115
128
|
### Interactive API Documentation
|
116
129
|
|
117
130
|
When running, interactive API documentation is available at:
|
131
|
+
|
118
132
|
- Swagger UI: `http://localhost:8000/docs`
|
119
133
|
- ReDoc: `http://localhost:8000/redoc`
|
120
134
|
|
@@ -139,4 +153,26 @@ docker build -f airbyte_cdk/manifest_server/Dockerfile -t manifest-server .
|
|
139
153
|
docker run -p 8080:8080 manifest-server
|
140
154
|
```
|
141
155
|
|
142
|
-
Note: The container runs on port 8080 by default.
|
156
|
+
Note: The container runs on port 8080 by default.
|
157
|
+
|
158
|
+
## Datadog APM
|
159
|
+
|
160
|
+
The manifest server supports Datadog APM tracing for monitoring and observability:
|
161
|
+
|
162
|
+
### Configuration
|
163
|
+
|
164
|
+
To enable Datadog tracing, set the environment variable:
|
165
|
+
|
166
|
+
```bash
|
167
|
+
export DD_ENABLED=true
|
168
|
+
```
|
169
|
+
|
170
|
+
This requires the `ddtrace` dependency, which is included in the `manifest-server` extra. For additional configuration options via environment variables, see [ddtrace configuration](https://ddtrace.readthedocs.io/en/stable/configuration.html).
|
171
|
+
|
172
|
+
### Usage
|
173
|
+
|
174
|
+
```bash
|
175
|
+
# Run with Datadog tracing enabled
|
176
|
+
DD_ENABLED=true manifest-server start
|
177
|
+
```
|
178
|
+
|
@@ -61,7 +61,7 @@ paths:
|
|
61
61
|
content:
|
62
62
|
application/json:
|
63
63
|
schema:
|
64
|
-
$ref: '#/components/schemas/
|
64
|
+
$ref: '#/components/schemas/StreamReadResponse'
|
65
65
|
'422':
|
66
66
|
description: Validation Error
|
67
67
|
content:
|
@@ -159,12 +159,13 @@ paths:
|
|
159
159
|
tags:
|
160
160
|
- manifest
|
161
161
|
summary: Full Resolve
|
162
|
-
description: 'Fully resolve a manifest including dynamic streams.
|
162
|
+
description: 'Fully resolve a manifest, including dynamic streams.
|
163
163
|
|
164
164
|
|
165
|
-
|
166
|
-
|
167
|
-
|
165
|
+
This is a similar operation to resolve, but has an extra step which generates
|
166
|
+
streams from dynamic stream templates if the manifest contains any. This is
|
167
|
+
used when a user clicks the generate streams button on a stream template in
|
168
|
+
the Builder UI'
|
168
169
|
operationId: fullResolve
|
169
170
|
requestBody:
|
170
171
|
content:
|
@@ -465,7 +466,26 @@ components:
|
|
465
466
|
- manifest
|
466
467
|
title: ResolveRequest
|
467
468
|
description: Request to resolve a manifest.
|
468
|
-
|
469
|
+
StreamReadPages:
|
470
|
+
properties:
|
471
|
+
records:
|
472
|
+
items: {}
|
473
|
+
type: array
|
474
|
+
title: Records
|
475
|
+
request:
|
476
|
+
anyOf:
|
477
|
+
- $ref: '#/components/schemas/HttpRequest'
|
478
|
+
- type: 'null'
|
479
|
+
response:
|
480
|
+
anyOf:
|
481
|
+
- $ref: '#/components/schemas/HttpResponse'
|
482
|
+
- type: 'null'
|
483
|
+
type: object
|
484
|
+
required:
|
485
|
+
- records
|
486
|
+
title: StreamReadPages
|
487
|
+
description: Pages of data read from a stream slice.
|
488
|
+
StreamReadResponse:
|
469
489
|
properties:
|
470
490
|
logs:
|
471
491
|
items:
|
@@ -511,27 +531,8 @@ components:
|
|
511
531
|
- inferred_schema
|
512
532
|
- inferred_datetime_formats
|
513
533
|
- latest_config_update
|
514
|
-
title:
|
534
|
+
title: StreamReadResponse
|
515
535
|
description: Complete stream read response with properly typed fields.
|
516
|
-
StreamReadPages:
|
517
|
-
properties:
|
518
|
-
records:
|
519
|
-
items: {}
|
520
|
-
type: array
|
521
|
-
title: Records
|
522
|
-
request:
|
523
|
-
anyOf:
|
524
|
-
- $ref: '#/components/schemas/HttpRequest'
|
525
|
-
- type: 'null'
|
526
|
-
response:
|
527
|
-
anyOf:
|
528
|
-
- $ref: '#/components/schemas/HttpResponse'
|
529
|
-
- type: 'null'
|
530
|
-
type: object
|
531
|
-
required:
|
532
|
-
- records
|
533
|
-
title: StreamReadPages
|
534
|
-
description: Pages of data read from a stream slice.
|
535
536
|
StreamReadSlices:
|
536
537
|
properties:
|
537
538
|
pages:
|
@@ -577,7 +578,6 @@ components:
|
|
577
578
|
items: {}
|
578
579
|
type: array
|
579
580
|
title: State
|
580
|
-
default: []
|
581
581
|
custom_components_code:
|
582
582
|
anyOf:
|
583
583
|
- type: string
|
@@ -149,6 +149,7 @@ class CartesianProductStreamSlicer(PartitionRouter):
|
|
149
149
|
for stream_slice_tuple in product:
|
150
150
|
partition = dict(ChainMap(*[s.partition for s in stream_slice_tuple])) # type: ignore # ChainMap expects a MutableMapping[Never, Never] for reasons
|
151
151
|
cursor_slices = [s.cursor_slice for s in stream_slice_tuple if s.cursor_slice]
|
152
|
+
extra_fields = dict(ChainMap(*[s.extra_fields for s in stream_slice_tuple])) # type: ignore # ChainMap expects a MutableMapping[Never, Never] for reasons
|
152
153
|
if len(cursor_slices) > 1:
|
153
154
|
raise ValueError(
|
154
155
|
f"There should only be a single cursor slice. Found {cursor_slices}"
|
@@ -157,7 +158,9 @@ class CartesianProductStreamSlicer(PartitionRouter):
|
|
157
158
|
cursor_slice = cursor_slices[0]
|
158
159
|
else:
|
159
160
|
cursor_slice = {}
|
160
|
-
yield StreamSlice(
|
161
|
+
yield StreamSlice(
|
162
|
+
partition=partition, cursor_slice=cursor_slice, extra_fields=extra_fields
|
163
|
+
)
|
161
164
|
|
162
165
|
def set_initial_state(self, stream_state: StreamState) -> None:
|
163
166
|
"""
|
@@ -14,10 +14,21 @@ from airbyte_cdk.sources.streams.concurrent.partitions.stream_slicer import Stre
|
|
14
14
|
from airbyte_cdk.sources.types import Record, StreamSlice
|
15
15
|
from airbyte_cdk.utils.slice_hasher import SliceHasher
|
16
16
|
|
17
|
+
|
17
18
|
# For Connector Builder test read operations, we track the total number of records
|
18
|
-
# read for the stream
|
19
|
-
|
20
|
-
|
19
|
+
# read for the stream so that we can stop reading early if we exceed the record limit.
|
20
|
+
class RecordCounter:
|
21
|
+
def __init__(self) -> None:
|
22
|
+
self.total_record_counter = 0
|
23
|
+
|
24
|
+
def increment(self) -> None:
|
25
|
+
self.total_record_counter += 1
|
26
|
+
|
27
|
+
def reset(self) -> None:
|
28
|
+
self.total_record_counter = 0
|
29
|
+
|
30
|
+
def get_total_records(self) -> int:
|
31
|
+
return self.total_record_counter
|
21
32
|
|
22
33
|
|
23
34
|
class SchemaLoaderCachingDecorator(SchemaLoader):
|
@@ -51,6 +62,7 @@ class DeclarativePartitionFactory:
|
|
51
62
|
self._retriever = retriever
|
52
63
|
self._message_repository = message_repository
|
53
64
|
self._max_records_limit = max_records_limit
|
65
|
+
self._record_counter = RecordCounter()
|
54
66
|
|
55
67
|
def create(self, stream_slice: StreamSlice) -> Partition:
|
56
68
|
return DeclarativePartition(
|
@@ -60,6 +72,7 @@ class DeclarativePartitionFactory:
|
|
60
72
|
message_repository=self._message_repository,
|
61
73
|
max_records_limit=self._max_records_limit,
|
62
74
|
stream_slice=stream_slice,
|
75
|
+
record_counter=self._record_counter,
|
63
76
|
)
|
64
77
|
|
65
78
|
|
@@ -72,6 +85,7 @@ class DeclarativePartition(Partition):
|
|
72
85
|
message_repository: MessageRepository,
|
73
86
|
max_records_limit: Optional[int],
|
74
87
|
stream_slice: StreamSlice,
|
88
|
+
record_counter: RecordCounter,
|
75
89
|
):
|
76
90
|
self._stream_name = stream_name
|
77
91
|
self._schema_loader = schema_loader
|
@@ -80,17 +94,17 @@ class DeclarativePartition(Partition):
|
|
80
94
|
self._max_records_limit = max_records_limit
|
81
95
|
self._stream_slice = stream_slice
|
82
96
|
self._hash = SliceHasher.hash(self._stream_name, self._stream_slice)
|
97
|
+
self._record_counter = record_counter
|
83
98
|
|
84
99
|
def read(self) -> Iterable[Record]:
|
85
100
|
if self._max_records_limit is not None:
|
86
|
-
|
87
|
-
if total_record_counter >= self._max_records_limit:
|
101
|
+
if self._record_counter.get_total_records() >= self._max_records_limit:
|
88
102
|
return
|
89
103
|
for stream_data in self._retriever.read_records(
|
90
104
|
self._schema_loader.get_json_schema(), self._stream_slice
|
91
105
|
):
|
92
106
|
if self._max_records_limit is not None:
|
93
|
-
if
|
107
|
+
if self._record_counter.get_total_records() >= self._max_records_limit:
|
94
108
|
break
|
95
109
|
|
96
110
|
if isinstance(stream_data, Mapping):
|
@@ -108,7 +122,7 @@ class DeclarativePartition(Partition):
|
|
108
122
|
self._message_repository.emit_message(stream_data)
|
109
123
|
|
110
124
|
if self._max_records_limit is not None:
|
111
|
-
|
125
|
+
self._record_counter.increment()
|
112
126
|
|
113
127
|
def to_slice(self) -> Optional[Mapping[str, Any]]:
|
114
128
|
return self._stream_slice
|
@@ -118,9 +118,9 @@ class ExcelParser(FileTypeParser):
|
|
118
118
|
# DataFrame.to_dict() method returns datetime values in pandas.Timestamp values, which are not serializable by orjson
|
119
119
|
# DataFrame.to_json() returns string with datetime values serialized to iso8601 with microseconds to align with pydantic behavior
|
120
120
|
# see PR description: https://github.com/airbytehq/airbyte/pull/44444/
|
121
|
-
|
122
|
-
|
123
|
-
|
121
|
+
yield from orjson.loads(
|
122
|
+
df.to_json(orient="records", date_format="iso", date_unit="us")
|
123
|
+
)
|
124
124
|
|
125
125
|
except Exception as exc:
|
126
126
|
# Raise a RecordParseError if any exception occurs during parsing
|
@@ -1,13 +1,13 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: airbyte-cdk
|
3
|
-
Version: 6.61.
|
3
|
+
Version: 6.61.5
|
4
4
|
Summary: A framework for writing Airbyte Connectors.
|
5
5
|
Home-page: https://airbyte.com
|
6
6
|
License: MIT
|
7
7
|
Keywords: airbyte,connector-development-kit,cdk
|
8
8
|
Author: Airbyte
|
9
9
|
Author-email: contact@airbyte.io
|
10
|
-
Requires-Python: >=3.10,<3.
|
10
|
+
Requires-Python: >=3.10,<3.14
|
11
11
|
Classifier: Development Status :: 3 - Alpha
|
12
12
|
Classifier: Intended Audience :: Developers
|
13
13
|
Classifier: License :: OSI Approved :: MIT License
|
@@ -15,6 +15,7 @@ Classifier: Programming Language :: Python :: 3
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.10
|
16
16
|
Classifier: Programming Language :: Python :: 3.11
|
17
17
|
Classifier: Programming Language :: Python :: 3.12
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
18
19
|
Classifier: Topic :: Scientific/Engineering
|
19
20
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
20
21
|
Provides-Extra: dev
|
@@ -31,13 +32,14 @@ Requires-Dist: backoff
|
|
31
32
|
Requires-Dist: boltons (>=25.0.0,<26.0.0)
|
32
33
|
Requires-Dist: cachetools
|
33
34
|
Requires-Dist: click (>=8.1.8,<9.0.0)
|
34
|
-
Requires-Dist: cohere (
|
35
|
+
Requires-Dist: cohere (>=4.21,<6.0.0) ; extra == "vector-db-based"
|
35
36
|
Requires-Dist: cryptography (>=44.0.0,<45.0.0)
|
36
37
|
Requires-Dist: dateparser (>=1.2.2,<2.0.0)
|
38
|
+
Requires-Dist: ddtrace (>=3.12.3,<4.0.0) ; extra == "manifest-server"
|
37
39
|
Requires-Dist: dpath (>=2.1.6,<3.0.0)
|
38
40
|
Requires-Dist: dunamai (>=1.22.0,<2.0.0)
|
39
41
|
Requires-Dist: fastapi (>=0.116.1) ; extra == "manifest-server"
|
40
|
-
Requires-Dist: fastavro (>=1.
|
42
|
+
Requires-Dist: fastavro (>=1.11.0,<2.0.0) ; extra == "file-based"
|
41
43
|
Requires-Dist: genson (==1.3.0)
|
42
44
|
Requires-Dist: google-cloud-secret-manager (>=2.17.0,<3.0.0)
|
43
45
|
Requires-Dist: isodate (>=0.6.1,<0.7.0)
|
@@ -51,7 +53,7 @@ Requires-Dist: numpy (<2)
|
|
51
53
|
Requires-Dist: openai[embeddings] (==0.27.9) ; extra == "vector-db-based"
|
52
54
|
Requires-Dist: orjson (>=3.10.7,<4.0.0)
|
53
55
|
Requires-Dist: packaging
|
54
|
-
Requires-Dist: pandas (==2.2.
|
56
|
+
Requires-Dist: pandas (==2.2.3)
|
55
57
|
Requires-Dist: pdf2image (==1.16.3) ; extra == "file-based"
|
56
58
|
Requires-Dist: pdfminer.six (==20221105) ; extra == "file-based"
|
57
59
|
Requires-Dist: psutil (==6.1.0)
|
@@ -56,26 +56,26 @@ airbyte_cdk/manifest_migrations/migrations/http_requester_url_base_to_url.py,sha
|
|
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
58
|
airbyte_cdk/manifest_server/Dockerfile,sha256=hNgnUguE9jA5XFkpLmzvbsQbsZTuwOxJgE7qYNkPueo,1316
|
59
|
-
airbyte_cdk/manifest_server/README.md,sha256=
|
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
|
62
62
|
airbyte_cdk/manifest_server/api_models/capabilities.py,sha256=eL88UxojIewHt97wMeCvyt92Hzh95UvLvVH6MSlsj5o,152
|
63
63
|
airbyte_cdk/manifest_server/api_models/dicts.py,sha256=Rm10IeV745MY8bLyrYyG7a9NGNrZBlnfkXct8gi7OTI,467
|
64
64
|
airbyte_cdk/manifest_server/api_models/manifest.py,sha256=cqxA4hU7Q29R8w6fqRDxtM7bVcFcADU2eQXZYKbib3M,1673
|
65
65
|
airbyte_cdk/manifest_server/api_models/stream.py,sha256=Jtz4TbqLf6Xbnu1KtTEQhzi_1rqClB2n22pueK8xgrI,2001
|
66
|
-
airbyte_cdk/manifest_server/app.py,sha256=
|
66
|
+
airbyte_cdk/manifest_server/app.py,sha256=RrjV73qx_PBoYoO_IAxDNV5v-UZNwjSG4muxZ4kiMj8,602
|
67
67
|
airbyte_cdk/manifest_server/auth.py,sha256=kKET6zg4olyf8p_UMcTnm7vkAtowxK6loSf8o83SdEM,1264
|
68
68
|
airbyte_cdk/manifest_server/cli/__init__.py,sha256=YfCEfXq3Jr7z3GOKMA6vF-D-7Y66BNHUwBLNM9UQbiQ,273
|
69
|
-
airbyte_cdk/manifest_server/cli/_common.py,sha256=
|
69
|
+
airbyte_cdk/manifest_server/cli/_common.py,sha256=_dV7Lq30-MFDAw4feNKJDnQkAaNpPnuHm4xcGJb9SvE,832
|
70
70
|
airbyte_cdk/manifest_server/cli/_info.py,sha256=-h8U1bSD1umqLuoXfg4yDNWFR1BZuxcXxLhVKfLWB0Y,982
|
71
71
|
airbyte_cdk/manifest_server/cli/_openapi.py,sha256=rNghqbBMMT118auUIsxr89Mu6L6hqoQAifxyDbv1ZqQ,1445
|
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=
|
75
|
+
airbyte_cdk/manifest_server/command_processor/processor.py,sha256=_YNJdP3H9IP_26m1S6j-ZfVK-EC9YppAV-Degd7yll0,3829
|
76
76
|
airbyte_cdk/manifest_server/command_processor/utils.py,sha256=f_CkN2nURTTp07Twr9vZfFj5j-jTFtezoOUu2i402W4,3221
|
77
77
|
airbyte_cdk/manifest_server/main.py,sha256=iSgL7x8ifBpGpXi7Dq7017QjeC20l_CYBAIsumiyJn0,573
|
78
|
-
airbyte_cdk/manifest_server/openapi.yaml,sha256=
|
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
|
@@ -173,7 +173,7 @@ airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py,sha256=pJ
|
|
173
173
|
airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py,sha256=BTJ9CtBOukVrOhgkxejbXjpDvLgMVDt6nseR8K2k3xo,186944
|
174
174
|
airbyte_cdk/sources/declarative/partition_routers/__init__.py,sha256=TBC9AkGaUqHm2IKHMPN6punBIcY5tWGULowcLoAVkfw,1109
|
175
175
|
airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py,sha256=VelO7zKqKtzMJ35jyFeg0ypJLQC0plqqIBNXoBW1G2E,3001
|
176
|
-
airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py,sha256=
|
176
|
+
airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py,sha256=mPCtBpxBVM_TbLZI2qexlQuayhz1JLZM3-92boHm8JI,7116
|
177
177
|
airbyte_cdk/sources/declarative/partition_routers/grouping_partition_router.py,sha256=-W1CAg2NayCMDNj7QLWn7Nqipaz7av9sLjbMnyMGUek,6271
|
178
178
|
airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py,sha256=tmGGpMoOBmaMfhVZq53AEWxoHm2lmNVi6hA2_IVEnAA,4882
|
179
179
|
airbyte_cdk/sources/declarative/partition_routers/partition_router.py,sha256=YyEIzdmLd1FjbVP3QbQ2VFCLW_P-OGbVh6VpZShp54k,2218
|
@@ -249,7 +249,7 @@ airbyte_cdk/sources/declarative/schema/schema_loader.py,sha256=kjt8v0N5wWKA5zyLn
|
|
249
249
|
airbyte_cdk/sources/declarative/spec/__init__.py,sha256=9FYO-fVOclrwjAW4qwRTbZRVopTc9rOaauAJfThdNCQ,177
|
250
250
|
airbyte_cdk/sources/declarative/spec/spec.py,sha256=SwL_pfXZgcLYLJY-MAeFMHug9oYh2tOWjgG0C3DoLOY,3602
|
251
251
|
airbyte_cdk/sources/declarative/stream_slicers/__init__.py,sha256=UX-cP_C-9FIFFPL9z8nuxu_rglssRsMOqQmQHN8FLB8,341
|
252
|
-
airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py,sha256=
|
252
|
+
airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py,sha256=LLr5U_6UI3zp4i9gvP8dawIcdE-UYTSa-B0l5qkDW3Q,6161
|
253
253
|
airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py,sha256=SOkIPBi2Wu7yxIvA15yFzUAB95a3IzA8LPq5DEqHQQc,725
|
254
254
|
airbyte_cdk/sources/declarative/stream_slicers/stream_slicer_test_read_decorator.py,sha256=4vit5ADyhoZnd1psRVeM5jdySYzhjwspLVXxh8vt1M8,944
|
255
255
|
airbyte_cdk/sources/declarative/transformations/__init__.py,sha256=CPJ8TlMpiUmvG3624VYu_NfTzxwKcfBjM2Q2wJ7fkSA,919
|
@@ -300,7 +300,7 @@ airbyte_cdk/sources/file_based/file_record_data.py,sha256=Vkr5AyZzlsOezjVCLhFrm_
|
|
300
300
|
airbyte_cdk/sources/file_based/file_types/__init__.py,sha256=blCLn0-2LC-ZdgcNyDEhqM2RiUvEjEBh-G4-t32ZtuM,1268
|
301
301
|
airbyte_cdk/sources/file_based/file_types/avro_parser.py,sha256=USEYqiICXBWpDV443VtNOCmUA-GINzY_Zah74_5w3qQ,10860
|
302
302
|
airbyte_cdk/sources/file_based/file_types/csv_parser.py,sha256=QlCXB-ry3np67Q_VerQEPoWDOTcPTB6Go4ydZxY9ae4,20445
|
303
|
-
airbyte_cdk/sources/file_based/file_types/excel_parser.py,sha256=
|
303
|
+
airbyte_cdk/sources/file_based/file_types/excel_parser.py,sha256=BeplCq0hmojELU6bZCvvpRLpQ9us81TqbGYwrhd3INo,7188
|
304
304
|
airbyte_cdk/sources/file_based/file_types/file_transfer.py,sha256=5l2Jo6bp6neDmgM427PrZMZeqU0hCIZVWnzUZ_7BT10,1100
|
305
305
|
airbyte_cdk/sources/file_based/file_types/file_type_parser.py,sha256=JgpH21PrbRqwK92BJklZWvh2TndA6xZ-eP1LPMo44oQ,2832
|
306
306
|
airbyte_cdk/sources/file_based/file_types/jsonl_parser.py,sha256=GwyNyxmST4RX-XpXy7xVH0D-znYWWBmGv_pVAu95oHQ,5886
|
@@ -454,9 +454,9 @@ airbyte_cdk/utils/slice_hasher.py,sha256=EDxgROHDbfG-QKQb59m7h_7crN1tRiawdf5uU7G
|
|
454
454
|
airbyte_cdk/utils/spec_schema_transformations.py,sha256=-5HTuNsnDBAhj-oLeQXwpTGA0HdcjFOf2zTEMUTTg_Y,816
|
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.5.dist-info/LICENSE.txt,sha256=Wfe61S4BaGPj404v8lrAbvhjYR68SHlkzeYrg3_bbuM,1051
|
458
|
+
airbyte_cdk-6.61.5.dist-info/LICENSE_SHORT,sha256=aqF6D1NcESmpn-cqsxBtszTEnHKnlsp8L4x9wAh3Nxg,55
|
459
|
+
airbyte_cdk-6.61.5.dist-info/METADATA,sha256=zlQaW0NJTYCeg64XINJttXW9XxgcRjeCy0Rc-OfEDKQ,6765
|
460
|
+
airbyte_cdk-6.61.5.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
461
|
+
airbyte_cdk-6.61.5.dist-info/entry_points.txt,sha256=eLZ2UYvJZGm1s07Pplcs--1Gim60YhZWTb53j_dghwU,195
|
462
|
+
airbyte_cdk-6.61.5.dist-info/RECORD,,
|
{airbyte_cdk-6.61.3.post2.dev17299502224.dist-info → airbyte_cdk-6.61.5.dist-info}/LICENSE.txt
RENAMED
File without changes
|
{airbyte_cdk-6.61.3.post2.dev17299502224.dist-info → airbyte_cdk-6.61.5.dist-info}/LICENSE_SHORT
RENAMED
File without changes
|
File without changes
|
{airbyte_cdk-6.61.3.post2.dev17299502224.dist-info → airbyte_cdk-6.61.5.dist-info}/entry_points.txt
RENAMED
File without changes
|