airbyte-cdk 6.53.1__py3-none-any.whl → 6.54.0__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_migrations/README.md +2 -1
- airbyte_cdk/manifest_migrations/migration_handler.py +31 -14
- airbyte_cdk/manifest_migrations/migrations/__init__.py +15 -0
- airbyte_cdk/manifest_migrations/migrations/registry.yaml +1 -1
- {airbyte_cdk-6.53.1.dist-info → airbyte_cdk-6.54.0.dist-info}/METADATA +1 -1
- {airbyte_cdk-6.53.1.dist-info → airbyte_cdk-6.54.0.dist-info}/RECORD +10 -10
- {airbyte_cdk-6.53.1.dist-info → airbyte_cdk-6.54.0.dist-info}/LICENSE.txt +0 -0
- {airbyte_cdk-6.53.1.dist-info → airbyte_cdk-6.54.0.dist-info}/LICENSE_SHORT +0 -0
- {airbyte_cdk-6.53.1.dist-info → airbyte_cdk-6.54.0.dist-info}/WHEEL +0 -0
- {airbyte_cdk-6.53.1.dist-info → airbyte_cdk-6.54.0.dist-info}/entry_points.txt +0 -0
@@ -20,7 +20,8 @@ This directory contains the logic and registry for manifest migrations in the Ai
|
|
20
20
|
|
21
21
|
3. **Register the Migration:**
|
22
22
|
- Open `migrations/registry.yaml`.
|
23
|
-
- Add an entry under the appropriate version, or create a new version section if needed.
|
23
|
+
- Add an entry under the appropriate version, or create a new version section if needed.
|
24
|
+
- Version can be: "*", "==6.48.3", "~=1.2", ">=1.0.0,<2.0.0", "6.48.3"
|
24
25
|
- Each migration entry should include:
|
25
26
|
- `name`: The filename (without `.py`)
|
26
27
|
- `order`: The order in which this migration should be applied for the version
|
@@ -5,9 +5,11 @@
|
|
5
5
|
|
6
6
|
import copy
|
7
7
|
import logging
|
8
|
+
import re
|
8
9
|
from datetime import datetime, timezone
|
9
|
-
from typing import Type
|
10
|
+
from typing import Tuple, Type
|
10
11
|
|
12
|
+
from packaging.specifiers import SpecifierSet
|
11
13
|
from packaging.version import Version
|
12
14
|
|
13
15
|
from airbyte_cdk.manifest_migrations.exceptions import (
|
@@ -25,7 +27,7 @@ from airbyte_cdk.manifest_migrations.migrations_registry import (
|
|
25
27
|
METADATA_TAG = "metadata"
|
26
28
|
MANIFEST_VERSION_TAG = "version"
|
27
29
|
APPLIED_MIGRATIONS_TAG = "applied_migrations"
|
28
|
-
|
30
|
+
WILDCARD_VERSION_PATTERN = ".*"
|
29
31
|
LOGGER = logging.getLogger("airbyte.cdk.manifest_migrations")
|
30
32
|
|
31
33
|
|
@@ -77,11 +79,14 @@ class ManifestMigrationHandler:
|
|
77
79
|
"""
|
78
80
|
try:
|
79
81
|
migration_instance = migration_class()
|
80
|
-
|
82
|
+
can_apply_migration, should_bump_version = self._version_is_valid_for_migration(
|
83
|
+
manifest_version, migration_version
|
84
|
+
)
|
85
|
+
if can_apply_migration:
|
81
86
|
migration_instance._process_manifest(self._migrated_manifest)
|
82
87
|
if migration_instance.is_migrated:
|
83
|
-
|
84
|
-
|
88
|
+
if should_bump_version:
|
89
|
+
self._set_manifest_version(migration_version)
|
85
90
|
self._set_migration_trace(migration_class, manifest_version, migration_version)
|
86
91
|
else:
|
87
92
|
LOGGER.info(
|
@@ -112,18 +117,30 @@ class ManifestMigrationHandler:
|
|
112
117
|
self,
|
113
118
|
manifest_version: str,
|
114
119
|
migration_version: str,
|
115
|
-
) -> bool:
|
120
|
+
) -> Tuple[bool, bool]:
|
121
|
+
"""
|
122
|
+
Decide whether *manifest_version* satisfies the *migration_version* rule.
|
123
|
+
|
124
|
+
Rules
|
125
|
+
-----
|
126
|
+
1. ``"*"``
|
127
|
+
– Wildcard: anything matches.
|
128
|
+
2. String starts with a PEP 440 operator (``==``, ``!=``, ``<=``, ``>=``,
|
129
|
+
``<``, ``>``, ``~=``, etc.)
|
130
|
+
– Treat *migration_version* as a SpecifierSet and test the manifest
|
131
|
+
version against it.
|
132
|
+
3. Plain version
|
133
|
+
– Interpret both strings as concrete versions and return
|
134
|
+
``manifest_version <= migration_version``.
|
116
135
|
"""
|
117
|
-
|
136
|
+
if re.match(WILDCARD_VERSION_PATTERN, migration_version):
|
137
|
+
return True, False
|
118
138
|
|
119
|
-
|
120
|
-
|
121
|
-
|
139
|
+
if migration_version.startswith(("=", "!", ">", "<", "~")):
|
140
|
+
spec = SpecifierSet(migration_version)
|
141
|
+
return spec.contains(Version(manifest_version)), False
|
122
142
|
|
123
|
-
|
124
|
-
bool: True if the manifest version is less than or equal to the migration version, False otherwise.
|
125
|
-
"""
|
126
|
-
return Version(manifest_version) <= Version(migration_version)
|
143
|
+
return Version(manifest_version) <= Version(migration_version), True
|
127
144
|
|
128
145
|
def _set_manifest_version(self, version: str) -> None:
|
129
146
|
"""
|
@@ -2,3 +2,18 @@
|
|
2
2
|
# Copyright (c) 2025 Airbyte, Inc., all rights reserved.
|
3
3
|
#
|
4
4
|
|
5
|
+
from airbyte_cdk.manifest_migrations.migrations.http_requester_path_to_url import (
|
6
|
+
HttpRequesterPathToUrl,
|
7
|
+
)
|
8
|
+
from airbyte_cdk.manifest_migrations.migrations.http_requester_request_body_json_data_to_request_body import (
|
9
|
+
HttpRequesterRequestBodyJsonDataToRequestBody,
|
10
|
+
)
|
11
|
+
from airbyte_cdk.manifest_migrations.migrations.http_requester_url_base_to_url import (
|
12
|
+
HttpRequesterUrlBaseToUrl,
|
13
|
+
)
|
14
|
+
|
15
|
+
__all__ = [
|
16
|
+
"HttpRequesterPathToUrl",
|
17
|
+
"HttpRequesterRequestBodyJsonDataToRequestBody",
|
18
|
+
"HttpRequesterUrlBaseToUrl",
|
19
|
+
]
|
@@ -36,16 +36,16 @@ airbyte_cdk/destinations/vector_db_based/writer.py,sha256=nZ00xPiohElJmYktEZZIhr
|
|
36
36
|
airbyte_cdk/entrypoint.py,sha256=R2kAsAnCAI7eZCctQpMCImLhFFwo7PniJVA0e7RhJVI,19774
|
37
37
|
airbyte_cdk/exception_handler.py,sha256=D_doVl3Dt60ASXlJsfviOCswxGyKF2q0RL6rif3fNks,2013
|
38
38
|
airbyte_cdk/logger.py,sha256=1cURbvawbunCAV178q-XhTHcbAQZTSf07WhU7U9AXWU,3744
|
39
|
-
airbyte_cdk/manifest_migrations/README.md,sha256=
|
39
|
+
airbyte_cdk/manifest_migrations/README.md,sha256=4v7BSW3Lkx7HdsKPP3IevfvdFbDCn5fekl-GxOGrWK0,3020
|
40
40
|
airbyte_cdk/manifest_migrations/__init__.py,sha256=0eq9ic_6GGXMwzE31eAOSA7PLtBauMfgM9XshjYHF84,61
|
41
41
|
airbyte_cdk/manifest_migrations/exceptions.py,sha256=mmMZaCVEkYSGykVL5jKA0xsDWWkybRdQwnh9pGb7VG0,300
|
42
42
|
airbyte_cdk/manifest_migrations/manifest_migration.py,sha256=4ohLfbj2PeuPSgCMVbCArb0d-YdaZIllX4ieXQNiRRw,4420
|
43
|
-
airbyte_cdk/manifest_migrations/migration_handler.py,sha256=
|
44
|
-
airbyte_cdk/manifest_migrations/migrations/__init__.py,sha256=
|
43
|
+
airbyte_cdk/manifest_migrations/migration_handler.py,sha256=xVTvGoSsTpSLd2mOXHL_D0MxQMGuumiAqW-YWJYfQdY,6716
|
44
|
+
airbyte_cdk/manifest_migrations/migrations/__init__.py,sha256=HRN7fMMbTuM9W1vmycmw9GrXAHH2DYOaYKl3k3p98tw,592
|
45
45
|
airbyte_cdk/manifest_migrations/migrations/http_requester_path_to_url.py,sha256=IIn2SjRh1v2yaSBFUCDyBHpX6mBhlckhvbsSg55mREI,2153
|
46
46
|
airbyte_cdk/manifest_migrations/migrations/http_requester_request_body_json_data_to_request_body.py,sha256=4nX0oUcFytjpCFnz-oEf4JpeROP7_NBOEX9gCKFoBgg,2726
|
47
47
|
airbyte_cdk/manifest_migrations/migrations/http_requester_url_base_to_url.py,sha256=EX1MVYVpoWypA28qoH48wA0SYZjGdlR8bcSixTDzfgo,1346
|
48
|
-
airbyte_cdk/manifest_migrations/migrations/registry.yaml,sha256=
|
48
|
+
airbyte_cdk/manifest_migrations/migrations/registry.yaml,sha256=SITcsFFf0avFYZzEb4X2K4W_lXAHrXry9qoEhEVFQvg,957
|
49
49
|
airbyte_cdk/manifest_migrations/migrations_registry.py,sha256=zly2fwaOxDukqC7eowzrDlvhA2v71FjW74kDzvRXhSY,2619
|
50
50
|
airbyte_cdk/models/__init__.py,sha256=Et9wJWs5VOWynGbb-3aJRhsdAHAiLkNNLxdwqJAuqkw,2114
|
51
51
|
airbyte_cdk/models/airbyte_protocol.py,sha256=oZdKsZ7yPjUt9hvxdWNpxCtgjSV2RWhf4R9Np03sqyY,3613
|
@@ -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.
|
424
|
-
airbyte_cdk-6.
|
425
|
-
airbyte_cdk-6.
|
426
|
-
airbyte_cdk-6.
|
427
|
-
airbyte_cdk-6.
|
428
|
-
airbyte_cdk-6.
|
423
|
+
airbyte_cdk-6.54.0.dist-info/LICENSE.txt,sha256=Wfe61S4BaGPj404v8lrAbvhjYR68SHlkzeYrg3_bbuM,1051
|
424
|
+
airbyte_cdk-6.54.0.dist-info/LICENSE_SHORT,sha256=aqF6D1NcESmpn-cqsxBtszTEnHKnlsp8L4x9wAh3Nxg,55
|
425
|
+
airbyte_cdk-6.54.0.dist-info/METADATA,sha256=d-JRhFTjNBw-ZxhtEXsXZE1OVMPuxLLfzBHNCVFrD0Y,6343
|
426
|
+
airbyte_cdk-6.54.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
427
|
+
airbyte_cdk-6.54.0.dist-info/entry_points.txt,sha256=AKWbEkHfpzzk9nF9tqBUaw1MbvTM4mGtEzmZQm0ZWvM,139
|
428
|
+
airbyte_cdk-6.54.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|