apache-airflow-providers-microsoft-azure 10.1.0__py3-none-any.whl → 10.1.0rc1__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.
@@ -25,12 +25,15 @@ from __future__ import annotations
25
25
 
26
26
  import packaging.version
27
27
 
28
- from airflow import __version__ as airflow_version
29
-
30
28
  __all__ = ["__version__"]
31
29
 
32
30
  __version__ = "10.1.0"
33
31
 
32
+ try:
33
+ from airflow import __version__ as airflow_version
34
+ except ImportError:
35
+ from airflow.version import version as airflow_version
36
+
34
37
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
38
  "2.7.0"
36
39
  ):
@@ -28,7 +28,7 @@ def get_provider_info():
28
28
  "name": "Microsoft Azure",
29
29
  "description": "`Microsoft Azure <https://azure.microsoft.com/>`__\n",
30
30
  "state": "ready",
31
- "source-date-epoch": 1715384449,
31
+ "source-date-epoch": 1714476738,
32
32
  "versions": [
33
33
  "10.1.0",
34
34
  "10.0.0",
@@ -18,11 +18,9 @@
18
18
  from __future__ import annotations
19
19
 
20
20
  import json
21
- from contextlib import suppress
22
21
  from http import HTTPStatus
23
22
  from io import BytesIO
24
- from json import JSONDecodeError
25
- from typing import TYPE_CHECKING, Any
23
+ from typing import TYPE_CHECKING, Any, Callable
26
24
  from urllib.parse import quote, urljoin, urlparse
27
25
 
28
26
  import httpx
@@ -53,17 +51,18 @@ if TYPE_CHECKING:
53
51
  from airflow.models import Connection
54
52
 
55
53
 
56
- class DefaultResponseHandler(ResponseHandler):
57
- """DefaultResponseHandler returns JSON payload or content in bytes or response headers."""
54
+ class CallableResponseHandler(ResponseHandler):
55
+ """
56
+ CallableResponseHandler executes the passed callable_function with response as parameter.
58
57
 
59
- @staticmethod
60
- def get_value(response: NativeResponseType) -> Any:
61
- with suppress(JSONDecodeError):
62
- return response.json()
63
- content = response.content
64
- if not content:
65
- return {key: value for key, value in response.headers.items()}
66
- return content
58
+ param callable_function: Function that is applied to the response.
59
+ """
60
+
61
+ def __init__(
62
+ self,
63
+ callable_function: Callable[[NativeResponseType, dict[str, ParsableFactory | None] | None], Any],
64
+ ):
65
+ self.callable_function = callable_function
67
66
 
68
67
  async def handle_response_async(
69
68
  self, response: NativeResponseType, error_map: dict[str, ParsableFactory | None] | None = None
@@ -74,7 +73,7 @@ class DefaultResponseHandler(ResponseHandler):
74
73
  param response: The type of the native response object.
75
74
  param error_map: The error dict to use in case of a failed request.
76
75
  """
77
- value = self.get_value(response)
76
+ value = self.callable_function(response, error_map)
78
77
  if response.status_code not in {200, 201, 202, 204, 302}:
79
78
  message = value or response.reason_phrase
80
79
  status_code = HTTPStatus(response.status_code)
@@ -270,18 +269,20 @@ class KiotaRequestAdapterHook(BaseHook):
270
269
  self,
271
270
  url: str = "",
272
271
  response_type: ResponseType | None = None,
272
+ response_handler: Callable[
273
+ [NativeResponseType, dict[str, ParsableFactory | None] | None], Any
274
+ ] = lambda response, error_map: response.json(),
273
275
  path_parameters: dict[str, Any] | None = None,
274
276
  method: str = "GET",
275
277
  query_parameters: dict[str, QueryParams] | None = None,
276
278
  headers: dict[str, str] | None = None,
277
279
  data: dict[str, Any] | str | BytesIO | None = None,
278
280
  ):
279
- self.log.info("Executing url '%s' as '%s'", url, method)
280
-
281
281
  response = await self.get_conn().send_primitive_async(
282
282
  request_info=self.request_information(
283
283
  url=url,
284
284
  response_type=response_type,
285
+ response_handler=response_handler,
285
286
  path_parameters=path_parameters,
286
287
  method=method,
287
288
  query_parameters=query_parameters,
@@ -292,7 +293,7 @@ class KiotaRequestAdapterHook(BaseHook):
292
293
  error_map=self.error_mapping(),
293
294
  )
294
295
 
295
- self.log.info("response: %s", response)
296
+ self.log.debug("response: %s", response)
296
297
 
297
298
  return response
298
299
 
@@ -300,6 +301,9 @@ class KiotaRequestAdapterHook(BaseHook):
300
301
  self,
301
302
  url: str,
302
303
  response_type: ResponseType | None = None,
304
+ response_handler: Callable[
305
+ [NativeResponseType, dict[str, ParsableFactory | None] | None], Any
306
+ ] = lambda response, error_map: response.json(),
303
307
  path_parameters: dict[str, Any] | None = None,
304
308
  method: str = "GET",
305
309
  query_parameters: dict[str, QueryParams] | None = None,
@@ -319,11 +323,12 @@ class KiotaRequestAdapterHook(BaseHook):
319
323
  request_information.url_template = f"{{+baseurl}}/{self.normalize_url(url)}"
320
324
  if not response_type:
321
325
  request_information.request_options[ResponseHandlerOption.get_key()] = ResponseHandlerOption(
322
- response_handler=DefaultResponseHandler()
326
+ response_handler=CallableResponseHandler(response_handler)
323
327
  )
324
328
  headers = {**self.DEFAULT_HEADERS, **headers} if headers else self.DEFAULT_HEADERS
325
329
  for header_name, header_value in headers.items():
326
330
  request_information.headers.try_add(header_name=header_name, header_value=header_value)
331
+ self.log.info("data: %s", data)
327
332
  if isinstance(data, BytesIO) or isinstance(data, bytes) or isinstance(data, str):
328
333
  request_information.content = data
329
334
  elif data:
@@ -39,6 +39,8 @@ if TYPE_CHECKING:
39
39
 
40
40
  from kiota_abstractions.request_adapter import ResponseType
41
41
  from kiota_abstractions.request_information import QueryParams
42
+ from kiota_abstractions.response_handler import NativeResponseType
43
+ from kiota_abstractions.serialization import ParsableFactory
42
44
  from msgraph_core import APIVersion
43
45
 
44
46
  from airflow.utils.context import Context
@@ -57,6 +59,9 @@ class MSGraphAsyncOperator(BaseOperator):
57
59
  :param url: The url being executed on the Microsoft Graph API (templated).
58
60
  :param response_type: The expected return type of the response as a string. Possible value are: `bytes`,
59
61
  `str`, `int`, `float`, `bool` and `datetime` (default is None).
62
+ :param response_handler: Function to convert the native HTTPX response returned by the hook (default is
63
+ lambda response, error_map: response.json()). The default expression will convert the native response
64
+ to JSON. If response_type parameter is specified, then the response_handler will be ignored.
60
65
  :param method: The HTTP method being used to do the REST call (default is GET).
61
66
  :param conn_id: The HTTP Connection ID to run the operator against (templated).
62
67
  :param key: The key that will be used to store `XCom's` ("return_value" is default).
@@ -89,6 +94,9 @@ class MSGraphAsyncOperator(BaseOperator):
89
94
  *,
90
95
  url: str,
91
96
  response_type: ResponseType | None = None,
97
+ response_handler: Callable[
98
+ [NativeResponseType, dict[str, ParsableFactory | None] | None], Any
99
+ ] = lambda response, error_map: response.json(),
92
100
  path_parameters: dict[str, Any] | None = None,
93
101
  url_template: str | None = None,
94
102
  method: str = "GET",
@@ -108,6 +116,7 @@ class MSGraphAsyncOperator(BaseOperator):
108
116
  super().__init__(**kwargs)
109
117
  self.url = url
110
118
  self.response_type = response_type
119
+ self.response_handler = response_handler
111
120
  self.path_parameters = path_parameters
112
121
  self.url_template = url_template
113
122
  self.method = method
@@ -125,6 +134,7 @@ class MSGraphAsyncOperator(BaseOperator):
125
134
  self.results: list[Any] | None = None
126
135
 
127
136
  def execute(self, context: Context) -> None:
137
+ self.log.info("Executing url '%s' as '%s'", self.url, self.method)
128
138
  self.defer(
129
139
  trigger=MSGraphTrigger(
130
140
  url=self.url,
@@ -157,14 +167,14 @@ class MSGraphAsyncOperator(BaseOperator):
157
167
  self.log.debug("context: %s", context)
158
168
 
159
169
  if event:
160
- self.log.debug("%s completed with %s: %s", self.task_id, event.get("status"), event)
170
+ self.log.info("%s completed with %s: %s", self.task_id, event.get("status"), event)
161
171
 
162
172
  if event.get("status") == "failure":
163
173
  raise AirflowException(event.get("message"))
164
174
 
165
175
  response = event.get("response")
166
176
 
167
- self.log.debug("response: %s", response)
177
+ self.log.info("response: %s", response)
168
178
 
169
179
  if response:
170
180
  response = self.serializer.deserialize(response)
@@ -271,6 +281,7 @@ class MSGraphAsyncOperator(BaseOperator):
271
281
  url=url,
272
282
  query_parameters=query_parameters,
273
283
  response_type=self.response_type,
284
+ response_handler=self.response_handler,
274
285
  conn_id=self.conn_id,
275
286
  timeout=self.timeout,
276
287
  proxies=self.proxies,
@@ -17,25 +17,33 @@
17
17
  # under the License.
18
18
  from __future__ import annotations
19
19
 
20
+ import asyncio
21
+ import json
20
22
  from typing import TYPE_CHECKING, Any, Callable, Sequence
21
23
 
22
- from airflow.exceptions import AirflowException
23
24
  from airflow.providers.microsoft.azure.hooks.msgraph import KiotaRequestAdapterHook
24
25
  from airflow.providers.microsoft.azure.triggers.msgraph import MSGraphTrigger, ResponseSerializer
25
- from airflow.sensors.base import BaseSensorOperator
26
- from airflow.triggers.temporal import TimeDeltaTrigger
26
+ from airflow.sensors.base import BaseSensorOperator, PokeReturnValue
27
27
 
28
28
  if TYPE_CHECKING:
29
- from datetime import timedelta
30
29
  from io import BytesIO
31
30
 
32
31
  from kiota_abstractions.request_information import QueryParams
32
+ from kiota_abstractions.response_handler import NativeResponseType
33
+ from kiota_abstractions.serialization import ParsableFactory
33
34
  from kiota_http.httpx_request_adapter import ResponseType
34
35
  from msgraph_core import APIVersion
35
36
 
37
+ from airflow.triggers.base import TriggerEvent
36
38
  from airflow.utils.context import Context
37
39
 
38
40
 
41
+ def default_event_processor(context: Context, event: TriggerEvent) -> bool:
42
+ if event.payload["status"] == "success":
43
+ return json.loads(event.payload["response"])["status"] == "Succeeded"
44
+ return False
45
+
46
+
39
47
  class MSGraphSensor(BaseSensorOperator):
40
48
  """
41
49
  A Microsoft Graph API sensor which allows you to poll an async REST call to the Microsoft Graph API.
@@ -43,6 +51,9 @@ class MSGraphSensor(BaseSensorOperator):
43
51
  :param url: The url being executed on the Microsoft Graph API (templated).
44
52
  :param response_type: The expected return type of the response as a string. Possible value are: `bytes`,
45
53
  `str`, `int`, `float`, `bool` and `datetime` (default is None).
54
+ :param response_handler: Function to convert the native HTTPX response returned by the hook (default is
55
+ lambda response, error_map: response.json()). The default expression will convert the native response
56
+ to JSON. If response_type parameter is specified, then the response_handler will be ignored.
46
57
  :param method: The HTTP method being used to do the REST call (default is GET).
47
58
  :param conn_id: The HTTP Connection ID to run the operator against (templated).
48
59
  :param proxies: A dict defining the HTTP proxies to be used (default is None).
@@ -74,6 +85,9 @@ class MSGraphSensor(BaseSensorOperator):
74
85
  self,
75
86
  url: str,
76
87
  response_type: ResponseType | None = None,
88
+ response_handler: Callable[
89
+ [NativeResponseType, dict[str, ParsableFactory | None] | None], Any
90
+ ] = lambda response, error_map: response.json(),
77
91
  path_parameters: dict[str, Any] | None = None,
78
92
  url_template: str | None = None,
79
93
  method: str = "GET",
@@ -83,15 +97,15 @@ class MSGraphSensor(BaseSensorOperator):
83
97
  conn_id: str = KiotaRequestAdapterHook.default_conn_name,
84
98
  proxies: dict | None = None,
85
99
  api_version: APIVersion | None = None,
86
- event_processor: Callable[[Context, Any], bool] = lambda context, e: e.get("status") == "Succeeded",
100
+ event_processor: Callable[[Context, TriggerEvent], bool] = default_event_processor,
87
101
  result_processor: Callable[[Context, Any], Any] = lambda context, result: result,
88
102
  serializer: type[ResponseSerializer] = ResponseSerializer,
89
- retry_delay: timedelta | float = 60,
90
103
  **kwargs,
91
104
  ):
92
- super().__init__(retry_delay=retry_delay, **kwargs)
105
+ super().__init__(**kwargs)
93
106
  self.url = url
94
107
  self.response_type = response_type
108
+ self.response_handler = response_handler
95
109
  self.path_parameters = path_parameters
96
110
  self.url_template = url_template
97
111
  self.method = method
@@ -105,73 +119,45 @@ class MSGraphSensor(BaseSensorOperator):
105
119
  self.result_processor = result_processor
106
120
  self.serializer = serializer()
107
121
 
108
- def execute(self, context: Context):
109
- self.defer(
110
- trigger=MSGraphTrigger(
111
- url=self.url,
112
- response_type=self.response_type,
113
- path_parameters=self.path_parameters,
114
- url_template=self.url_template,
115
- method=self.method,
116
- query_parameters=self.query_parameters,
117
- headers=self.headers,
118
- data=self.data,
119
- conn_id=self.conn_id,
120
- timeout=self.timeout,
121
- proxies=self.proxies,
122
- api_version=self.api_version,
123
- serializer=type(self.serializer),
124
- ),
125
- method_name=self.execute_complete.__name__,
122
+ @property
123
+ def trigger(self):
124
+ return MSGraphTrigger(
125
+ url=self.url,
126
+ response_type=self.response_type,
127
+ response_handler=self.response_handler,
128
+ path_parameters=self.path_parameters,
129
+ url_template=self.url_template,
130
+ method=self.method,
131
+ query_parameters=self.query_parameters,
132
+ headers=self.headers,
133
+ data=self.data,
134
+ conn_id=self.conn_id,
135
+ timeout=self.timeout,
136
+ proxies=self.proxies,
137
+ api_version=self.api_version,
138
+ serializer=type(self.serializer),
126
139
  )
127
140
 
128
- def retry_execute(
129
- self,
130
- context: Context,
131
- ) -> Any:
132
- self.execute(context=context)
133
-
134
- def execute_complete(
135
- self,
136
- context: Context,
137
- event: dict[Any, Any] | None = None,
138
- ) -> Any:
139
- """
140
- Execute callback when MSGraphSensor finishes execution.
141
-
142
- This method gets executed automatically when MSGraphTrigger completes its execution.
143
- """
144
- self.log.debug("context: %s", context)
145
-
146
- if event:
147
- self.log.debug("%s completed with %s: %s", self.task_id, event.get("status"), event)
148
-
149
- if event.get("status") == "failure":
150
- raise AirflowException(event.get("message"))
151
-
152
- response = event.get("response")
153
-
154
- self.log.debug("response: %s", response)
141
+ async def async_poke(self, context: Context) -> bool | PokeReturnValue:
142
+ self.log.info("Sensor triggered")
155
143
 
156
- if response:
157
- response = self.serializer.deserialize(response)
144
+ async for event in self.trigger.run():
145
+ self.log.debug("event: %s", event)
158
146
 
159
- self.log.debug("deserialize response: %s", response)
147
+ is_done = self.event_processor(context, event)
160
148
 
161
- is_done = self.event_processor(context, response)
149
+ self.log.debug("is_done: %s", is_done)
162
150
 
163
- self.log.debug("is_done: %s", is_done)
151
+ response = self.serializer.deserialize(event.payload["response"])
164
152
 
165
- if is_done:
166
- result = self.result_processor(context, response)
153
+ self.log.debug("deserialize event: %s", response)
167
154
 
168
- self.log.debug("processed response: %s", result)
155
+ result = self.result_processor(context, response)
169
156
 
170
- return result
157
+ self.log.debug("result: %s", result)
171
158
 
172
- self.defer(
173
- trigger=TimeDeltaTrigger(self.retry_delay),
174
- method_name=self.retry_execute.__name__,
175
- )
159
+ return PokeReturnValue(is_done=is_done, xcom_value=result)
160
+ return PokeReturnValue(is_done=True)
176
161
 
177
- return None
162
+ def poke(self, context) -> bool | PokeReturnValue:
163
+ return asyncio.run(self.async_poke(context))
@@ -27,6 +27,7 @@ from typing import (
27
27
  TYPE_CHECKING,
28
28
  Any,
29
29
  AsyncIterator,
30
+ Callable,
30
31
  Sequence,
31
32
  )
32
33
  from uuid import UUID
@@ -42,6 +43,8 @@ if TYPE_CHECKING:
42
43
 
43
44
  from kiota_abstractions.request_adapter import RequestAdapter
44
45
  from kiota_abstractions.request_information import QueryParams
46
+ from kiota_abstractions.response_handler import NativeResponseType
47
+ from kiota_abstractions.serialization import ParsableFactory
45
48
  from kiota_http.httpx_request_adapter import ResponseType
46
49
  from msgraph_core import APIVersion
47
50
 
@@ -86,6 +89,9 @@ class MSGraphTrigger(BaseTrigger):
86
89
  :param url: The url being executed on the Microsoft Graph API (templated).
87
90
  :param response_type: The expected return type of the response as a string. Possible value are: `bytes`,
88
91
  `str`, `int`, `float`, `bool` and `datetime` (default is None).
92
+ :param response_handler: Function to convert the native HTTPX response returned by the hook (default is
93
+ lambda response, error_map: response.json()). The default expression will convert the native response
94
+ to JSON. If response_type parameter is specified, then the response_handler will be ignored.
89
95
  :param method: The HTTP method being used to do the REST call (default is GET).
90
96
  :param conn_id: The HTTP Connection ID to run the operator against (templated).
91
97
  :param timeout: The HTTP timeout being used by the `KiotaRequestAdapter` (default is None).
@@ -113,6 +119,9 @@ class MSGraphTrigger(BaseTrigger):
113
119
  self,
114
120
  url: str,
115
121
  response_type: ResponseType | None = None,
122
+ response_handler: Callable[
123
+ [NativeResponseType, dict[str, ParsableFactory | None] | None], Any
124
+ ] = lambda response, error_map: response.json(),
116
125
  path_parameters: dict[str, Any] | None = None,
117
126
  url_template: str | None = None,
118
127
  method: str = "GET",
@@ -134,6 +143,7 @@ class MSGraphTrigger(BaseTrigger):
134
143
  )
135
144
  self.url = url
136
145
  self.response_type = response_type
146
+ self.response_handler = response_handler
137
147
  self.path_parameters = path_parameters
138
148
  self.url_template = url_template
139
149
  self.method = method
@@ -197,6 +207,7 @@ class MSGraphTrigger(BaseTrigger):
197
207
  response = await self.hook.run(
198
208
  url=self.url,
199
209
  response_type=self.response_type,
210
+ response_handler=self.response_handler,
200
211
  path_parameters=self.path_parameters,
201
212
  method=self.method,
202
213
  query_parameters=self.query_parameters,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: apache-airflow-providers-microsoft-azure
3
- Version: 10.1.0
3
+ Version: 10.1.0rc1
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>
@@ -23,7 +23,7 @@ Classifier: Programming Language :: Python :: 3.12
23
23
  Classifier: Topic :: System :: Monitoring
24
24
  Requires-Dist: adal>=1.2.7
25
25
  Requires-Dist: adlfs>=2023.10.0
26
- Requires-Dist: apache-airflow>=2.7.0
26
+ Requires-Dist: apache-airflow>=2.7.0rc0
27
27
  Requires-Dist: azure-batch>=8.0.0
28
28
  Requires-Dist: azure-cosmos>=4.6.0
29
29
  Requires-Dist: azure-datalake-store>=0.0.45
@@ -102,7 +102,7 @@ Provides-Extra: sftp
102
102
 
103
103
  Package ``apache-airflow-providers-microsoft-azure``
104
104
 
105
- Release: ``10.1.0``
105
+ Release: ``10.1.0.rc1``
106
106
 
107
107
 
108
108
  `Microsoft Azure <https://azure.microsoft.com/>`__
@@ -1,6 +1,6 @@
1
1
  airflow/providers/microsoft/azure/LICENSE,sha256=ywUBpKZc7Jb96rVt5I3IDbg7dIJAbUSHkuoDcF3jbH4,13569
2
- airflow/providers/microsoft/azure/__init__.py,sha256=eu1HPyp74EiSvh01sguPYn870YS9m1cHtEITuSl2FNY,1503
3
- airflow/providers/microsoft/azure/get_provider_info.py,sha256=4UPurIYf5H3wZCDJRqThRe1VpzPUyw7vJtsCEewAeO8,19914
2
+ airflow/providers/microsoft/azure/__init__.py,sha256=5YQ3aYk7EPxdiSA_m52YDJ5HCsMjAFNLBiNW0n3z7IA,1591
3
+ airflow/providers/microsoft/azure/get_provider_info.py,sha256=dZtSK556OtDMPmfeq5OOcBonzFAaIUG_qYjvbtCwqeA,19914
4
4
  airflow/providers/microsoft/azure/utils.py,sha256=EmK9LTNfbmpJFRKBd0HBE0MkRhIPY1suWuEaLAfugHY,8401
5
5
  airflow/providers/microsoft/azure/fs/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
6
6
  airflow/providers/microsoft/azure/fs/adls.py,sha256=kXZOVulLNfqwJNR0X9MBN23kcYr3dyv8K_0KqAcWvnk,3679
@@ -16,7 +16,7 @@ airflow/providers/microsoft/azure/hooks/cosmos.py,sha256=UCEM1xFj5wOGdNgy45fjbXg
16
16
  airflow/providers/microsoft/azure/hooks/data_factory.py,sha256=OZj2mzMmZxTq0Rkz2XnqfDoSRyUBo2PqEWTKWV_rZk8,45555
17
17
  airflow/providers/microsoft/azure/hooks/data_lake.py,sha256=OoSWCphn5JBIkjRuvLl-gyTIUZnOMIx0CGyYlYYKGu4,23580
18
18
  airflow/providers/microsoft/azure/hooks/fileshare.py,sha256=jaHSD_xZxposSD5FbdlpZ7JK_CugFHNrgejZkZbHJXM,10884
19
- airflow/providers/microsoft/azure/hooks/msgraph.py,sha256=wiDwS0TeyNV6lNFrL3GYDCrBdOEJTNewyL4xUCFjOT4,14809
19
+ airflow/providers/microsoft/azure/hooks/msgraph.py,sha256=5jsXdktH5MRNc8injqUrKoT82w7I-S6JmP6nEGW7TYk,15140
20
20
  airflow/providers/microsoft/azure/hooks/synapse.py,sha256=VNFLIA6T55_db9ZgwF6zMY2Ri5hpjOpvLL5zNt8019Y,16595
21
21
  airflow/providers/microsoft/azure/hooks/wasb.py,sha256=AZD_Mw0bsHGmHDk1Kb0AwQd2xD8rywfcyiF3TIW1PCw,29296
22
22
  airflow/providers/microsoft/azure/log/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
@@ -29,7 +29,7 @@ airflow/providers/microsoft/azure/operators/batch.py,sha256=BxhI8H9vzCtvPZo7bjQt
29
29
  airflow/providers/microsoft/azure/operators/container_instances.py,sha256=b3e3Kmgl_ypbPTDGFKhXKcuv_A3XDUibcNGt-eiZ6RI,16459
30
30
  airflow/providers/microsoft/azure/operators/cosmos.py,sha256=Y1Hj4p6W8soVFaq1rx8LFgchNISjkq8vjdaQ0j8Tnqs,2782
31
31
  airflow/providers/microsoft/azure/operators/data_factory.py,sha256=TrPMXlOAY3VHVeoysqJnq-ugBC_H53cKKSGfJfu9Dno,12441
32
- airflow/providers/microsoft/azure/operators/msgraph.py,sha256=yni_f-xUm3yN999X930osZPbGG37Bias3t0_r1O5lZs,10947
32
+ airflow/providers/microsoft/azure/operators/msgraph.py,sha256=rhoivKnAm6_lVmuAQDg1DZWtGywvit69LVYOxcDMfNg,11763
33
33
  airflow/providers/microsoft/azure/operators/synapse.py,sha256=gDniGvmCUooT8_jvIAJlc8zgPS57d0N_esL4e9xz7bo,12386
34
34
  airflow/providers/microsoft/azure/operators/wasb_delete_blob.py,sha256=GUfV9DLU1bGYvn2TE54iTYBTbxn3Jm_e985pXp_0IsE,2687
35
35
  airflow/providers/microsoft/azure/secrets/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
@@ -37,7 +37,7 @@ airflow/providers/microsoft/azure/secrets/key_vault.py,sha256=m8IwaMpXb9Zr0IPO_T
37
37
  airflow/providers/microsoft/azure/sensors/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
38
38
  airflow/providers/microsoft/azure/sensors/cosmos.py,sha256=vRrJ8zJnApvuKxHia53tNZUZ7wILWFT3_5cEyMA2M1I,2637
39
39
  airflow/providers/microsoft/azure/sensors/data_factory.py,sha256=KGHbz7j_8gl87Munmk42uQo3IVgY3hXJ0mhzF7dLkxM,5552
40
- airflow/providers/microsoft/azure/sensors/msgraph.py,sha256=7JTW7lnDyXRdFv5D1lUS4hm7WRnQWqtUukD_i20pqfE,7069
40
+ airflow/providers/microsoft/azure/sensors/msgraph.py,sha256=b0LeOLArd-S2hBP1IfzlYkl1I-ikPWxDjSMvKI1fBYI,7064
41
41
  airflow/providers/microsoft/azure/sensors/wasb.py,sha256=rcUgAyQMUZKQiSf8sr05K0AE-8MV8Czwwc79hLXVWKw,9043
42
42
  airflow/providers/microsoft/azure/transfers/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
43
43
  airflow/providers/microsoft/azure/transfers/azure_blob_to_gcs.py,sha256=nJgDlO6Q5saW-ZbRntTZyurwsRLHVM2zwD7YkrdJF_s,1628
@@ -47,9 +47,9 @@ airflow/providers/microsoft/azure/transfers/oracle_to_azure_data_lake.py,sha256=
47
47
  airflow/providers/microsoft/azure/transfers/sftp_to_wasb.py,sha256=bg_r8vRUgffIvkHf7x4-Ekgu0uzx-YzO2p7F_WZIbaI,8195
48
48
  airflow/providers/microsoft/azure/triggers/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
49
49
  airflow/providers/microsoft/azure/triggers/data_factory.py,sha256=W0OsDL4YeJ2zRuBf-HzXXxQ-J7ZtgTUmSHHpC1_CPz0,11128
50
- airflow/providers/microsoft/azure/triggers/msgraph.py,sha256=iEBE-wsIc7mHBGrxcp1H-8NqIvdZUd2SsqKBoy3J6nE,8675
50
+ airflow/providers/microsoft/azure/triggers/msgraph.py,sha256=nmO03dJoaqcT6qbHOueKgJpgwQIA0hIJ_JGj5Rfb8k0,9424
51
51
  airflow/providers/microsoft/azure/triggers/wasb.py,sha256=PkCoOGGNpqOukIeHtgBGrCRPWn4aAOXA6eOOnobzVNw,7429
52
- apache_airflow_providers_microsoft_azure-10.1.0.dist-info/entry_points.txt,sha256=6iWHenOoUC3YZBb3OKn6g0HlJsV58Ba56i8USmQrcJI,111
53
- apache_airflow_providers_microsoft_azure-10.1.0.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
54
- apache_airflow_providers_microsoft_azure-10.1.0.dist-info/METADATA,sha256=9fGdzIHIJn7-Ldi1orhekjQAVy15HxX_AcoipPMAZF8,8188
55
- apache_airflow_providers_microsoft_azure-10.1.0.dist-info/RECORD,,
52
+ apache_airflow_providers_microsoft_azure-10.1.0rc1.dist-info/entry_points.txt,sha256=6iWHenOoUC3YZBb3OKn6g0HlJsV58Ba56i8USmQrcJI,111
53
+ apache_airflow_providers_microsoft_azure-10.1.0rc1.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
54
+ apache_airflow_providers_microsoft_azure-10.1.0rc1.dist-info/METADATA,sha256=FBYpsXdkfft00f2065CKWF459finu7atC4kiCKUXVwk,8198
55
+ apache_airflow_providers_microsoft_azure-10.1.0rc1.dist-info/RECORD,,