apache-airflow-providers-microsoft-azure 12.7.0__py3-none-any.whl → 12.7.1rc1__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.

Potentially problematic release.


This version of apache-airflow-providers-microsoft-azure might be problematic. Click here for more details.

@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
29
29
 
30
30
  __all__ = ["__version__"]
31
31
 
32
- __version__ = "12.7.0"
32
+ __version__ = "12.7.1"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
35
  "2.10.0"
@@ -17,6 +17,7 @@
17
17
  # under the License.
18
18
  from __future__ import annotations
19
19
 
20
+ import asyncio
20
21
  import json
21
22
  import warnings
22
23
  from ast import literal_eval
@@ -28,7 +29,6 @@ from typing import TYPE_CHECKING, Any, cast
28
29
  from urllib.parse import quote, urljoin, urlparse
29
30
 
30
31
  import httpx
31
- from asgiref.sync import sync_to_async
32
32
  from azure.identity import CertificateCredential, ClientSecretCredential
33
33
  from httpx import AsyncHTTPTransport, Response, Timeout
34
34
  from kiota_abstractions.api_error import APIError
@@ -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.models import Connection
64
+ from airflow.providers.microsoft.azure.version_compat import Connection
65
65
 
66
66
 
67
67
  class DefaultResponseHandler(ResponseHandler):
@@ -250,7 +250,9 @@ class KiotaRequestAdapterHook(BaseHook):
250
250
  def _build_request_adapter(self, connection) -> tuple[str, RequestAdapter]:
251
251
  client_id = connection.login
252
252
  client_secret = connection.password
253
- config = connection.extra_dejson if connection.extra else {}
253
+ # TODO (#54350): do not use connection.extra_dejson until it's fixed in Airflow otherwise expect:
254
+ # RuntimeError: You cannot use AsyncToSync in the same thread as an async event loop.
255
+ config = json.loads(connection.extra) if connection.extra else {}
254
256
  api_version = self.get_api_version(config)
255
257
  host = self.get_host(connection) # type: ignore[arg-type]
256
258
  base_url = self.get_base_url(host, api_version, config)
@@ -342,6 +344,15 @@ class KiotaRequestAdapterHook(BaseHook):
342
344
  self.api_version = api_version
343
345
  return request_adapter
344
346
 
347
+ @classmethod
348
+ async def get_async_connection(cls, conn_id: str) -> Connection:
349
+ if hasattr(BaseHook, "aget_connection"):
350
+ return await BaseHook.aget_connection(conn_id=conn_id)
351
+
352
+ from asgiref.sync import sync_to_async
353
+
354
+ return await sync_to_async(BaseHook.get_connection)(conn_id=conn_id)
355
+
345
356
  async def get_async_conn(self) -> RequestAdapter:
346
357
  """Initiate a new RequestAdapter connection asynchronously."""
347
358
  if not self.conn_id:
@@ -350,7 +361,7 @@ class KiotaRequestAdapterHook(BaseHook):
350
361
  api_version, request_adapter = self.cached_request_adapters.get(self.conn_id, (None, None))
351
362
 
352
363
  if not request_adapter:
353
- connection = await sync_to_async(self.get_connection)(conn_id=self.conn_id)
364
+ connection = await self.get_async_connection(conn_id=self.conn_id)
354
365
  api_version, request_adapter = self._build_request_adapter(connection)
355
366
  self.api_version = api_version
356
367
  return request_adapter
@@ -417,7 +428,7 @@ class KiotaRequestAdapterHook(BaseHook):
417
428
  def test_connection(self):
418
429
  """Test HTTP Connection."""
419
430
  try:
420
- self.run()
431
+ asyncio.run(self.run())
421
432
  return True, "Connection successfully tested"
422
433
  except Exception as e:
423
434
  return False, str(e)
@@ -188,9 +188,15 @@ class WasbTaskHandler(FileTaskHandler, LoggingMixin):
188
188
  base_log_folder: str,
189
189
  wasb_log_folder: str,
190
190
  wasb_container: str,
191
+ max_bytes: int = 0,
192
+ backup_count: int = 0,
193
+ delay: bool = False,
191
194
  **kwargs,
192
195
  ) -> None:
193
- super().__init__(base_log_folder)
196
+ # support log file size handling of FileTaskHandler
197
+ super().__init__(
198
+ base_log_folder=base_log_folder, max_bytes=max_bytes, backup_count=backup_count, delay=delay
199
+ )
194
200
  self.handler: logging.FileHandler | None = None
195
201
  self.log_relative_path = ""
196
202
  self.closed = False
@@ -347,6 +347,7 @@ class MSGraphAsyncOperator(BaseOperator):
347
347
  self.defer(
348
348
  trigger=MSGraphTrigger(
349
349
  url=url,
350
+ method=self.method,
350
351
  query_parameters=query_parameters,
351
352
  response_type=self.response_type,
352
353
  conn_id=self.conn_id,
@@ -27,7 +27,10 @@ from airflow.providers.microsoft.azure.triggers.powerbi import (
27
27
  PowerBITrigger,
28
28
  PowerBIWorkspaceListTrigger,
29
29
  )
30
- from airflow.providers.microsoft.azure.version_compat import BaseOperator
30
+ from airflow.providers.microsoft.azure.version_compat import (
31
+ BaseOperator,
32
+ BaseOperatorLink,
33
+ )
31
34
 
32
35
  if TYPE_CHECKING:
33
36
  from msgraph_core import APIVersion
@@ -35,13 +38,6 @@ if TYPE_CHECKING:
35
38
  from airflow.models.taskinstancekey import TaskInstanceKey
36
39
  from airflow.utils.context import Context
37
40
 
38
- from airflow.providers.microsoft.azure.version_compat import AIRFLOW_V_3_0_PLUS
39
-
40
- if AIRFLOW_V_3_0_PLUS:
41
- from airflow.sdk import BaseOperatorLink
42
- else:
43
- from airflow.models.baseoperatorlink import BaseOperatorLink # type: ignore[no-redef]
44
-
45
41
 
46
42
  class PowerBILink(BaseOperatorLink):
47
43
  """Construct a link to monitor a dataset in Power BI."""
@@ -25,12 +25,7 @@ from airflow.providers.common.compat.standard.triggers import TimeDeltaTrigger
25
25
  from airflow.providers.microsoft.azure.hooks.msgraph import KiotaRequestAdapterHook
26
26
  from airflow.providers.microsoft.azure.operators.msgraph import execute_callable
27
27
  from airflow.providers.microsoft.azure.triggers.msgraph import MSGraphTrigger, ResponseSerializer
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]
28
+ from airflow.providers.microsoft.azure.version_compat import BaseSensorOperator
34
29
 
35
30
  if TYPE_CHECKING:
36
31
  from datetime import timedelta
@@ -20,7 +20,7 @@ from __future__ import annotations
20
20
  import json
21
21
  import locale
22
22
  from base64 import b64encode
23
- from collections.abc import AsyncIterator, Sequence
23
+ from collections.abc import AsyncIterator
24
24
  from contextlib import suppress
25
25
  from datetime import datetime
26
26
  from functools import cached_property
@@ -97,17 +97,6 @@ class MSGraphTrigger(BaseTrigger):
97
97
  Bytes will be base64 encoded into a string, so it can be stored as an XCom.
98
98
  """
99
99
 
100
- template_fields: Sequence[str] = (
101
- "url",
102
- "response_type",
103
- "path_parameters",
104
- "url_template",
105
- "query_parameters",
106
- "headers",
107
- "data",
108
- "conn_id",
109
- )
110
-
111
100
  def __init__(
112
101
  self,
113
102
  url: str,
@@ -40,10 +40,13 @@ if AIRFLOW_V_3_0_PLUS:
40
40
  BaseOperator,
41
41
  BaseOperatorLink,
42
42
  BaseSensorOperator,
43
+ Connection,
44
+ Context,
43
45
  )
44
46
  else:
45
- from airflow.models import BaseOperator, BaseOperatorLink
47
+ from airflow.models import BaseOperator, BaseOperatorLink, Connection # type: ignore[assignment]
46
48
  from airflow.sensors.base import BaseSensorOperator # type: ignore[no-redef]
49
+ from airflow.utils.context import Context # type: ignore[no-redef]
47
50
 
48
51
  if AIRFLOW_V_3_1_PLUS:
49
52
  from airflow.sdk.bases.xcom import BaseXCom
@@ -61,5 +64,7 @@ __all__ = [
61
64
  "BaseOperator",
62
65
  "BaseOperatorLink",
63
66
  "BaseSensorOperator",
67
+ "Connection",
68
+ "Context",
64
69
  "XCOM_RETURN_KEY",
65
70
  ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-microsoft-azure
3
- Version: 12.7.0
3
+ Version: 12.7.1rc1
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>
@@ -20,7 +20,7 @@ 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
- Requires-Dist: apache-airflow>=2.10.0
23
+ Requires-Dist: apache-airflow>=2.10.0rc1
24
24
  Requires-Dist: adlfs>=2023.10.0
25
25
  Requires-Dist: azure-batch>=8.0.0
26
26
  Requires-Dist: azure-cosmos>=4.6.0
@@ -54,8 +54,8 @@ Requires-Dist: apache-airflow-providers-common-compat ; extra == "common-compat"
54
54
  Requires-Dist: apache-airflow-providers-oracle ; extra == "oracle"
55
55
  Requires-Dist: apache-airflow-providers-sftp ; extra == "sftp"
56
56
  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.0/changelog.html
58
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-microsoft-azure/12.7.0
57
+ Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-microsoft-azure/12.7.1/changelog.html
58
+ Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-microsoft-azure/12.7.1
59
59
  Project-URL: Mastodon, https://fosstodon.org/@airflow
60
60
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
61
61
  Project-URL: Source Code, https://github.com/apache/airflow
@@ -90,7 +90,7 @@ Provides-Extra: sftp
90
90
 
91
91
  Package ``apache-airflow-providers-microsoft-azure``
92
92
 
93
- Release: ``12.7.0``
93
+ Release: ``12.7.1``
94
94
 
95
95
 
96
96
  `Microsoft Azure <https://azure.microsoft.com/>`__
@@ -103,7 +103,7 @@ This is a provider package for ``microsoft.azure`` provider. All classes for thi
103
103
  are in ``airflow.providers.microsoft.azure`` python package.
104
104
 
105
105
  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.0/>`_.
106
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-microsoft-azure/12.7.1/>`_.
107
107
 
108
108
  Installation
109
109
  ------------
@@ -173,6 +173,18 @@ Dependent package
173
173
  `apache-airflow-providers-sftp <https://airflow.apache.org/docs/apache-airflow-providers-sftp>`_ ``sftp``
174
174
  ================================================================================================================== =================
175
175
 
176
+ Optional dependencies
177
+ ----------------------
178
+
179
+ ================= ==========================================
180
+ Extra Dependencies
181
+ ================= ==========================================
182
+ ``amazon`` ``apache-airflow-providers-amazon``
183
+ ``common.compat`` ``apache-airflow-providers-common-compat``
184
+ ``oracle`` ``apache-airflow-providers-oracle``
185
+ ``sftp`` ``apache-airflow-providers-sftp``
186
+ ================= ==========================================
187
+
176
188
  The changelog for the provider package can be found in the
177
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-microsoft-azure/12.7.0/changelog.html>`_.
189
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-microsoft-azure/12.7.1/changelog.html>`_.
178
190
 
@@ -1,8 +1,8 @@
1
1
  airflow/providers/microsoft/azure/LICENSE,sha256=gXPVwptPlW1TJ4HSuG5OMPg-a3h43OGMkZRR1rpwfJA,10850
2
- airflow/providers/microsoft/azure/__init__.py,sha256=Fu_0IHkdL_yZvQy3f6BKNl14No6pKkMpt_qTK46I-Bs,1505
2
+ airflow/providers/microsoft/azure/__init__.py,sha256=vujwor5X8C6TV5n-YfIFTMv2Z2-RzMRWmP43HiuaITY,1505
3
3
  airflow/providers/microsoft/azure/get_provider_info.py,sha256=AeIwe8L-5p1z7IVF9Yc_mmQyAe149r6YVCyRpjfc3u0,18946
4
4
  airflow/providers/microsoft/azure/utils.py,sha256=KU9vHQRUhqTbC30GvmuZbL8rPBAziemM1oaT4rZp6K8,9015
5
- airflow/providers/microsoft/azure/version_compat.py,sha256=pBBF2QxTvpmUMxTE4MfbLfZmydT8FgSxiMMYLAsTTIo,2388
5
+ airflow/providers/microsoft/azure/version_compat.py,sha256=f3OsfVwvYvtOHQO_LcHam3pP2rcH_TKkn8VaJpgGiDo,2570
6
6
  airflow/providers/microsoft/azure/fs/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
7
7
  airflow/providers/microsoft/azure/fs/adls.py,sha256=1La15shfckTX6tem3O34Gdneyd0TXFlFwABqIRHUd1A,3937
8
8
  airflow/providers/microsoft/azure/hooks/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
@@ -17,12 +17,12 @@ airflow/providers/microsoft/azure/hooks/cosmos.py,sha256=gw90ZaoaPzTpE27eVM5zbJD
17
17
  airflow/providers/microsoft/azure/hooks/data_factory.py,sha256=oo1qcyTDDhJcclq0gE3eVJsFZ_DbuT1PXhTz0NXawds,45028
18
18
  airflow/providers/microsoft/azure/hooks/data_lake.py,sha256=1O6eRxe-4Hm5wkWH2zeS4nxc3CYUSFXOu8ySz-UtZJ8,23888
19
19
  airflow/providers/microsoft/azure/hooks/fileshare.py,sha256=x8hXYHE6qUjJDTa1qp47DS34eZBeBrwE4cZkk1i0u48,10790
20
- airflow/providers/microsoft/azure/hooks/msgraph.py,sha256=QdQIBhbgFdu4-W0meOnPiWwKmFUzZRGxR8Kjepn3BV4,22247
20
+ airflow/providers/microsoft/azure/hooks/msgraph.py,sha256=jqAz0AxUJxcOcRj29GsZBsZG0uOT8mqxTGgkG7Ed088,22801
21
21
  airflow/providers/microsoft/azure/hooks/powerbi.py,sha256=_Z-PWDcZxwSmyP9uXBEEYNRrSIlGPFVUtDrtVk3KKxE,9778
22
22
  airflow/providers/microsoft/azure/hooks/synapse.py,sha256=PC7whM9SOuc29hu9mU1DOvi5xmevGLS9Gadql2u0KYM,16077
23
23
  airflow/providers/microsoft/azure/hooks/wasb.py,sha256=mjYMNWNuPVgW2EGUwmHS1Af3bKx1cho4-cGAz5xgZXQ,32882
24
24
  airflow/providers/microsoft/azure/log/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
25
- airflow/providers/microsoft/azure/log/wasb_task_handler.py,sha256=s0BCDf7fritIvuwznFJTUEE03GqfecKy-stf1niWr3o,9926
25
+ airflow/providers/microsoft/azure/log/wasb_task_handler.py,sha256=Kgh-_GJ15GHlcCdPZdCAshKe92cqgHFvMpOae_RVaHs,10173
26
26
  airflow/providers/microsoft/azure/operators/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
27
27
  airflow/providers/microsoft/azure/operators/adls.py,sha256=mtyCEhnva1I98nLLM6CdwbUXnBJfb045z5n5zANnTIs,5850
28
28
  airflow/providers/microsoft/azure/operators/adx.py,sha256=yp7nsc0QWGxodhpwg_uQiT2XI3qNAICRjsgkcfbWmEI,3189
@@ -31,8 +31,8 @@ airflow/providers/microsoft/azure/operators/batch.py,sha256=NYjaxYcFwficmJb7l3Vj
31
31
  airflow/providers/microsoft/azure/operators/container_instances.py,sha256=8ti1L50pQQcRVL_7noKo6IXoobi8hO0-A4SlgcbIhX0,18672
32
32
  airflow/providers/microsoft/azure/operators/cosmos.py,sha256=t7XWU4L5W7tr33J6lC3_mIrFANW_JE1QOYpSFydkBxs,2848
33
33
  airflow/providers/microsoft/azure/operators/data_factory.py,sha256=TQz7zQ3zBKOHhackZxMTdBFo66RenoPwcO8gXaLVXIs,12797
34
- airflow/providers/microsoft/azure/operators/msgraph.py,sha256=d8PU8NqXq5_4YA0_aYlqpUfh58ZGp95hmR7yaTMiSJk,14157
35
- airflow/providers/microsoft/azure/operators/powerbi.py,sha256=qcIMFKemQLgiJKQBxciBl1cT8nOwYP-7IPzPosUAAo8,11863
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
36
  airflow/providers/microsoft/azure/operators/synapse.py,sha256=boHHnenDSaTehFnuf-upPeBA9ej5Mnx3u6HQyVXH_5g,12747
37
37
  airflow/providers/microsoft/azure/operators/wasb_delete_blob.py,sha256=Rigi5xFXkHFNcX4-VnA4fFxJlKHlevdsCExX6VJWCts,2748
38
38
  airflow/providers/microsoft/azure/secrets/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
@@ -40,7 +40,7 @@ airflow/providers/microsoft/azure/secrets/key_vault.py,sha256=zbgjqiQo-cWu1N6QD7
40
40
  airflow/providers/microsoft/azure/sensors/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
41
41
  airflow/providers/microsoft/azure/sensors/cosmos.py,sha256=Py3n-LOqaH2XuTxQVDZQv4d4RMREqBrmhWZ4NIbLr9Y,2851
42
42
  airflow/providers/microsoft/azure/sensors/data_factory.py,sha256=u_8vcnVmjzuCrOJbTeexxytfpXlkz0bSMkuWYmyZktI,5214
43
- airflow/providers/microsoft/azure/sensors/msgraph.py,sha256=-dWLQpLdiZlAKF9AQcHsYwRslaOdypxwss5_OSJrtg8,7918
43
+ airflow/providers/microsoft/azure/sensors/msgraph.py,sha256=fHcWAYAvqXBh-81h8c4r-FPMYFVr5jO-yF7c9ZYOo8k,7759
44
44
  airflow/providers/microsoft/azure/sensors/wasb.py,sha256=SXhgU2L1iTULybQzIw0059BkL6LyVRCXr6kOayCgX20,7569
45
45
  airflow/providers/microsoft/azure/transfers/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
46
46
  airflow/providers/microsoft/azure/transfers/local_to_adls.py,sha256=GZl16M2V9xIDYmUyERq6-RxvbP_0VVcMmeG9Z2jLzkU,4237
@@ -50,10 +50,10 @@ airflow/providers/microsoft/azure/transfers/s3_to_wasb.py,sha256=jQgicPw4uGyRSss
50
50
  airflow/providers/microsoft/azure/transfers/sftp_to_wasb.py,sha256=l6kdtxq3SvCUo_Hx60t1YiX4bP8lF3WmbglICHk24vo,8409
51
51
  airflow/providers/microsoft/azure/triggers/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
52
52
  airflow/providers/microsoft/azure/triggers/data_factory.py,sha256=U3vY_pj4yORxE7X6YR7CP3Jl73K9euCdUczy3dLmikU,11165
53
- airflow/providers/microsoft/azure/triggers/msgraph.py,sha256=iz9WRgI0R-LfGsPMiByvGZxhFA2pvIDlh5c03IuzZxU,8771
53
+ airflow/providers/microsoft/azure/triggers/msgraph.py,sha256=8Ke7jzmvld8uzBN1sxgs4xjzMXvxPYXWtLemyZ8lP9U,8542
54
54
  airflow/providers/microsoft/azure/triggers/powerbi.py,sha256=z9LJ-PfgWstt7c2eIJX5LOGUicfdMv2EELhCsrCJ6Nk,16371
55
55
  airflow/providers/microsoft/azure/triggers/wasb.py,sha256=RF-C6iqDEs6_pWireCWZXqxcqWK-sFJ695Okdd_EJOA,7456
56
- apache_airflow_providers_microsoft_azure-12.7.0.dist-info/entry_points.txt,sha256=6iWHenOoUC3YZBb3OKn6g0HlJsV58Ba56i8USmQrcJI,111
57
- apache_airflow_providers_microsoft_azure-12.7.0.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
58
- apache_airflow_providers_microsoft_azure-12.7.0.dist-info/METADATA,sha256=Lq3YJ08cpjOA4JWHfDmrWLNFV51KVeFJy_Aa8SW-hz8,8644
59
- apache_airflow_providers_microsoft_azure-12.7.0.dist-info/RECORD,,
56
+ apache_airflow_providers_microsoft_azure-12.7.1rc1.dist-info/entry_points.txt,sha256=6iWHenOoUC3YZBb3OKn6g0HlJsV58Ba56i8USmQrcJI,111
57
+ apache_airflow_providers_microsoft_azure-12.7.1rc1.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
58
+ apache_airflow_providers_microsoft_azure-12.7.1rc1.dist-info/METADATA,sha256=EcYANBZj9Lcg18v-bm55y5zP62qKbPDpU3s7rVvnbpo,9154
59
+ apache_airflow_providers_microsoft_azure-12.7.1rc1.dist-info/RECORD,,