apache-airflow-providers-microsoft-azure 12.7.1__py3-none-any.whl → 12.8.1__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.
Files changed (46) hide show
  1. airflow/providers/microsoft/azure/__init__.py +1 -1
  2. airflow/providers/microsoft/azure/fs/adls.py +1 -1
  3. airflow/providers/microsoft/azure/fs/msgraph.py +111 -0
  4. airflow/providers/microsoft/azure/get_provider_info.py +12 -2
  5. airflow/providers/microsoft/azure/hooks/adx.py +1 -1
  6. airflow/providers/microsoft/azure/hooks/asb.py +1 -1
  7. airflow/providers/microsoft/azure/hooks/base_azure.py +93 -17
  8. airflow/providers/microsoft/azure/hooks/batch.py +1 -1
  9. airflow/providers/microsoft/azure/hooks/container_registry.py +1 -1
  10. airflow/providers/microsoft/azure/hooks/container_volume.py +1 -1
  11. airflow/providers/microsoft/azure/hooks/cosmos.py +1 -1
  12. airflow/providers/microsoft/azure/hooks/data_factory.py +2 -5
  13. airflow/providers/microsoft/azure/hooks/data_lake.py +1 -1
  14. airflow/providers/microsoft/azure/hooks/fileshare.py +1 -1
  15. airflow/providers/microsoft/azure/hooks/msgraph.py +3 -2
  16. airflow/providers/microsoft/azure/hooks/synapse.py +1 -1
  17. airflow/providers/microsoft/azure/hooks/wasb.py +1 -1
  18. airflow/providers/microsoft/azure/operators/adls.py +1 -1
  19. airflow/providers/microsoft/azure/operators/adx.py +1 -1
  20. airflow/providers/microsoft/azure/operators/asb.py +1 -1
  21. airflow/providers/microsoft/azure/operators/batch.py +1 -1
  22. airflow/providers/microsoft/azure/operators/container_instances.py +1 -1
  23. airflow/providers/microsoft/azure/operators/cosmos.py +1 -1
  24. airflow/providers/microsoft/azure/operators/data_factory.py +1 -13
  25. airflow/providers/microsoft/azure/operators/msgraph.py +1 -1
  26. airflow/providers/microsoft/azure/operators/powerbi.py +1 -4
  27. airflow/providers/microsoft/azure/operators/synapse.py +1 -13
  28. airflow/providers/microsoft/azure/operators/wasb_delete_blob.py +1 -1
  29. airflow/providers/microsoft/azure/sensors/cosmos.py +1 -6
  30. airflow/providers/microsoft/azure/sensors/data_factory.py +1 -6
  31. airflow/providers/microsoft/azure/sensors/msgraph.py +1 -1
  32. airflow/providers/microsoft/azure/sensors/wasb.py +1 -6
  33. airflow/providers/microsoft/azure/transfers/local_to_adls.py +1 -1
  34. airflow/providers/microsoft/azure/transfers/local_to_wasb.py +1 -1
  35. airflow/providers/microsoft/azure/transfers/oracle_to_azure_data_lake.py +1 -1
  36. airflow/providers/microsoft/azure/transfers/s3_to_wasb.py +1 -1
  37. airflow/providers/microsoft/azure/transfers/sftp_to_wasb.py +1 -1
  38. airflow/providers/microsoft/azure/triggers/data_factory.py +4 -3
  39. airflow/providers/microsoft/azure/version_compat.py +0 -29
  40. {apache_airflow_providers_microsoft_azure-12.7.1.dist-info → apache_airflow_providers_microsoft_azure-12.8.1.dist-info}/METADATA +46 -42
  41. apache_airflow_providers_microsoft_azure-12.8.1.dist-info/RECORD +61 -0
  42. apache_airflow_providers_microsoft_azure-12.8.1.dist-info/licenses/NOTICE +5 -0
  43. apache_airflow_providers_microsoft_azure-12.7.1.dist-info/RECORD +0 -59
  44. {apache_airflow_providers_microsoft_azure-12.7.1.dist-info → apache_airflow_providers_microsoft_azure-12.8.1.dist-info}/WHEEL +0 -0
  45. {apache_airflow_providers_microsoft_azure-12.7.1.dist-info → apache_airflow_providers_microsoft_azure-12.8.1.dist-info}/entry_points.txt +0 -0
  46. {airflow/providers/microsoft/azure → apache_airflow_providers_microsoft_azure-12.8.1.dist-info/licenses}/LICENSE +0 -0
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
29
29
 
30
30
  __all__ = ["__version__"]
31
31
 
32
- __version__ = "12.7.1"
32
+ __version__ = "12.8.1"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
35
  "2.10.0"
@@ -20,8 +20,8 @@ from typing import TYPE_CHECKING, Any
20
20
 
21
21
  from azure.identity import ClientSecretCredential
22
22
 
23
+ from airflow.providers.common.compat.sdk import BaseHook
23
24
  from airflow.providers.microsoft.azure.utils import get_field, parse_blob_account_url
24
- from airflow.providers.microsoft.azure.version_compat import BaseHook
25
25
 
26
26
  if TYPE_CHECKING:
27
27
  from fsspec import AbstractFileSystem
@@ -0,0 +1,111 @@
1
+ # Licensed to the Apache Software Foundation (ASF) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The ASF licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ from __future__ import annotations
19
+
20
+ from typing import TYPE_CHECKING, Any
21
+
22
+ from airflow.providers.common.compat.sdk import BaseHook
23
+ from airflow.providers.microsoft.azure.utils import get_field
24
+
25
+ if TYPE_CHECKING:
26
+ from fsspec import AbstractFileSystem
27
+
28
+ schemes = ["msgraph", "sharepoint", "onedrive", "msgd"]
29
+
30
+
31
+ def get_fs(conn_id: str | None, storage_options: dict[str, Any] | None = None) -> AbstractFileSystem:
32
+ from msgraphfs import MSGDriveFS
33
+
34
+ if conn_id is None:
35
+ return MSGDriveFS({})
36
+
37
+ conn = BaseHook.get_connection(conn_id)
38
+ extras = conn.extra_dejson
39
+ conn_type = conn.conn_type or "msgraph"
40
+
41
+ options: dict[str, Any] = {}
42
+
43
+ # Get authentication parameters with fallback handling
44
+ client_id = conn.login or get_field(
45
+ conn_id=conn_id, conn_type=conn_type, extras=extras, field_name="client_id"
46
+ )
47
+ client_secret = conn.password or get_field(
48
+ conn_id=conn_id, conn_type=conn_type, extras=extras, field_name="client_secret"
49
+ )
50
+ tenant_id = conn.host or get_field(
51
+ conn_id=conn_id, conn_type=conn_type, extras=extras, field_name="tenant_id"
52
+ )
53
+
54
+ if client_id:
55
+ options["client_id"] = client_id
56
+ if client_secret:
57
+ options["client_secret"] = client_secret
58
+ if tenant_id:
59
+ options["tenant_id"] = tenant_id
60
+
61
+ # Process additional fields from extras
62
+ fields = [
63
+ "drive_id",
64
+ "scope",
65
+ "token_endpoint",
66
+ "redirect_uri",
67
+ "token_endpoint_auth_method",
68
+ "code_challenge_method",
69
+ "update_token",
70
+ "username",
71
+ "password",
72
+ ]
73
+ for field in fields:
74
+ value = get_field(conn_id=conn_id, conn_type=conn_type, extras=extras, field_name=field)
75
+ if value is not None:
76
+ if value == "":
77
+ options.pop(field, "")
78
+ else:
79
+ options[field] = value
80
+
81
+ # Update with storage options
82
+ options.update(storage_options or {})
83
+
84
+ # Create oauth2 client parameters if authentication is provided
85
+ oauth2_client_params = {}
86
+ if options.get("client_id") and options.get("client_secret") and options.get("tenant_id"):
87
+ oauth2_client_params = {
88
+ "client_id": options["client_id"],
89
+ "client_secret": options["client_secret"],
90
+ "tenant_id": options["tenant_id"],
91
+ }
92
+
93
+ # Add additional oauth2 parameters supported by authlib
94
+ oauth2_params = [
95
+ "scope",
96
+ "token_endpoint",
97
+ "redirect_uri",
98
+ "token_endpoint_auth_method",
99
+ "code_challenge_method",
100
+ "update_token",
101
+ "username",
102
+ "password",
103
+ ]
104
+ for param in oauth2_params:
105
+ if param in options:
106
+ oauth2_client_params[param] = options[param]
107
+
108
+ # Determine which filesystem to return based on drive_id
109
+ drive_id = options.get("drive_id")
110
+
111
+ return MSGDriveFS(drive_id=drive_id, oauth2_client_params=oauth2_client_params)
@@ -37,6 +37,7 @@ def get_provider_info():
37
37
  {
38
38
  "integration-name": "Microsoft Azure Blob Storage",
39
39
  "external-doc-url": "https://azure.microsoft.com/en-us/services/storage/blobs/",
40
+ "how-to-guide": ["/docs/apache-airflow-providers-microsoft-azure/sensors/wasb_sensors.rst"],
40
41
  "logo": "/docs/integration-logos/Blob-Storage.svg",
41
42
  "tags": ["azure"],
42
43
  },
@@ -49,6 +50,9 @@ def get_provider_info():
49
50
  {
50
51
  "integration-name": "Microsoft Azure Cosmos DB",
51
52
  "external-doc-url": "https://azure.microsoft.com/en-us/services/cosmos-db/",
53
+ "how-to-guide": [
54
+ "/docs/apache-airflow-providers-microsoft-azure/sensors/cosmos_document_sensor.rst"
55
+ ],
52
56
  "logo": "/docs/integration-logos/Azure-Cosmos-DB.svg",
53
57
  "tags": ["azure"],
54
58
  },
@@ -117,7 +121,10 @@ def get_provider_info():
117
121
  "integration-name": "Microsoft Graph API",
118
122
  "external-doc-url": "https://learn.microsoft.com/en-us/graph/use-the-api/",
119
123
  "logo": "/docs/integration-logos/Microsoft-Graph-API.png",
120
- "how-to-guide": ["/docs/apache-airflow-providers-microsoft-azure/operators/msgraph.rst"],
124
+ "how-to-guide": [
125
+ "/docs/apache-airflow-providers-microsoft-azure/operators/msgraph.rst",
126
+ "/docs/apache-airflow-providers-microsoft-azure/sensors/msgraph.rst",
127
+ ],
121
128
  "tags": ["azure"],
122
129
  },
123
130
  {
@@ -191,7 +198,10 @@ def get_provider_info():
191
198
  "python-modules": ["airflow.providers.microsoft.azure.sensors.msgraph"],
192
199
  },
193
200
  ],
194
- "filesystems": ["airflow.providers.microsoft.azure.fs.adls"],
201
+ "filesystems": [
202
+ "airflow.providers.microsoft.azure.fs.adls",
203
+ "airflow.providers.microsoft.azure.fs.msgraphfs",
204
+ ],
195
205
  "hooks": [
196
206
  {
197
207
  "integration-name": "Microsoft Azure Container Instances",
@@ -34,11 +34,11 @@ from azure.kusto.data import ClientRequestProperties, KustoClient, KustoConnecti
34
34
  from azure.kusto.data.exceptions import KustoServiceError
35
35
 
36
36
  from airflow.exceptions import AirflowException
37
+ from airflow.providers.common.compat.sdk import BaseHook
37
38
  from airflow.providers.microsoft.azure.utils import (
38
39
  add_managed_identity_connection_widgets,
39
40
  get_sync_default_azure_credential,
40
41
  )
41
- from airflow.providers.microsoft.azure.version_compat import BaseHook
42
42
 
43
43
  if TYPE_CHECKING:
44
44
  from azure.kusto.data.response import KustoResponseDataSet
@@ -37,12 +37,12 @@ from azure.servicebus.management import (
37
37
  SubscriptionProperties,
38
38
  )
39
39
 
40
+ from airflow.providers.common.compat.sdk import BaseHook
40
41
  from airflow.providers.microsoft.azure.utils import (
41
42
  add_managed_identity_connection_widgets,
42
43
  get_field,
43
44
  get_sync_default_azure_credential,
44
45
  )
45
- from airflow.providers.microsoft.azure.version_compat import BaseHook
46
46
 
47
47
  if TYPE_CHECKING:
48
48
  import datetime
@@ -16,17 +16,24 @@
16
16
  # under the License.
17
17
  from __future__ import annotations
18
18
 
19
- from typing import Any
19
+ from typing import TYPE_CHECKING, Any
20
20
 
21
21
  from azure.common.client_factory import get_client_from_auth_file, get_client_from_json_dict
22
22
  from azure.common.credentials import ServicePrincipalCredentials
23
+ from azure.identity import ClientSecretCredential, DefaultAzureCredential
23
24
 
24
25
  from airflow.exceptions import AirflowException
26
+ from airflow.providers.common.compat.sdk import BaseHook
25
27
  from airflow.providers.microsoft.azure.utils import (
26
28
  AzureIdentityCredentialAdapter,
27
29
  add_managed_identity_connection_widgets,
30
+ get_sync_default_azure_credential,
28
31
  )
29
- from airflow.providers.microsoft.azure.version_compat import BaseHook
32
+
33
+ if TYPE_CHECKING:
34
+ from azure.core.credentials import AccessToken
35
+
36
+ from airflow.sdk import Connection
30
37
 
31
38
 
32
39
  class AzureBaseHook(BaseHook):
@@ -85,7 +92,7 @@ class AzureBaseHook(BaseHook):
85
92
  },
86
93
  }
87
94
 
88
- def __init__(self, sdk_client: Any, conn_id: str = "azure_default"):
95
+ def __init__(self, sdk_client: Any = None, conn_id: str = "azure_default"):
89
96
  self.sdk_client = sdk_client
90
97
  self.conn_id = conn_id
91
98
  super().__init__()
@@ -96,8 +103,9 @@ class AzureBaseHook(BaseHook):
96
103
 
97
104
  :return: the authenticated client.
98
105
  """
106
+ if not self.sdk_client:
107
+ raise ValueError("`sdk_client` must be provided to AzureBaseHook to use `get_conn` method.")
99
108
  conn = self.get_connection(self.conn_id)
100
- tenant = conn.extra_dejson.get("tenantId")
101
109
  subscription_id = conn.extra_dejson.get("subscriptionId")
102
110
  key_path = conn.extra_dejson.get("key_path")
103
111
  if key_path:
@@ -111,22 +119,90 @@ class AzureBaseHook(BaseHook):
111
119
  self.log.info("Getting connection using a JSON config.")
112
120
  return get_client_from_json_dict(client_class=self.sdk_client, config_dict=key_json)
113
121
 
114
- credentials: ServicePrincipalCredentials | AzureIdentityCredentialAdapter
122
+ credentials = self.get_credential(conn=conn)
123
+
124
+ return self.sdk_client(
125
+ credentials=credentials,
126
+ subscription_id=subscription_id,
127
+ )
128
+
129
+ def get_credential(
130
+ self, *, conn: Connection | None = None
131
+ ) -> (
132
+ ServicePrincipalCredentials
133
+ | AzureIdentityCredentialAdapter
134
+ | ClientSecretCredential
135
+ | DefaultAzureCredential
136
+ ):
137
+ """
138
+ Get Azure credential object for the connection.
139
+
140
+ Azure Identity based credential object (``ClientSecretCredential``, ``DefaultAzureCredential``) can be used to get OAuth token using ``get_token`` method.
141
+ Older Credential objects (``ServicePrincipalCredentials``, ``AzureIdentityCredentialAdapter``) are supported for backward compatibility.
142
+
143
+ :return: The Azure credential object
144
+ """
145
+ if not conn:
146
+ conn = self.get_connection(self.conn_id)
147
+ tenant = conn.extra_dejson.get("tenantId")
148
+ credential: (
149
+ ServicePrincipalCredentials
150
+ | AzureIdentityCredentialAdapter
151
+ | ClientSecretCredential
152
+ | DefaultAzureCredential
153
+ )
115
154
  if all([conn.login, conn.password, tenant]):
116
- self.log.info("Getting connection using specific credentials and subscription_id.")
117
- credentials = ServicePrincipalCredentials(
118
- client_id=conn.login, secret=conn.password, tenant=tenant
119
- )
155
+ credential = self._get_client_secret_credential(conn)
120
156
  else:
121
- self.log.info("Using DefaultAzureCredential as credential")
122
- managed_identity_client_id = conn.extra_dejson.get("managed_identity_client_id")
123
- workload_identity_tenant_id = conn.extra_dejson.get("workload_identity_tenant_id")
124
- credentials = AzureIdentityCredentialAdapter(
157
+ credential = self._get_default_azure_credential(conn)
158
+ return credential
159
+
160
+ def _get_client_secret_credential(
161
+ self, conn: Connection
162
+ ) -> ServicePrincipalCredentials | ClientSecretCredential:
163
+ self.log.info("Getting credentials using specific credentials and subscription_id.")
164
+ extra_dejson = conn.extra_dejson
165
+ tenant = extra_dejson.get("tenantId")
166
+ use_azure_identity_object = extra_dejson.get("use_azure_identity_object", False)
167
+ if use_azure_identity_object:
168
+ return ClientSecretCredential(
169
+ client_id=conn.login, # type: ignore[arg-type]
170
+ client_secret=conn.password, # type: ignore[arg-type]
171
+ tenant_id=tenant, # type: ignore[arg-type]
172
+ )
173
+ return ServicePrincipalCredentials(client_id=conn.login, secret=conn.password, tenant=tenant)
174
+
175
+ def _get_default_azure_credential(
176
+ self, conn: Connection
177
+ ) -> DefaultAzureCredential | AzureIdentityCredentialAdapter:
178
+ self.log.info("Using DefaultAzureCredential as credential")
179
+ extra_dejson = conn.extra_dejson
180
+ managed_identity_client_id = extra_dejson.get("managed_identity_client_id")
181
+ workload_identity_tenant_id = extra_dejson.get("workload_identity_tenant_id")
182
+ use_azure_identity_object = extra_dejson.get("use_azure_identity_object", False)
183
+ if use_azure_identity_object:
184
+ return get_sync_default_azure_credential(
125
185
  managed_identity_client_id=managed_identity_client_id,
126
186
  workload_identity_tenant_id=workload_identity_tenant_id,
127
187
  )
128
-
129
- return self.sdk_client(
130
- credentials=credentials,
131
- subscription_id=subscription_id,
188
+ return AzureIdentityCredentialAdapter(
189
+ managed_identity_client_id=managed_identity_client_id,
190
+ workload_identity_tenant_id=workload_identity_tenant_id,
132
191
  )
192
+
193
+ def get_token(self, *scopes, **kwargs) -> AccessToken:
194
+ """
195
+ Request an access token for `scopes`.
196
+
197
+ To use this method, set `use_azure_identity_object: True` in the connection extra field.
198
+ ServicePrincipalCredentials and AzureIdentityCredentialAdapter don't support `get_token` method.
199
+ """
200
+ credential = self.get_credential()
201
+ if isinstance(credential, ServicePrincipalCredentials) or isinstance(
202
+ credential, AzureIdentityCredentialAdapter
203
+ ):
204
+ raise AttributeError(
205
+ "ServicePrincipalCredentials and AzureIdentityCredentialAdapter don't support get_token method. "
206
+ "Please set `use_azure_identity_object: True` in the connection extra field to use credential that support get_token method."
207
+ )
208
+ return credential.get_token(*scopes, **kwargs)
@@ -25,12 +25,12 @@ from typing import TYPE_CHECKING, Any
25
25
  from azure.batch import BatchServiceClient, batch_auth, models as batch_models
26
26
 
27
27
  from airflow.exceptions import AirflowException
28
+ from airflow.providers.common.compat.sdk import BaseHook
28
29
  from airflow.providers.microsoft.azure.utils import (
29
30
  AzureIdentityCredentialAdapter,
30
31
  add_managed_identity_connection_widgets,
31
32
  get_field,
32
33
  )
33
- from airflow.providers.microsoft.azure.version_compat import BaseHook
34
34
  from airflow.utils import timezone
35
35
 
36
36
  if TYPE_CHECKING:
@@ -25,12 +25,12 @@ from typing import Any, cast
25
25
  from azure.mgmt.containerinstance.models import ImageRegistryCredential
26
26
  from azure.mgmt.containerregistry import ContainerRegistryManagementClient
27
27
 
28
+ from airflow.providers.common.compat.sdk import BaseHook
28
29
  from airflow.providers.microsoft.azure.utils import (
29
30
  add_managed_identity_connection_widgets,
30
31
  get_field,
31
32
  get_sync_default_azure_credential,
32
33
  )
33
- from airflow.providers.microsoft.azure.version_compat import BaseHook
34
34
 
35
35
 
36
36
  class AzureContainerRegistryHook(BaseHook):
@@ -21,12 +21,12 @@ from typing import Any, cast
21
21
  from azure.mgmt.containerinstance.models import AzureFileVolume, Volume
22
22
  from azure.mgmt.storage import StorageManagementClient
23
23
 
24
+ from airflow.providers.common.compat.sdk import BaseHook
24
25
  from airflow.providers.microsoft.azure.utils import (
25
26
  add_managed_identity_connection_widgets,
26
27
  get_field,
27
28
  get_sync_default_azure_credential,
28
29
  )
29
- from airflow.providers.microsoft.azure.version_compat import BaseHook
30
30
 
31
31
 
32
32
  class AzureContainerVolumeHook(BaseHook):
@@ -36,12 +36,12 @@ from azure.cosmos.exceptions import CosmosHttpResponseError
36
36
  from azure.mgmt.cosmosdb import CosmosDBManagementClient
37
37
 
38
38
  from airflow.exceptions import AirflowBadRequest, AirflowException
39
+ from airflow.providers.common.compat.sdk import BaseHook
39
40
  from airflow.providers.microsoft.azure.utils import (
40
41
  add_managed_identity_connection_widgets,
41
42
  get_field,
42
43
  get_sync_default_azure_credential,
43
44
  )
44
- from airflow.providers.microsoft.azure.version_compat import BaseHook
45
45
 
46
46
  if TYPE_CHECKING:
47
47
  PartitionKeyType = str | list[str]
@@ -49,12 +49,12 @@ from azure.mgmt.datafactory import DataFactoryManagementClient
49
49
  from azure.mgmt.datafactory.aio import DataFactoryManagementClient as AsyncDataFactoryManagementClient
50
50
 
51
51
  from airflow.exceptions import AirflowException
52
+ from airflow.providers.common.compat.sdk import BaseHook
52
53
  from airflow.providers.microsoft.azure.utils import (
53
54
  add_managed_identity_connection_widgets,
54
55
  get_async_default_azure_credential,
55
56
  get_sync_default_azure_credential,
56
57
  )
57
- from airflow.providers.microsoft.azure.version_compat import BaseHook
58
58
 
59
59
  if TYPE_CHECKING:
60
60
  from azure.core.polling import LROPoller
@@ -1214,7 +1214,4 @@ class AzureDataFactoryAsyncHook(AzureDataFactoryHook):
1214
1214
  :param config: Extra parameters for the ADF client.
1215
1215
  """
1216
1216
  client = await self.get_async_conn()
1217
- try:
1218
- await client.pipeline_runs.cancel(resource_group_name, factory_name, run_id)
1219
- except Exception as e:
1220
- raise AirflowException(e)
1217
+ await client.pipeline_runs.cancel(resource_group_name, factory_name, run_id)
@@ -33,13 +33,13 @@ from azure.storage.filedatalake import (
33
33
  )
34
34
 
35
35
  from airflow.exceptions import AirflowException
36
+ from airflow.providers.common.compat.sdk import BaseHook
36
37
  from airflow.providers.microsoft.azure.utils import (
37
38
  AzureIdentityCredentialAdapter,
38
39
  add_managed_identity_connection_widgets,
39
40
  get_field,
40
41
  get_sync_default_azure_credential,
41
42
  )
42
- from airflow.providers.microsoft.azure.version_compat import BaseHook
43
43
 
44
44
  Credentials = ClientSecretCredential | AzureIdentityCredentialAdapter | DefaultAzureCredential
45
45
 
@@ -21,11 +21,11 @@ from typing import IO, Any
21
21
 
22
22
  from azure.storage.fileshare import FileProperties, ShareDirectoryClient, ShareFileClient, ShareServiceClient
23
23
 
24
+ from airflow.providers.common.compat.sdk import BaseHook
24
25
  from airflow.providers.microsoft.azure.utils import (
25
26
  add_managed_identity_connection_widgets,
26
27
  get_sync_default_azure_credential,
27
28
  )
28
- from airflow.providers.microsoft.azure.version_compat import BaseHook
29
29
 
30
30
 
31
31
  class AzureFileShareHook(BaseHook):
@@ -53,7 +53,7 @@ from airflow.exceptions import (
53
53
  AirflowNotFoundException,
54
54
  AirflowProviderDeprecationWarning,
55
55
  )
56
- from airflow.providers.microsoft.azure.version_compat import BaseHook
56
+ from airflow.providers.common.compat.sdk import BaseHook
57
57
 
58
58
  if TYPE_CHECKING:
59
59
  from azure.identity._internal.client_credential_base import ClientCredentialBase
@@ -61,7 +61,7 @@ if TYPE_CHECKING:
61
61
  from kiota_abstractions.response_handler import NativeResponseType
62
62
  from kiota_abstractions.serialization import ParsableFactory
63
63
 
64
- from airflow.providers.microsoft.azure.version_compat import Connection
64
+ from airflow.providers.common.compat.sdk import Connection
65
65
 
66
66
 
67
67
  class DefaultResponseHandler(ResponseHandler):
@@ -152,6 +152,7 @@ class KiotaRequestAdapterHook(BaseHook):
152
152
 
153
153
  return {
154
154
  "tenant_id": StringField(lazy_gettext("Tenant ID"), widget=BS3TextFieldWidget()),
155
+ "drive_id": StringField(lazy_gettext("Drive ID"), widget=BS3TextFieldWidget()),
155
156
  "api_version": StringField(
156
157
  lazy_gettext("API Version"), widget=BS3TextFieldWidget(), default=APIVersion.v1.value
157
158
  ),
@@ -25,12 +25,12 @@ from azure.synapse.artifacts import ArtifactsClient
25
25
  from azure.synapse.spark import SparkClient
26
26
 
27
27
  from airflow.exceptions import AirflowException, AirflowTaskTimeout
28
+ from airflow.providers.common.compat.sdk import BaseHook
28
29
  from airflow.providers.microsoft.azure.utils import (
29
30
  add_managed_identity_connection_widgets,
30
31
  get_field,
31
32
  get_sync_default_azure_credential,
32
33
  )
33
- from airflow.providers.microsoft.azure.version_compat import BaseHook
34
34
 
35
35
  if TYPE_CHECKING:
36
36
  from azure.synapse.artifacts.models import CreateRunResponse, PipelineRun
@@ -45,13 +45,13 @@ from azure.storage.blob.aio import (
45
45
  )
46
46
 
47
47
  from airflow.exceptions import AirflowException
48
+ from airflow.providers.common.compat.sdk import BaseHook
48
49
  from airflow.providers.microsoft.azure.utils import (
49
50
  add_managed_identity_connection_widgets,
50
51
  get_async_default_azure_credential,
51
52
  get_sync_default_azure_credential,
52
53
  parse_blob_account_url,
53
54
  )
54
- from airflow.providers.microsoft.azure.version_compat import BaseHook
55
55
 
56
56
  if TYPE_CHECKING:
57
57
  from azure.core.credentials import TokenCredential
@@ -19,8 +19,8 @@ from __future__ import annotations
19
19
  from collections.abc import Iterable, Sequence
20
20
  from typing import IO, TYPE_CHECKING, Any, AnyStr
21
21
 
22
+ from airflow.providers.common.compat.sdk import BaseOperator
22
23
  from airflow.providers.microsoft.azure.hooks.data_lake import AzureDataLakeHook, AzureDataLakeStorageV2Hook
23
- from airflow.providers.microsoft.azure.version_compat import BaseOperator
24
24
 
25
25
  if TYPE_CHECKING:
26
26
  from airflow.utils.context import Context
@@ -24,8 +24,8 @@ from functools import cached_property
24
24
  from typing import TYPE_CHECKING
25
25
 
26
26
  from airflow.configuration import conf
27
+ from airflow.providers.common.compat.sdk import BaseOperator
27
28
  from airflow.providers.microsoft.azure.hooks.adx import AzureDataExplorerHook
28
- from airflow.providers.microsoft.azure.version_compat import BaseOperator
29
29
 
30
30
  if TYPE_CHECKING:
31
31
  from azure.kusto.data._models import KustoResultTable
@@ -20,8 +20,8 @@ from collections.abc import Callable, Sequence
20
20
  from typing import TYPE_CHECKING, Any
21
21
  from uuid import UUID
22
22
 
23
+ from airflow.providers.common.compat.sdk import BaseOperator
23
24
  from airflow.providers.microsoft.azure.hooks.asb import AdminClientHook, MessageHook
24
- from airflow.providers.microsoft.azure.version_compat import BaseOperator
25
25
 
26
26
  if TYPE_CHECKING:
27
27
  import datetime
@@ -24,8 +24,8 @@ from typing import TYPE_CHECKING, Any
24
24
  from azure.batch import models as batch_models
25
25
 
26
26
  from airflow.exceptions import AirflowException
27
+ from airflow.providers.common.compat.sdk import BaseOperator
27
28
  from airflow.providers.microsoft.azure.hooks.batch import AzureBatchHook
28
- from airflow.providers.microsoft.azure.version_compat import BaseOperator
29
29
 
30
30
  if TYPE_CHECKING:
31
31
  from airflow.utils.context import Context
@@ -40,10 +40,10 @@ from azure.mgmt.containerinstance.models import (
40
40
  from msrestazure.azure_exceptions import CloudError
41
41
 
42
42
  from airflow.exceptions import AirflowException, AirflowTaskTimeout
43
+ from airflow.providers.common.compat.sdk import BaseOperator
43
44
  from airflow.providers.microsoft.azure.hooks.container_instance import AzureContainerInstanceHook
44
45
  from airflow.providers.microsoft.azure.hooks.container_registry import AzureContainerRegistryHook
45
46
  from airflow.providers.microsoft.azure.hooks.container_volume import AzureContainerVolumeHook
46
- from airflow.providers.microsoft.azure.version_compat import BaseOperator
47
47
 
48
48
  if TYPE_CHECKING:
49
49
  from airflow.utils.context import Context
@@ -20,8 +20,8 @@ from __future__ import annotations
20
20
  from collections.abc import Sequence
21
21
  from typing import TYPE_CHECKING
22
22
 
23
+ from airflow.providers.common.compat.sdk import BaseOperator
23
24
  from airflow.providers.microsoft.azure.hooks.cosmos import AzureCosmosDBHook
24
- from airflow.providers.microsoft.azure.version_compat import BaseOperator
25
25
 
26
26
  if TYPE_CHECKING:
27
27
  from airflow.utils.context import Context
@@ -24,6 +24,7 @@ from typing import TYPE_CHECKING, Any
24
24
 
25
25
  from airflow.configuration import conf
26
26
  from airflow.exceptions import AirflowException
27
+ from airflow.providers.common.compat.sdk import BaseHook, BaseOperator, BaseOperatorLink, XCom
27
28
  from airflow.providers.microsoft.azure.hooks.data_factory import (
28
29
  AzureDataFactoryHook,
29
30
  AzureDataFactoryPipelineRunException,
@@ -31,25 +32,12 @@ from airflow.providers.microsoft.azure.hooks.data_factory import (
31
32
  get_field,
32
33
  )
33
34
  from airflow.providers.microsoft.azure.triggers.data_factory import AzureDataFactoryTrigger
34
- from airflow.providers.microsoft.azure.version_compat import (
35
- BaseHook,
36
- BaseOperator,
37
- )
38
35
  from airflow.utils.log.logging_mixin import LoggingMixin
39
36
 
40
37
  if TYPE_CHECKING:
41
38
  from airflow.models.taskinstancekey import TaskInstanceKey
42
39
  from airflow.utils.context import Context
43
40
 
44
- from airflow.providers.microsoft.azure.version_compat import AIRFLOW_V_3_0_PLUS
45
-
46
- if AIRFLOW_V_3_0_PLUS:
47
- from airflow.sdk import BaseOperatorLink
48
- from airflow.sdk.execution_time.xcom import XCom
49
- else:
50
- from airflow.models import XCom
51
- from airflow.models.baseoperatorlink import BaseOperatorLink # type: ignore[no-redef]
52
-
53
41
 
54
42
  class AzureDataFactoryPipelineRunLink(LoggingMixin, BaseOperatorLink):
55
43
  """Construct a link to monitor a pipeline run in Azure Data Factory."""
@@ -27,12 +27,12 @@ from typing import (
27
27
  )
28
28
 
29
29
  from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning, TaskDeferred
30
+ from airflow.providers.common.compat.sdk import XCOM_RETURN_KEY, BaseOperator
30
31
  from airflow.providers.microsoft.azure.hooks.msgraph import KiotaRequestAdapterHook
31
32
  from airflow.providers.microsoft.azure.triggers.msgraph import (
32
33
  MSGraphTrigger,
33
34
  ResponseSerializer,
34
35
  )
35
- from airflow.providers.microsoft.azure.version_compat import XCOM_RETURN_KEY, BaseOperator
36
36
 
37
37
  if TYPE_CHECKING:
38
38
  from io import BytesIO
@@ -21,16 +21,13 @@ from collections.abc import Sequence
21
21
  from typing import TYPE_CHECKING, Any
22
22
 
23
23
  from airflow.exceptions import AirflowException
24
+ from airflow.providers.common.compat.sdk import BaseOperator, BaseOperatorLink
24
25
  from airflow.providers.microsoft.azure.hooks.powerbi import PowerBIHook
25
26
  from airflow.providers.microsoft.azure.triggers.powerbi import (
26
27
  PowerBIDatasetListTrigger,
27
28
  PowerBITrigger,
28
29
  PowerBIWorkspaceListTrigger,
29
30
  )
30
- from airflow.providers.microsoft.azure.version_compat import (
31
- BaseOperator,
32
- BaseOperatorLink,
33
- )
34
31
 
35
32
  if TYPE_CHECKING:
36
33
  from msgraph_core import APIVersion
@@ -22,6 +22,7 @@ from typing import TYPE_CHECKING, Any
22
22
  from urllib.parse import urlencode
23
23
 
24
24
  from airflow.exceptions import AirflowException
25
+ from airflow.providers.common.compat.sdk import BaseHook, BaseOperator, BaseOperatorLink, XCom
25
26
  from airflow.providers.microsoft.azure.hooks.synapse import (
26
27
  AzureSynapseHook,
27
28
  AzureSynapsePipelineHook,
@@ -29,10 +30,6 @@ from airflow.providers.microsoft.azure.hooks.synapse import (
29
30
  AzureSynapsePipelineRunStatus,
30
31
  AzureSynapseSparkBatchRunStatus,
31
32
  )
32
- from airflow.providers.microsoft.azure.version_compat import (
33
- BaseHook,
34
- BaseOperator,
35
- )
36
33
 
37
34
  if TYPE_CHECKING:
38
35
  from azure.synapse.spark.models import SparkBatchJobOptions
@@ -40,15 +37,6 @@ if TYPE_CHECKING:
40
37
  from airflow.models.taskinstancekey import TaskInstanceKey
41
38
  from airflow.utils.context import Context
42
39
 
43
- from airflow.providers.microsoft.azure.version_compat import AIRFLOW_V_3_0_PLUS
44
-
45
- if AIRFLOW_V_3_0_PLUS:
46
- from airflow.sdk import BaseOperatorLink
47
- from airflow.sdk.execution_time.xcom import XCom
48
- else:
49
- from airflow.models import XCom
50
- from airflow.models.baseoperatorlink import BaseOperatorLink # type: ignore[no-redef]
51
-
52
40
 
53
41
  class AzureSynapseRunSparkBatchOperator(BaseOperator):
54
42
  """
@@ -20,8 +20,8 @@ from __future__ import annotations
20
20
  from collections.abc import Sequence
21
21
  from typing import TYPE_CHECKING, Any
22
22
 
23
+ from airflow.providers.common.compat.sdk import BaseOperator
23
24
  from airflow.providers.microsoft.azure.hooks.wasb import WasbHook
24
- from airflow.providers.microsoft.azure.version_compat import BaseOperator
25
25
 
26
26
  if TYPE_CHECKING:
27
27
  from airflow.utils.context import Context
@@ -20,13 +20,8 @@ from __future__ import annotations
20
20
  from collections.abc import Sequence
21
21
  from typing import TYPE_CHECKING
22
22
 
23
+ from airflow.providers.common.compat.sdk import BaseSensorOperator
23
24
  from airflow.providers.microsoft.azure.hooks.cosmos import AzureCosmosDBHook
24
- from airflow.providers.microsoft.azure.version_compat import AIRFLOW_V_3_0_PLUS
25
-
26
- if AIRFLOW_V_3_0_PLUS:
27
- from airflow.sdk import BaseSensorOperator
28
- else:
29
- from airflow.sensors.base import BaseSensorOperator # type: ignore[no-redef]
30
25
 
31
26
  if TYPE_CHECKING:
32
27
  from airflow.utils.context import Context
@@ -23,18 +23,13 @@ from typing import TYPE_CHECKING
23
23
 
24
24
  from airflow.configuration import conf
25
25
  from airflow.exceptions import AirflowException
26
+ from airflow.providers.common.compat.sdk import BaseSensorOperator
26
27
  from airflow.providers.microsoft.azure.hooks.data_factory import (
27
28
  AzureDataFactoryHook,
28
29
  AzureDataFactoryPipelineRunException,
29
30
  AzureDataFactoryPipelineRunStatus,
30
31
  )
31
32
  from airflow.providers.microsoft.azure.triggers.data_factory import ADFPipelineRunStatusSensorTrigger
32
- from airflow.providers.microsoft.azure.version_compat import AIRFLOW_V_3_0_PLUS
33
-
34
- if AIRFLOW_V_3_0_PLUS:
35
- from airflow.sdk.bases.sensor import BaseSensorOperator
36
- else:
37
- from airflow.sensors.base import BaseSensorOperator # type: ignore[no-redef]
38
33
 
39
34
  if TYPE_CHECKING:
40
35
  from airflow.utils.context import Context
@@ -21,11 +21,11 @@ from collections.abc import Callable, Sequence
21
21
  from typing import TYPE_CHECKING, Any
22
22
 
23
23
  from airflow.exceptions import AirflowException
24
+ from airflow.providers.common.compat.sdk import BaseSensorOperator
24
25
  from airflow.providers.common.compat.standard.triggers import TimeDeltaTrigger
25
26
  from airflow.providers.microsoft.azure.hooks.msgraph import KiotaRequestAdapterHook
26
27
  from airflow.providers.microsoft.azure.operators.msgraph import execute_callable
27
28
  from airflow.providers.microsoft.azure.triggers.msgraph import MSGraphTrigger, ResponseSerializer
28
- from airflow.providers.microsoft.azure.version_compat import BaseSensorOperator
29
29
 
30
30
  if TYPE_CHECKING:
31
31
  from datetime import timedelta
@@ -23,14 +23,9 @@ from typing import TYPE_CHECKING
23
23
 
24
24
  from airflow.configuration import conf
25
25
  from airflow.exceptions import AirflowException
26
+ from airflow.providers.common.compat.sdk import BaseSensorOperator
26
27
  from airflow.providers.microsoft.azure.hooks.wasb import WasbHook
27
28
  from airflow.providers.microsoft.azure.triggers.wasb import WasbBlobSensorTrigger, WasbPrefixSensorTrigger
28
- from airflow.providers.microsoft.azure.version_compat import AIRFLOW_V_3_0_PLUS
29
-
30
- if AIRFLOW_V_3_0_PLUS:
31
- from airflow.sdk import BaseSensorOperator
32
- else:
33
- from airflow.sensors.base import BaseSensorOperator # type: ignore[no-redef]
34
29
 
35
30
  if TYPE_CHECKING:
36
31
  from airflow.utils.context import Context
@@ -20,8 +20,8 @@ from collections.abc import Sequence
20
20
  from typing import TYPE_CHECKING, Any
21
21
 
22
22
  from airflow.exceptions import AirflowException
23
+ from airflow.providers.common.compat.sdk import BaseOperator
23
24
  from airflow.providers.microsoft.azure.hooks.data_lake import AzureDataLakeHook
24
- from airflow.providers.microsoft.azure.version_compat import BaseOperator
25
25
 
26
26
  if TYPE_CHECKING:
27
27
  from airflow.utils.context import Context
@@ -20,8 +20,8 @@ from __future__ import annotations
20
20
  from collections.abc import Sequence
21
21
  from typing import TYPE_CHECKING
22
22
 
23
+ from airflow.providers.common.compat.sdk import BaseOperator
23
24
  from airflow.providers.microsoft.azure.hooks.wasb import WasbHook
24
- from airflow.providers.microsoft.azure.version_compat import BaseOperator
25
25
 
26
26
  if TYPE_CHECKING:
27
27
  from airflow.utils.context import Context
@@ -23,8 +23,8 @@ from collections.abc import Sequence
23
23
  from tempfile import TemporaryDirectory
24
24
  from typing import TYPE_CHECKING, Any, Literal
25
25
 
26
+ from airflow.providers.common.compat.sdk import BaseOperator
26
27
  from airflow.providers.microsoft.azure.hooks.data_lake import AzureDataLakeHook
27
- from airflow.providers.microsoft.azure.version_compat import BaseOperator
28
28
  from airflow.providers.oracle.hooks.oracle import OracleHook
29
29
 
30
30
  if TYPE_CHECKING:
@@ -23,8 +23,8 @@ from functools import cached_property
23
23
  from typing import TYPE_CHECKING
24
24
 
25
25
  from airflow.providers.amazon.aws.hooks.s3 import S3Hook
26
+ from airflow.providers.common.compat.sdk import BaseOperator
26
27
  from airflow.providers.microsoft.azure.hooks.wasb import WasbHook
27
- from airflow.providers.microsoft.azure.version_compat import BaseOperator
28
28
 
29
29
  if TYPE_CHECKING:
30
30
  from airflow.utils.context import Context
@@ -30,7 +30,7 @@ if TYPE_CHECKING:
30
30
  from airflow.utils.context import Context
31
31
 
32
32
  from airflow.exceptions import AirflowException
33
- from airflow.models import BaseOperator
33
+ from airflow.providers.common.compat.sdk import BaseOperator
34
34
  from airflow.providers.microsoft.azure.hooks.wasb import WasbHook
35
35
  from airflow.providers.microsoft.azure.version_compat import AIRFLOW_V_3_0_PLUS
36
36
  from airflow.providers.sftp.hooks.sftp import SFTPHook
@@ -229,14 +229,15 @@ class AzureDataFactoryTrigger(BaseTrigger):
229
229
  }
230
230
  )
231
231
  except Exception as e:
232
+ self.log.exception(e)
232
233
  if self.run_id:
233
234
  try:
235
+ self.log.info("Cancelling pipeline run %s", self.run_id)
234
236
  await hook.cancel_pipeline_run(
235
237
  run_id=self.run_id,
236
238
  resource_group_name=self.resource_group_name,
237
239
  factory_name=self.factory_name,
238
240
  )
239
- self.log.info("Unexpected error %s caught. Cancel pipeline run %s", e, self.run_id)
240
- except Exception as err:
241
- yield TriggerEvent({"status": "error", "message": str(err), "run_id": self.run_id})
241
+ except Exception:
242
+ self.log.exception("Failed to cancel pipeline run %s", self.run_id)
242
243
  yield TriggerEvent({"status": "error", "message": str(e), "run_id": self.run_id})
@@ -35,36 +35,7 @@ def get_base_airflow_version_tuple() -> tuple[int, int, int]:
35
35
  AIRFLOW_V_3_0_PLUS = get_base_airflow_version_tuple() >= (3, 0, 0)
36
36
  AIRFLOW_V_3_1_PLUS = get_base_airflow_version_tuple() >= (3, 1, 0)
37
37
 
38
- if AIRFLOW_V_3_0_PLUS:
39
- from airflow.sdk import (
40
- BaseOperator,
41
- BaseOperatorLink,
42
- BaseSensorOperator,
43
- Connection,
44
- Context,
45
- )
46
- else:
47
- from airflow.models import BaseOperator, BaseOperatorLink, Connection # type: ignore[assignment]
48
- from airflow.sensors.base import BaseSensorOperator # type: ignore[no-redef]
49
- from airflow.utils.context import Context # type: ignore[no-redef]
50
-
51
- if AIRFLOW_V_3_1_PLUS:
52
- from airflow.sdk.bases.xcom import BaseXCom
53
-
54
- XCOM_RETURN_KEY = BaseXCom.XCOM_RETURN_KEY
55
- from airflow.sdk import BaseHook
56
- else:
57
- from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef]
58
- from airflow.utils.xcom import XCOM_RETURN_KEY # type: ignore[no-redef]
59
-
60
38
  __all__ = [
61
39
  "AIRFLOW_V_3_0_PLUS",
62
40
  "AIRFLOW_V_3_1_PLUS",
63
- "BaseHook",
64
- "BaseOperator",
65
- "BaseOperatorLink",
66
- "BaseSensorOperator",
67
- "Connection",
68
- "Context",
69
- "XCOM_RETURN_KEY",
70
41
  ]
@@ -1,12 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-microsoft-azure
3
- Version: 12.7.1
3
+ Version: 12.8.1
4
4
  Summary: Provider package apache-airflow-providers-microsoft-azure for Apache Airflow
5
5
  Keywords: airflow-provider,microsoft.azure,airflow,integration
6
6
  Author-email: Apache Software Foundation <dev@airflow.apache.org>
7
7
  Maintainer-email: Apache Software Foundation <dev@airflow.apache.org>
8
8
  Requires-Python: >=3.10
9
9
  Description-Content-Type: text/x-rst
10
+ License-Expression: Apache-2.0
10
11
  Classifier: Development Status :: 5 - Production/Stable
11
12
  Classifier: Environment :: Console
12
13
  Classifier: Environment :: Web Environment
@@ -14,13 +15,15 @@ Classifier: Intended Audience :: Developers
14
15
  Classifier: Intended Audience :: System Administrators
15
16
  Classifier: Framework :: Apache Airflow
16
17
  Classifier: Framework :: Apache Airflow :: Provider
17
- Classifier: License :: OSI Approved :: Apache Software License
18
18
  Classifier: Programming Language :: Python :: 3.10
19
19
  Classifier: Programming Language :: Python :: 3.11
20
20
  Classifier: Programming Language :: Python :: 3.12
21
21
  Classifier: Programming Language :: Python :: 3.13
22
22
  Classifier: Topic :: System :: Monitoring
23
+ License-File: LICENSE
24
+ License-File: NOTICE
23
25
  Requires-Dist: apache-airflow>=2.10.0
26
+ Requires-Dist: apache-airflow-providers-common-compat>=1.8.0
24
27
  Requires-Dist: adlfs>=2023.10.0
25
28
  Requires-Dist: azure-batch>=8.0.0
26
29
  Requires-Dist: azure-cosmos>=4.6.0
@@ -36,13 +39,13 @@ Requires-Dist: azure-storage-file-share>=12.7.0
36
39
  Requires-Dist: azure-servicebus>=7.12.1
37
40
  Requires-Dist: azure-synapse-spark>=0.2.0
38
41
  Requires-Dist: azure-synapse-artifacts>=0.17.0
39
- Requires-Dist: adal>=1.2.7
40
42
  Requires-Dist: azure-storage-file-datalake>=12.9.1
41
- Requires-Dist: azure-kusto-data>=4.1.0,!=4.6.0
43
+ Requires-Dist: azure-kusto-data>=4.1.0,!=4.6.0,!=5.0.0
42
44
  Requires-Dist: azure-mgmt-datafactory>=2.0.0
43
45
  Requires-Dist: azure-mgmt-containerregistry>=8.0.0
44
46
  Requires-Dist: azure-mgmt-containerinstance>=10.1.0
45
47
  Requires-Dist: msgraph-core>=1.3.3
48
+ Requires-Dist: msgraphfs>=0.3.0
46
49
  Requires-Dist: microsoft-kiota-http>=1.9.4,<2.0.0
47
50
  Requires-Dist: microsoft-kiota-serialization-json>=1.9.4
48
51
  Requires-Dist: microsoft-kiota-serialization-text>=1.9.4
@@ -54,8 +57,8 @@ Requires-Dist: apache-airflow-providers-common-compat ; extra == "common-compat"
54
57
  Requires-Dist: apache-airflow-providers-oracle ; extra == "oracle"
55
58
  Requires-Dist: apache-airflow-providers-sftp ; extra == "sftp"
56
59
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
57
- Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-microsoft-azure/12.7.1/changelog.html
58
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-microsoft-azure/12.7.1
60
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-microsoft-azure/12.8.1/changelog.html
61
+ Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-microsoft-azure/12.8.1
59
62
  Project-URL: Mastodon, https://fosstodon.org/@airflow
60
63
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
61
64
  Project-URL: Source Code, https://github.com/apache/airflow
@@ -90,7 +93,7 @@ Provides-Extra: sftp
90
93
 
91
94
  Package ``apache-airflow-providers-microsoft-azure``
92
95
 
93
- Release: ``12.7.1``
96
+ Release: ``12.8.1``
94
97
 
95
98
 
96
99
  `Microsoft Azure <https://azure.microsoft.com/>`__
@@ -103,7 +106,7 @@ This is a provider package for ``microsoft.azure`` provider. All classes for thi
103
106
  are in ``airflow.providers.microsoft.azure`` python package.
104
107
 
105
108
  You can find package information and changelog for the provider
106
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-microsoft-azure/12.7.1/>`_.
109
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-microsoft-azure/12.8.1/>`_.
107
110
 
108
111
  Installation
109
112
  ------------
@@ -117,39 +120,40 @@ The package supports the following python versions: 3.10,3.11,3.12,3.13
117
120
  Requirements
118
121
  ------------
119
122
 
120
- ======================================== ===================
121
- PIP package Version required
122
- ======================================== ===================
123
- ``apache-airflow`` ``>=2.10.0``
124
- ``adlfs`` ``>=2023.10.0``
125
- ``azure-batch`` ``>=8.0.0``
126
- ``azure-cosmos`` ``>=4.6.0``
127
- ``azure-mgmt-cosmosdb`` ``>=3.0.0``
128
- ``azure-datalake-store`` ``>=0.0.45``
129
- ``azure-identity`` ``>=1.3.1``
130
- ``azure-keyvault-secrets`` ``>=4.1.0``
131
- ``azure-mgmt-datalake-store`` ``>=0.5.0``
132
- ``azure-mgmt-resource`` ``>=2.2.0``
133
- ``azure-storage-blob`` ``>=12.26.0``
134
- ``azure-mgmt-storage`` ``>=16.0.0``
135
- ``azure-storage-file-share`` ``>=12.7.0``
136
- ``azure-servicebus`` ``>=7.12.1``
137
- ``azure-synapse-spark`` ``>=0.2.0``
138
- ``azure-synapse-artifacts`` ``>=0.17.0``
139
- ``adal`` ``>=1.2.7``
140
- ``azure-storage-file-datalake`` ``>=12.9.1``
141
- ``azure-kusto-data`` ``>=4.1.0,!=4.6.0``
142
- ``azure-mgmt-datafactory`` ``>=2.0.0``
143
- ``azure-mgmt-containerregistry`` ``>=8.0.0``
144
- ``azure-mgmt-containerinstance`` ``>=10.1.0``
145
- ``msgraph-core`` ``>=1.3.3``
146
- ``microsoft-kiota-http`` ``>=1.9.4,<2.0.0``
147
- ``microsoft-kiota-serialization-json`` ``>=1.9.4``
148
- ``microsoft-kiota-serialization-text`` ``>=1.9.4``
149
- ``microsoft-kiota-abstractions`` ``>=1.9.4,<2.0.0``
150
- ``microsoft-kiota-authentication-azure`` ``>=1.9.4,<2.0.0``
151
- ``msal-extensions`` ``>=1.3.0``
152
- ======================================== ===================
123
+ ========================================== ===========================
124
+ PIP package Version required
125
+ ========================================== ===========================
126
+ ``apache-airflow`` ``>=2.10.0``
127
+ ``apache-airflow-providers-common-compat`` ``>=1.8.0``
128
+ ``adlfs`` ``>=2023.10.0``
129
+ ``azure-batch`` ``>=8.0.0``
130
+ ``azure-cosmos`` ``>=4.6.0``
131
+ ``azure-mgmt-cosmosdb`` ``>=3.0.0``
132
+ ``azure-datalake-store`` ``>=0.0.45``
133
+ ``azure-identity`` ``>=1.3.1``
134
+ ``azure-keyvault-secrets`` ``>=4.1.0``
135
+ ``azure-mgmt-datalake-store`` ``>=0.5.0``
136
+ ``azure-mgmt-resource`` ``>=2.2.0``
137
+ ``azure-storage-blob`` ``>=12.26.0``
138
+ ``azure-mgmt-storage`` ``>=16.0.0``
139
+ ``azure-storage-file-share`` ``>=12.7.0``
140
+ ``azure-servicebus`` ``>=7.12.1``
141
+ ``azure-synapse-spark`` ``>=0.2.0``
142
+ ``azure-synapse-artifacts`` ``>=0.17.0``
143
+ ``azure-storage-file-datalake`` ``>=12.9.1``
144
+ ``azure-kusto-data`` ``>=4.1.0,!=4.6.0,!=5.0.0``
145
+ ``azure-mgmt-datafactory`` ``>=2.0.0``
146
+ ``azure-mgmt-containerregistry`` ``>=8.0.0``
147
+ ``azure-mgmt-containerinstance`` ``>=10.1.0``
148
+ ``msgraph-core`` ``>=1.3.3``
149
+ ``msgraphfs`` ``>=0.3.0``
150
+ ``microsoft-kiota-http`` ``>=1.9.4,<2.0.0``
151
+ ``microsoft-kiota-serialization-json`` ``>=1.9.4``
152
+ ``microsoft-kiota-serialization-text`` ``>=1.9.4``
153
+ ``microsoft-kiota-abstractions`` ``>=1.9.4,<2.0.0``
154
+ ``microsoft-kiota-authentication-azure`` ``>=1.9.4,<2.0.0``
155
+ ``msal-extensions`` ``>=1.3.0``
156
+ ========================================== ===========================
153
157
 
154
158
  Cross provider package dependencies
155
159
  -----------------------------------
@@ -186,5 +190,5 @@ Extra Dependencies
186
190
  ================= ==========================================
187
191
 
188
192
  The changelog for the provider package can be found in the
189
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-microsoft-azure/12.7.1/changelog.html>`_.
193
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-microsoft-azure/12.8.1/changelog.html>`_.
190
194
 
@@ -0,0 +1,61 @@
1
+ airflow/providers/microsoft/azure/__init__.py,sha256=fyYEf012N-fGytudkDPROLO7MLS9vQ33y9QGkifWhQA,1505
2
+ airflow/providers/microsoft/azure/get_provider_info.py,sha256=lnLLhV0jqv6Kgv2VbbxFnHbUVxkkbWTsZIxEtFHqkuU,19426
3
+ airflow/providers/microsoft/azure/utils.py,sha256=KU9vHQRUhqTbC30GvmuZbL8rPBAziemM1oaT4rZp6K8,9015
4
+ airflow/providers/microsoft/azure/version_compat.py,sha256=JRhqYf4UklO3xwmtCRPSXLQqq0yD1pCts3bhwxgVC0s,1670
5
+ airflow/providers/microsoft/azure/fs/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
6
+ airflow/providers/microsoft/azure/fs/adls.py,sha256=-lxaL4xYduRL8hQ27ERTCWugI29WiWwLvSTdxfrhzB8,3924
7
+ airflow/providers/microsoft/azure/fs/msgraph.py,sha256=6bjBjo1J04mksMe4-s1OCSt6hJ6eW4uaUcm0RnDeGv4,3779
8
+ airflow/providers/microsoft/azure/hooks/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
9
+ airflow/providers/microsoft/azure/hooks/adx.py,sha256=y1v7P0RBpOThyICYdvQIYMkksvNeiuC4-0eMi87wjm8,9664
10
+ airflow/providers/microsoft/azure/hooks/asb.py,sha256=xVhbEevcg594l6MdxUgizCgg2Zh3ayxmyxUUkDkHOhY,30718
11
+ airflow/providers/microsoft/azure/hooks/base_azure.py,sha256=oieYqUsmh4Nx4v83Nt-OsVmzqa6ZoXuCKtoUhOviWJA,8752
12
+ airflow/providers/microsoft/azure/hooks/batch.py,sha256=43OES0hy3KS7gfAJq-jGvdoXOAfsG78w0CsFDb8zFEU,16065
13
+ airflow/providers/microsoft/azure/hooks/container_instance.py,sha256=0MrPLk06mg3Jm18VlteCAse_agK8ysK9dUDjbdRL66Q,7201
14
+ airflow/providers/microsoft/azure/hooks/container_registry.py,sha256=8tPVX_fsiIV3Y2dTSry1pkXyWhpu1OrEwaFRuNCZI5Q,4926
15
+ airflow/providers/microsoft/azure/hooks/container_volume.py,sha256=FIe3V0Y9z8yD-vbvzStY8w2QRenrYifh3msyhl3R8FU,5794
16
+ airflow/providers/microsoft/azure/hooks/cosmos.py,sha256=6jxnnJbcVvNwtmaqItbdSlNixCESDJ9MI7gLm14anhs,17486
17
+ airflow/providers/microsoft/azure/hooks/data_factory.py,sha256=Xp99-Afuhluee1y-3Tef4YY2Qi5vdoIMWJbeatPMtuk,44929
18
+ airflow/providers/microsoft/azure/hooks/data_lake.py,sha256=JUlXGgawOxDtaUim1-SXYIKtCOHxVTmeV0l5tIf6Ef0,23875
19
+ airflow/providers/microsoft/azure/hooks/fileshare.py,sha256=NL-ZqhsENEQar66S-QaVAytqs7ZEImzf3YDUMnKzJZ0,10777
20
+ airflow/providers/microsoft/azure/hooks/msgraph.py,sha256=1rmaNTzSDj-RITqSze325IFCI61Xz3LuCABv4QGoZh4,22867
21
+ airflow/providers/microsoft/azure/hooks/powerbi.py,sha256=_Z-PWDcZxwSmyP9uXBEEYNRrSIlGPFVUtDrtVk3KKxE,9778
22
+ airflow/providers/microsoft/azure/hooks/synapse.py,sha256=ggeSc1T5bZh0PSZh3l_Yika_fA2Atr6o6WhzAWtMTo8,16064
23
+ airflow/providers/microsoft/azure/hooks/wasb.py,sha256=yKJpnjJVbmT1BOaDl14awIRoxNNjUAgHCan7Zbi4gw4,32869
24
+ airflow/providers/microsoft/azure/log/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
25
+ airflow/providers/microsoft/azure/log/wasb_task_handler.py,sha256=Kgh-_GJ15GHlcCdPZdCAshKe92cqgHFvMpOae_RVaHs,10173
26
+ airflow/providers/microsoft/azure/operators/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
27
+ airflow/providers/microsoft/azure/operators/adls.py,sha256=4nryg1p7bMi2B41YrmDhHE873_miu1kIf0wd1a3bu2k,5837
28
+ airflow/providers/microsoft/azure/operators/adx.py,sha256=FFWvsXdtvzSy4JW3mTJv94Ia87Jkm10gCjoIq8_NttM,3176
29
+ airflow/providers/microsoft/azure/operators/asb.py,sha256=xvmXtd42ktycmSz7Hx-V5wKl9Ca8msaZ68HWtWzKM4Q,30498
30
+ airflow/providers/microsoft/azure/operators/batch.py,sha256=aAztFXU0wzsoMsXCv5Coco-vRlxGhKQoC1MhYtnflZE,16291
31
+ airflow/providers/microsoft/azure/operators/container_instances.py,sha256=3UVeJ7McQMIASXArwPU_DuAoGIcV-NALynmS1TeXjcM,18659
32
+ airflow/providers/microsoft/azure/operators/cosmos.py,sha256=paMVck5RYiVQFd0N59HJWDS2nRQUuhK2rfNXBl8heQw,2835
33
+ airflow/providers/microsoft/azure/operators/data_factory.py,sha256=obY8V094zWertPag3isqJQMqwmjjRLsN6oW9BegwTsc,12459
34
+ airflow/providers/microsoft/azure/operators/msgraph.py,sha256=fTrcqoy8UxWYNhA8uk40gJStB9qNuVIlhorZLnOe_f0,14188
35
+ airflow/providers/microsoft/azure/operators/powerbi.py,sha256=CPib6wrAnyEcg6Gc88EzOd1pfZIm2YJbCdL7duO9O_U,11621
36
+ airflow/providers/microsoft/azure/operators/synapse.py,sha256=6iT-pPD_RodhRjyNFfMf1EpDoLCczokFtjkkU165Jlk,12409
37
+ airflow/providers/microsoft/azure/operators/wasb_delete_blob.py,sha256=mnwK_lFeuTp2SP2RExc0fiCzXAA9WXnGDBsmoKwNoH8,2735
38
+ airflow/providers/microsoft/azure/secrets/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
39
+ airflow/providers/microsoft/azure/secrets/key_vault.py,sha256=zbgjqiQo-cWu1N6QD7gFXRGSbmHw4xgAN-TiCovKYk4,9051
40
+ airflow/providers/microsoft/azure/sensors/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
41
+ airflow/providers/microsoft/azure/sensors/cosmos.py,sha256=cd7bNdjtNrtEKFZpglnrjfwzU_iLBuc7IaXtFzRdFTo,2679
42
+ airflow/providers/microsoft/azure/sensors/data_factory.py,sha256=PGeJdWmNqfHEIsiJ-PNVOcywsEVp8hczCfsUtMNmGqU,5029
43
+ airflow/providers/microsoft/azure/sensors/msgraph.py,sha256=hzSaRQrh4Q7pKsg3Ai7r3CL-fS4_cErCn0z538tMjkU,7746
44
+ airflow/providers/microsoft/azure/sensors/wasb.py,sha256=lNJw31aMZRjOI7yTXX0WRzqu8uQVY_ZIYZRBKaKnyWQ,7397
45
+ airflow/providers/microsoft/azure/transfers/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
46
+ airflow/providers/microsoft/azure/transfers/local_to_adls.py,sha256=W--jCgdQOJ1DoDnALgEbw3KJ96eWc4TiDrTPCR3l1dU,4224
47
+ airflow/providers/microsoft/azure/transfers/local_to_wasb.py,sha256=LTagjkM3mx5-Grc73--VONw9fOuga71TT9w1DHUopGk,2984
48
+ airflow/providers/microsoft/azure/transfers/oracle_to_azure_data_lake.py,sha256=pjvHXwdZA7DwWNae7tAj_FSbvhYg1JYjSr4AZTRcEw4,4537
49
+ airflow/providers/microsoft/azure/transfers/s3_to_wasb.py,sha256=PHGAGtQLTfKkXfkxvKRoa7CPZZaPP_z_p4Cvhzmcdpw,12510
50
+ airflow/providers/microsoft/azure/transfers/sftp_to_wasb.py,sha256=SUJh4nyDD6EzYaXfkhh5CG4POg0d3kKlkYx-XJdhDhg,8430
51
+ airflow/providers/microsoft/azure/triggers/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
52
+ airflow/providers/microsoft/azure/triggers/data_factory.py,sha256=aj4PWk-hSBe1-EWBzkIH3WvC5vve9lci1OgKYjKQ3FU,11149
53
+ airflow/providers/microsoft/azure/triggers/msgraph.py,sha256=8Ke7jzmvld8uzBN1sxgs4xjzMXvxPYXWtLemyZ8lP9U,8542
54
+ airflow/providers/microsoft/azure/triggers/powerbi.py,sha256=z9LJ-PfgWstt7c2eIJX5LOGUicfdMv2EELhCsrCJ6Nk,16371
55
+ airflow/providers/microsoft/azure/triggers/wasb.py,sha256=RF-C6iqDEs6_pWireCWZXqxcqWK-sFJ695Okdd_EJOA,7456
56
+ apache_airflow_providers_microsoft_azure-12.8.1.dist-info/entry_points.txt,sha256=6iWHenOoUC3YZBb3OKn6g0HlJsV58Ba56i8USmQrcJI,111
57
+ apache_airflow_providers_microsoft_azure-12.8.1.dist-info/licenses/LICENSE,sha256=gXPVwptPlW1TJ4HSuG5OMPg-a3h43OGMkZRR1rpwfJA,10850
58
+ apache_airflow_providers_microsoft_azure-12.8.1.dist-info/licenses/NOTICE,sha256=E3-_E02gwwSEFzeeWPKmnIjOoos3hW28CLISV6sYrbQ,168
59
+ apache_airflow_providers_microsoft_azure-12.8.1.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
60
+ apache_airflow_providers_microsoft_azure-12.8.1.dist-info/METADATA,sha256=xrvDPAhs83fG3h8Szgzul7UXsJJfSwrIosiUBeDmOss,9373
61
+ apache_airflow_providers_microsoft_azure-12.8.1.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Apache Airflow
2
+ Copyright 2016-2025 The Apache Software Foundation
3
+
4
+ This product includes software developed at
5
+ The Apache Software Foundation (http://www.apache.org/).
@@ -1,59 +0,0 @@
1
- airflow/providers/microsoft/azure/LICENSE,sha256=gXPVwptPlW1TJ4HSuG5OMPg-a3h43OGMkZRR1rpwfJA,10850
2
- airflow/providers/microsoft/azure/__init__.py,sha256=vujwor5X8C6TV5n-YfIFTMv2Z2-RzMRWmP43HiuaITY,1505
3
- airflow/providers/microsoft/azure/get_provider_info.py,sha256=AeIwe8L-5p1z7IVF9Yc_mmQyAe149r6YVCyRpjfc3u0,18946
4
- airflow/providers/microsoft/azure/utils.py,sha256=KU9vHQRUhqTbC30GvmuZbL8rPBAziemM1oaT4rZp6K8,9015
5
- airflow/providers/microsoft/azure/version_compat.py,sha256=f3OsfVwvYvtOHQO_LcHam3pP2rcH_TKkn8VaJpgGiDo,2570
6
- airflow/providers/microsoft/azure/fs/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
7
- airflow/providers/microsoft/azure/fs/adls.py,sha256=1La15shfckTX6tem3O34Gdneyd0TXFlFwABqIRHUd1A,3937
8
- airflow/providers/microsoft/azure/hooks/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
9
- airflow/providers/microsoft/azure/hooks/adx.py,sha256=NoPbs-CWbNH-AxvqtF3cKdV0-YFr9AlqCh2qg-DuSKw,9677
10
- airflow/providers/microsoft/azure/hooks/asb.py,sha256=ED3IsvtKLBigHyhNCO5qCkY5Kj8I8OOUSBSO9bOXyBU,30731
11
- airflow/providers/microsoft/azure/hooks/base_azure.py,sha256=urqIC8fWdmo8fPoD1MuVZLRyb9ynHGi7sOY1iBc-25g,5413
12
- airflow/providers/microsoft/azure/hooks/batch.py,sha256=VZT5cXQOCEN64O5vWqlLAFc3hx4lK2OZ9nPpfER4nPc,16078
13
- airflow/providers/microsoft/azure/hooks/container_instance.py,sha256=0MrPLk06mg3Jm18VlteCAse_agK8ysK9dUDjbdRL66Q,7201
14
- airflow/providers/microsoft/azure/hooks/container_registry.py,sha256=YAo-wSTVnEAzfoNz-w5bIcmcHe5KSvrk4nRzKdpcbE8,4939
15
- airflow/providers/microsoft/azure/hooks/container_volume.py,sha256=m6Jg8RnKwzGQQt3UDxLkU3sL7_bGZv-136InbQpGKw0,5807
16
- airflow/providers/microsoft/azure/hooks/cosmos.py,sha256=gw90ZaoaPzTpE27eVM5zbJDeWW38LdzrQO3YwWcaNqI,17499
17
- airflow/providers/microsoft/azure/hooks/data_factory.py,sha256=oo1qcyTDDhJcclq0gE3eVJsFZ_DbuT1PXhTz0NXawds,45028
18
- airflow/providers/microsoft/azure/hooks/data_lake.py,sha256=1O6eRxe-4Hm5wkWH2zeS4nxc3CYUSFXOu8ySz-UtZJ8,23888
19
- airflow/providers/microsoft/azure/hooks/fileshare.py,sha256=x8hXYHE6qUjJDTa1qp47DS34eZBeBrwE4cZkk1i0u48,10790
20
- airflow/providers/microsoft/azure/hooks/msgraph.py,sha256=jqAz0AxUJxcOcRj29GsZBsZG0uOT8mqxTGgkG7Ed088,22801
21
- airflow/providers/microsoft/azure/hooks/powerbi.py,sha256=_Z-PWDcZxwSmyP9uXBEEYNRrSIlGPFVUtDrtVk3KKxE,9778
22
- airflow/providers/microsoft/azure/hooks/synapse.py,sha256=PC7whM9SOuc29hu9mU1DOvi5xmevGLS9Gadql2u0KYM,16077
23
- airflow/providers/microsoft/azure/hooks/wasb.py,sha256=mjYMNWNuPVgW2EGUwmHS1Af3bKx1cho4-cGAz5xgZXQ,32882
24
- airflow/providers/microsoft/azure/log/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
25
- airflow/providers/microsoft/azure/log/wasb_task_handler.py,sha256=Kgh-_GJ15GHlcCdPZdCAshKe92cqgHFvMpOae_RVaHs,10173
26
- airflow/providers/microsoft/azure/operators/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
27
- airflow/providers/microsoft/azure/operators/adls.py,sha256=mtyCEhnva1I98nLLM6CdwbUXnBJfb045z5n5zANnTIs,5850
28
- airflow/providers/microsoft/azure/operators/adx.py,sha256=yp7nsc0QWGxodhpwg_uQiT2XI3qNAICRjsgkcfbWmEI,3189
29
- airflow/providers/microsoft/azure/operators/asb.py,sha256=RzipreLn5DOA8oaE_-ifx43ELAN6CX-ti2m5RSYT6rU,30511
30
- airflow/providers/microsoft/azure/operators/batch.py,sha256=NYjaxYcFwficmJb7l3Vjdm2JeW9MFxQ3I0trIIwSb1E,16304
31
- airflow/providers/microsoft/azure/operators/container_instances.py,sha256=8ti1L50pQQcRVL_7noKo6IXoobi8hO0-A4SlgcbIhX0,18672
32
- airflow/providers/microsoft/azure/operators/cosmos.py,sha256=t7XWU4L5W7tr33J6lC3_mIrFANW_JE1QOYpSFydkBxs,2848
33
- airflow/providers/microsoft/azure/operators/data_factory.py,sha256=TQz7zQ3zBKOHhackZxMTdBFo66RenoPwcO8gXaLVXIs,12797
34
- airflow/providers/microsoft/azure/operators/msgraph.py,sha256=uGitEdRqLQ_KJP0nXgIRgK4k7XJi_iRHSCfbpv6xhqo,14201
35
- airflow/providers/microsoft/azure/operators/powerbi.py,sha256=o0dkRV3cgb4tthS1c6xOFicVm9cO77O1ykUvBvQwQRI,11647
36
- airflow/providers/microsoft/azure/operators/synapse.py,sha256=boHHnenDSaTehFnuf-upPeBA9ej5Mnx3u6HQyVXH_5g,12747
37
- airflow/providers/microsoft/azure/operators/wasb_delete_blob.py,sha256=Rigi5xFXkHFNcX4-VnA4fFxJlKHlevdsCExX6VJWCts,2748
38
- airflow/providers/microsoft/azure/secrets/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
39
- airflow/providers/microsoft/azure/secrets/key_vault.py,sha256=zbgjqiQo-cWu1N6QD7gFXRGSbmHw4xgAN-TiCovKYk4,9051
40
- airflow/providers/microsoft/azure/sensors/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
41
- airflow/providers/microsoft/azure/sensors/cosmos.py,sha256=Py3n-LOqaH2XuTxQVDZQv4d4RMREqBrmhWZ4NIbLr9Y,2851
42
- airflow/providers/microsoft/azure/sensors/data_factory.py,sha256=u_8vcnVmjzuCrOJbTeexxytfpXlkz0bSMkuWYmyZktI,5214
43
- airflow/providers/microsoft/azure/sensors/msgraph.py,sha256=fHcWAYAvqXBh-81h8c4r-FPMYFVr5jO-yF7c9ZYOo8k,7759
44
- airflow/providers/microsoft/azure/sensors/wasb.py,sha256=SXhgU2L1iTULybQzIw0059BkL6LyVRCXr6kOayCgX20,7569
45
- airflow/providers/microsoft/azure/transfers/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
46
- airflow/providers/microsoft/azure/transfers/local_to_adls.py,sha256=GZl16M2V9xIDYmUyERq6-RxvbP_0VVcMmeG9Z2jLzkU,4237
47
- airflow/providers/microsoft/azure/transfers/local_to_wasb.py,sha256=IqV18vzBwVbivfgOtsqR7q1pOs3uZBNDgoF_wrK1yAE,2997
48
- airflow/providers/microsoft/azure/transfers/oracle_to_azure_data_lake.py,sha256=hjmjs00O4cbn2tgB9_UbnZ8Dn2DAUM6C2aamzMfyYb4,4550
49
- airflow/providers/microsoft/azure/transfers/s3_to_wasb.py,sha256=jQgicPw4uGyRSss9PA05TKqHdch2CNO8bMdNVEvVir0,12523
50
- airflow/providers/microsoft/azure/transfers/sftp_to_wasb.py,sha256=l6kdtxq3SvCUo_Hx60t1YiX4bP8lF3WmbglICHk24vo,8409
51
- airflow/providers/microsoft/azure/triggers/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
52
- airflow/providers/microsoft/azure/triggers/data_factory.py,sha256=U3vY_pj4yORxE7X6YR7CP3Jl73K9euCdUczy3dLmikU,11165
53
- airflow/providers/microsoft/azure/triggers/msgraph.py,sha256=8Ke7jzmvld8uzBN1sxgs4xjzMXvxPYXWtLemyZ8lP9U,8542
54
- airflow/providers/microsoft/azure/triggers/powerbi.py,sha256=z9LJ-PfgWstt7c2eIJX5LOGUicfdMv2EELhCsrCJ6Nk,16371
55
- airflow/providers/microsoft/azure/triggers/wasb.py,sha256=RF-C6iqDEs6_pWireCWZXqxcqWK-sFJ695Okdd_EJOA,7456
56
- apache_airflow_providers_microsoft_azure-12.7.1.dist-info/entry_points.txt,sha256=6iWHenOoUC3YZBb3OKn6g0HlJsV58Ba56i8USmQrcJI,111
57
- apache_airflow_providers_microsoft_azure-12.7.1.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
58
- apache_airflow_providers_microsoft_azure-12.7.1.dist-info/METADATA,sha256=I53fpPqumR-_bZU9drQgkCDUcC7xfpXyPhML778z2C4,9134
59
- apache_airflow_providers_microsoft_azure-12.7.1.dist-info/RECORD,,