apache-airflow-providers-microsoft-azure 10.1.0rc1__py3-none-any.whl → 10.1.0rc2__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,15 +25,12 @@ from __future__ import annotations
25
25
 
26
26
  import packaging.version
27
27
 
28
+ from airflow import __version__ as airflow_version
29
+
28
30
  __all__ = ["__version__"]
29
31
 
30
32
  __version__ = "10.1.0"
31
33
 
32
- try:
33
- from airflow import __version__ as airflow_version
34
- except ImportError:
35
- from airflow.version import version as airflow_version
36
-
37
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
38
35
  "2.7.0"
39
36
  ):
@@ -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": 1714476738,
31
+ "source-date-epoch": 1715384449,
32
32
  "versions": [
33
33
  "10.1.0",
34
34
  "10.0.0",
@@ -18,9 +18,11 @@
18
18
  from __future__ import annotations
19
19
 
20
20
  import json
21
+ from contextlib import suppress
21
22
  from http import HTTPStatus
22
23
  from io import BytesIO
23
- from typing import TYPE_CHECKING, Any, Callable
24
+ from json import JSONDecodeError
25
+ from typing import TYPE_CHECKING, Any
24
26
  from urllib.parse import quote, urljoin, urlparse
25
27
 
26
28
  import httpx
@@ -51,18 +53,17 @@ if TYPE_CHECKING:
51
53
  from airflow.models import Connection
52
54
 
53
55
 
54
- class CallableResponseHandler(ResponseHandler):
55
- """
56
- CallableResponseHandler executes the passed callable_function with response as parameter.
57
-
58
- param callable_function: Function that is applied to the response.
59
- """
56
+ class DefaultResponseHandler(ResponseHandler):
57
+ """DefaultResponseHandler returns JSON payload or content in bytes or response headers."""
60
58
 
61
- def __init__(
62
- self,
63
- callable_function: Callable[[NativeResponseType, dict[str, ParsableFactory | None] | None], Any],
64
- ):
65
- self.callable_function = callable_function
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
66
67
 
67
68
  async def handle_response_async(
68
69
  self, response: NativeResponseType, error_map: dict[str, ParsableFactory | None] | None = None
@@ -73,7 +74,7 @@ class CallableResponseHandler(ResponseHandler):
73
74
  param response: The type of the native response object.
74
75
  param error_map: The error dict to use in case of a failed request.
75
76
  """
76
- value = self.callable_function(response, error_map)
77
+ value = self.get_value(response)
77
78
  if response.status_code not in {200, 201, 202, 204, 302}:
78
79
  message = value or response.reason_phrase
79
80
  status_code = HTTPStatus(response.status_code)
@@ -269,20 +270,18 @@ class KiotaRequestAdapterHook(BaseHook):
269
270
  self,
270
271
  url: str = "",
271
272
  response_type: ResponseType | None = None,
272
- response_handler: Callable[
273
- [NativeResponseType, dict[str, ParsableFactory | None] | None], Any
274
- ] = lambda response, error_map: response.json(),
275
273
  path_parameters: dict[str, Any] | None = None,
276
274
  method: str = "GET",
277
275
  query_parameters: dict[str, QueryParams] | None = None,
278
276
  headers: dict[str, str] | None = None,
279
277
  data: dict[str, Any] | str | BytesIO | None = None,
280
278
  ):
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,
286
285
  path_parameters=path_parameters,
287
286
  method=method,
288
287
  query_parameters=query_parameters,
@@ -293,7 +292,7 @@ class KiotaRequestAdapterHook(BaseHook):
293
292
  error_map=self.error_mapping(),
294
293
  )
295
294
 
296
- self.log.debug("response: %s", response)
295
+ self.log.info("response: %s", response)
297
296
 
298
297
  return response
299
298
 
@@ -301,9 +300,6 @@ class KiotaRequestAdapterHook(BaseHook):
301
300
  self,
302
301
  url: str,
303
302
  response_type: ResponseType | None = None,
304
- response_handler: Callable[
305
- [NativeResponseType, dict[str, ParsableFactory | None] | None], Any
306
- ] = lambda response, error_map: response.json(),
307
303
  path_parameters: dict[str, Any] | None = None,
308
304
  method: str = "GET",
309
305
  query_parameters: dict[str, QueryParams] | None = None,
@@ -323,12 +319,11 @@ class KiotaRequestAdapterHook(BaseHook):
323
319
  request_information.url_template = f"{{+baseurl}}/{self.normalize_url(url)}"
324
320
  if not response_type:
325
321
  request_information.request_options[ResponseHandlerOption.get_key()] = ResponseHandlerOption(
326
- response_handler=CallableResponseHandler(response_handler)
322
+ response_handler=DefaultResponseHandler()
327
323
  )
328
324
  headers = {**self.DEFAULT_HEADERS, **headers} if headers else self.DEFAULT_HEADERS
329
325
  for header_name, header_value in headers.items():
330
326
  request_information.headers.try_add(header_name=header_name, header_value=header_value)
331
- self.log.info("data: %s", data)
332
327
  if isinstance(data, BytesIO) or isinstance(data, bytes) or isinstance(data, str):
333
328
  request_information.content = data
334
329
  elif data:
@@ -39,8 +39,6 @@ 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
44
42
  from msgraph_core import APIVersion
45
43
 
46
44
  from airflow.utils.context import Context
@@ -59,9 +57,6 @@ class MSGraphAsyncOperator(BaseOperator):
59
57
  :param url: The url being executed on the Microsoft Graph API (templated).
60
58
  :param response_type: The expected return type of the response as a string. Possible value are: `bytes`,
61
59
  `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.
65
60
  :param method: The HTTP method being used to do the REST call (default is GET).
66
61
  :param conn_id: The HTTP Connection ID to run the operator against (templated).
67
62
  :param key: The key that will be used to store `XCom's` ("return_value" is default).
@@ -94,9 +89,6 @@ class MSGraphAsyncOperator(BaseOperator):
94
89
  *,
95
90
  url: str,
96
91
  response_type: ResponseType | None = None,
97
- response_handler: Callable[
98
- [NativeResponseType, dict[str, ParsableFactory | None] | None], Any
99
- ] = lambda response, error_map: response.json(),
100
92
  path_parameters: dict[str, Any] | None = None,
101
93
  url_template: str | None = None,
102
94
  method: str = "GET",
@@ -116,7 +108,6 @@ class MSGraphAsyncOperator(BaseOperator):
116
108
  super().__init__(**kwargs)
117
109
  self.url = url
118
110
  self.response_type = response_type
119
- self.response_handler = response_handler
120
111
  self.path_parameters = path_parameters
121
112
  self.url_template = url_template
122
113
  self.method = method
@@ -134,7 +125,6 @@ class MSGraphAsyncOperator(BaseOperator):
134
125
  self.results: list[Any] | None = None
135
126
 
136
127
  def execute(self, context: Context) -> None:
137
- self.log.info("Executing url '%s' as '%s'", self.url, self.method)
138
128
  self.defer(
139
129
  trigger=MSGraphTrigger(
140
130
  url=self.url,
@@ -167,14 +157,14 @@ class MSGraphAsyncOperator(BaseOperator):
167
157
  self.log.debug("context: %s", context)
168
158
 
169
159
  if event:
170
- self.log.info("%s completed with %s: %s", self.task_id, event.get("status"), event)
160
+ self.log.debug("%s completed with %s: %s", self.task_id, event.get("status"), event)
171
161
 
172
162
  if event.get("status") == "failure":
173
163
  raise AirflowException(event.get("message"))
174
164
 
175
165
  response = event.get("response")
176
166
 
177
- self.log.info("response: %s", response)
167
+ self.log.debug("response: %s", response)
178
168
 
179
169
  if response:
180
170
  response = self.serializer.deserialize(response)
@@ -281,7 +271,6 @@ class MSGraphAsyncOperator(BaseOperator):
281
271
  url=url,
282
272
  query_parameters=query_parameters,
283
273
  response_type=self.response_type,
284
- response_handler=self.response_handler,
285
274
  conn_id=self.conn_id,
286
275
  timeout=self.timeout,
287
276
  proxies=self.proxies,
@@ -17,33 +17,25 @@
17
17
  # under the License.
18
18
  from __future__ import annotations
19
19
 
20
- import asyncio
21
- import json
22
20
  from typing import TYPE_CHECKING, Any, Callable, Sequence
23
21
 
22
+ from airflow.exceptions import AirflowException
24
23
  from airflow.providers.microsoft.azure.hooks.msgraph import KiotaRequestAdapterHook
25
24
  from airflow.providers.microsoft.azure.triggers.msgraph import MSGraphTrigger, ResponseSerializer
26
- from airflow.sensors.base import BaseSensorOperator, PokeReturnValue
25
+ from airflow.sensors.base import BaseSensorOperator
26
+ from airflow.triggers.temporal import TimeDeltaTrigger
27
27
 
28
28
  if TYPE_CHECKING:
29
+ from datetime import timedelta
29
30
  from io import BytesIO
30
31
 
31
32
  from kiota_abstractions.request_information import QueryParams
32
- from kiota_abstractions.response_handler import NativeResponseType
33
- from kiota_abstractions.serialization import ParsableFactory
34
33
  from kiota_http.httpx_request_adapter import ResponseType
35
34
  from msgraph_core import APIVersion
36
35
 
37
- from airflow.triggers.base import TriggerEvent
38
36
  from airflow.utils.context import Context
39
37
 
40
38
 
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
-
47
39
  class MSGraphSensor(BaseSensorOperator):
48
40
  """
49
41
  A Microsoft Graph API sensor which allows you to poll an async REST call to the Microsoft Graph API.
@@ -51,9 +43,6 @@ class MSGraphSensor(BaseSensorOperator):
51
43
  :param url: The url being executed on the Microsoft Graph API (templated).
52
44
  :param response_type: The expected return type of the response as a string. Possible value are: `bytes`,
53
45
  `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.
57
46
  :param method: The HTTP method being used to do the REST call (default is GET).
58
47
  :param conn_id: The HTTP Connection ID to run the operator against (templated).
59
48
  :param proxies: A dict defining the HTTP proxies to be used (default is None).
@@ -85,9 +74,6 @@ class MSGraphSensor(BaseSensorOperator):
85
74
  self,
86
75
  url: str,
87
76
  response_type: ResponseType | None = None,
88
- response_handler: Callable[
89
- [NativeResponseType, dict[str, ParsableFactory | None] | None], Any
90
- ] = lambda response, error_map: response.json(),
91
77
  path_parameters: dict[str, Any] | None = None,
92
78
  url_template: str | None = None,
93
79
  method: str = "GET",
@@ -97,15 +83,15 @@ class MSGraphSensor(BaseSensorOperator):
97
83
  conn_id: str = KiotaRequestAdapterHook.default_conn_name,
98
84
  proxies: dict | None = None,
99
85
  api_version: APIVersion | None = None,
100
- event_processor: Callable[[Context, TriggerEvent], bool] = default_event_processor,
86
+ event_processor: Callable[[Context, Any], bool] = lambda context, e: e.get("status") == "Succeeded",
101
87
  result_processor: Callable[[Context, Any], Any] = lambda context, result: result,
102
88
  serializer: type[ResponseSerializer] = ResponseSerializer,
89
+ retry_delay: timedelta | float = 60,
103
90
  **kwargs,
104
91
  ):
105
- super().__init__(**kwargs)
92
+ super().__init__(retry_delay=retry_delay, **kwargs)
106
93
  self.url = url
107
94
  self.response_type = response_type
108
- self.response_handler = response_handler
109
95
  self.path_parameters = path_parameters
110
96
  self.url_template = url_template
111
97
  self.method = method
@@ -119,45 +105,73 @@ class MSGraphSensor(BaseSensorOperator):
119
105
  self.result_processor = result_processor
120
106
  self.serializer = serializer()
121
107
 
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),
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__,
139
126
  )
140
127
 
141
- async def async_poke(self, context: Context) -> bool | PokeReturnValue:
142
- self.log.info("Sensor triggered")
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)
143
155
 
144
- async for event in self.trigger.run():
145
- self.log.debug("event: %s", event)
156
+ if response:
157
+ response = self.serializer.deserialize(response)
146
158
 
147
- is_done = self.event_processor(context, event)
159
+ self.log.debug("deserialize response: %s", response)
148
160
 
149
- self.log.debug("is_done: %s", is_done)
161
+ is_done = self.event_processor(context, response)
150
162
 
151
- response = self.serializer.deserialize(event.payload["response"])
163
+ self.log.debug("is_done: %s", is_done)
152
164
 
153
- self.log.debug("deserialize event: %s", response)
165
+ if is_done:
166
+ result = self.result_processor(context, response)
154
167
 
155
- result = self.result_processor(context, response)
168
+ self.log.debug("processed response: %s", result)
156
169
 
157
- self.log.debug("result: %s", result)
170
+ return result
158
171
 
159
- return PokeReturnValue(is_done=is_done, xcom_value=result)
160
- return PokeReturnValue(is_done=True)
172
+ self.defer(
173
+ trigger=TimeDeltaTrigger(self.retry_delay),
174
+ method_name=self.retry_execute.__name__,
175
+ )
161
176
 
162
- def poke(self, context) -> bool | PokeReturnValue:
163
- return asyncio.run(self.async_poke(context))
177
+ return None
@@ -27,7 +27,6 @@ from typing import (
27
27
  TYPE_CHECKING,
28
28
  Any,
29
29
  AsyncIterator,
30
- Callable,
31
30
  Sequence,
32
31
  )
33
32
  from uuid import UUID
@@ -43,8 +42,6 @@ if TYPE_CHECKING:
43
42
 
44
43
  from kiota_abstractions.request_adapter import RequestAdapter
45
44
  from kiota_abstractions.request_information import QueryParams
46
- from kiota_abstractions.response_handler import NativeResponseType
47
- from kiota_abstractions.serialization import ParsableFactory
48
45
  from kiota_http.httpx_request_adapter import ResponseType
49
46
  from msgraph_core import APIVersion
50
47
 
@@ -89,9 +86,6 @@ class MSGraphTrigger(BaseTrigger):
89
86
  :param url: The url being executed on the Microsoft Graph API (templated).
90
87
  :param response_type: The expected return type of the response as a string. Possible value are: `bytes`,
91
88
  `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.
95
89
  :param method: The HTTP method being used to do the REST call (default is GET).
96
90
  :param conn_id: The HTTP Connection ID to run the operator against (templated).
97
91
  :param timeout: The HTTP timeout being used by the `KiotaRequestAdapter` (default is None).
@@ -119,9 +113,6 @@ class MSGraphTrigger(BaseTrigger):
119
113
  self,
120
114
  url: str,
121
115
  response_type: ResponseType | None = None,
122
- response_handler: Callable[
123
- [NativeResponseType, dict[str, ParsableFactory | None] | None], Any
124
- ] = lambda response, error_map: response.json(),
125
116
  path_parameters: dict[str, Any] | None = None,
126
117
  url_template: str | None = None,
127
118
  method: str = "GET",
@@ -143,7 +134,6 @@ class MSGraphTrigger(BaseTrigger):
143
134
  )
144
135
  self.url = url
145
136
  self.response_type = response_type
146
- self.response_handler = response_handler
147
137
  self.path_parameters = path_parameters
148
138
  self.url_template = url_template
149
139
  self.method = method
@@ -207,7 +197,6 @@ class MSGraphTrigger(BaseTrigger):
207
197
  response = await self.hook.run(
208
198
  url=self.url,
209
199
  response_type=self.response_type,
210
- response_handler=self.response_handler,
211
200
  path_parameters=self.path_parameters,
212
201
  method=self.method,
213
202
  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.0rc1
3
+ Version: 10.1.0rc2
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>
@@ -102,7 +102,7 @@ Provides-Extra: sftp
102
102
 
103
103
  Package ``apache-airflow-providers-microsoft-azure``
104
104
 
105
- Release: ``10.1.0.rc1``
105
+ Release: ``10.1.0.rc2``
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=5YQ3aYk7EPxdiSA_m52YDJ5HCsMjAFNLBiNW0n3z7IA,1591
3
- airflow/providers/microsoft/azure/get_provider_info.py,sha256=dZtSK556OtDMPmfeq5OOcBonzFAaIUG_qYjvbtCwqeA,19914
2
+ airflow/providers/microsoft/azure/__init__.py,sha256=eu1HPyp74EiSvh01sguPYn870YS9m1cHtEITuSl2FNY,1503
3
+ airflow/providers/microsoft/azure/get_provider_info.py,sha256=4UPurIYf5H3wZCDJRqThRe1VpzPUyw7vJtsCEewAeO8,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=5jsXdktH5MRNc8injqUrKoT82w7I-S6JmP6nEGW7TYk,15140
19
+ airflow/providers/microsoft/azure/hooks/msgraph.py,sha256=wiDwS0TeyNV6lNFrL3GYDCrBdOEJTNewyL4xUCFjOT4,14809
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=rhoivKnAm6_lVmuAQDg1DZWtGywvit69LVYOxcDMfNg,11763
32
+ airflow/providers/microsoft/azure/operators/msgraph.py,sha256=yni_f-xUm3yN999X930osZPbGG37Bias3t0_r1O5lZs,10947
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=b0LeOLArd-S2hBP1IfzlYkl1I-ikPWxDjSMvKI1fBYI,7064
40
+ airflow/providers/microsoft/azure/sensors/msgraph.py,sha256=7JTW7lnDyXRdFv5D1lUS4hm7WRnQWqtUukD_i20pqfE,7069
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=nmO03dJoaqcT6qbHOueKgJpgwQIA0hIJ_JGj5Rfb8k0,9424
50
+ airflow/providers/microsoft/azure/triggers/msgraph.py,sha256=iEBE-wsIc7mHBGrxcp1H-8NqIvdZUd2SsqKBoy3J6nE,8675
51
51
  airflow/providers/microsoft/azure/triggers/wasb.py,sha256=PkCoOGGNpqOukIeHtgBGrCRPWn4aAOXA6eOOnobzVNw,7429
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,,
52
+ apache_airflow_providers_microsoft_azure-10.1.0rc2.dist-info/entry_points.txt,sha256=6iWHenOoUC3YZBb3OKn6g0HlJsV58Ba56i8USmQrcJI,111
53
+ apache_airflow_providers_microsoft_azure-10.1.0rc2.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
54
+ apache_airflow_providers_microsoft_azure-10.1.0rc2.dist-info/METADATA,sha256=gxqJzi8ZjP_yQpSz1_c4iM8vCq60lUAntXDMYJQZV2Y,8198
55
+ apache_airflow_providers_microsoft_azure-10.1.0rc2.dist-info/RECORD,,