corehttp 1.0.0b6__py3-none-any.whl → 1.0.0b7__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 (40) hide show
  1. corehttp/_version.py +1 -1
  2. corehttp/credentials.py +14 -5
  3. corehttp/instrumentation/__init__.py +9 -0
  4. corehttp/instrumentation/tracing/__init__.py +14 -0
  5. corehttp/instrumentation/tracing/_decorator.py +189 -0
  6. corehttp/instrumentation/tracing/_models.py +72 -0
  7. corehttp/instrumentation/tracing/_tracer.py +69 -0
  8. corehttp/instrumentation/tracing/opentelemetry.py +277 -0
  9. corehttp/instrumentation/tracing/utils.py +31 -0
  10. corehttp/paging.py +13 -0
  11. corehttp/rest/_aiohttp.py +17 -5
  12. corehttp/rest/_http_response_impl.py +7 -7
  13. corehttp/rest/_http_response_impl_async.py +2 -0
  14. corehttp/rest/_httpx.py +8 -8
  15. corehttp/rest/_requests_basic.py +13 -5
  16. corehttp/rest/_rest_py3.py +2 -2
  17. corehttp/runtime/pipeline/__init__.py +2 -2
  18. corehttp/runtime/pipeline/_base.py +2 -1
  19. corehttp/runtime/pipeline/_base_async.py +2 -0
  20. corehttp/runtime/pipeline/_tools.py +18 -2
  21. corehttp/runtime/policies/__init__.py +2 -0
  22. corehttp/runtime/policies/_authentication.py +28 -5
  23. corehttp/runtime/policies/_authentication_async.py +22 -3
  24. corehttp/runtime/policies/_distributed_tracing.py +169 -0
  25. corehttp/runtime/policies/_retry.py +7 -11
  26. corehttp/runtime/policies/_retry_async.py +4 -8
  27. corehttp/runtime/policies/_universal.py +11 -0
  28. corehttp/serialization.py +236 -2
  29. corehttp/settings.py +59 -0
  30. corehttp/transport/_base.py +1 -3
  31. corehttp/transport/_base_async.py +1 -3
  32. corehttp/transport/aiohttp/_aiohttp.py +39 -14
  33. corehttp/transport/requests/_requests_basic.py +31 -16
  34. corehttp/utils/_utils.py +2 -1
  35. {corehttp-1.0.0b6.dist-info → corehttp-1.0.0b7.dist-info}/METADATA +52 -6
  36. corehttp-1.0.0b7.dist-info/RECORD +61 -0
  37. {corehttp-1.0.0b6.dist-info → corehttp-1.0.0b7.dist-info}/WHEEL +1 -1
  38. corehttp-1.0.0b6.dist-info/RECORD +0 -52
  39. {corehttp-1.0.0b6.dist-info → corehttp-1.0.0b7.dist-info/licenses}/LICENSE +0 -0
  40. {corehttp-1.0.0b6.dist-info → corehttp-1.0.0b7.dist-info}/top_level.txt +0 -0
@@ -24,7 +24,7 @@
24
24
  #
25
25
  # --------------------------------------------------------------------------
26
26
  from __future__ import annotations
27
- from typing import Optional, TYPE_CHECKING, Type, cast, MutableMapping
27
+ from typing import Optional, TYPE_CHECKING, Type, MutableMapping
28
28
  from types import TracebackType
29
29
 
30
30
  import logging
@@ -34,7 +34,9 @@ import aiohttp.client_exceptions # pylint: disable=networking-import-outside-az
34
34
 
35
35
  from ...exceptions import (
36
36
  ServiceRequestError,
37
+ ServiceRequestTimeoutError,
37
38
  ServiceResponseError,
39
+ ServiceResponseTimeoutError,
38
40
  )
39
41
  from .._base_async import AsyncHttpTransport, _handle_non_stream_rest_response
40
42
  from .._base import _create_connection_config
@@ -52,6 +54,15 @@ if TYPE_CHECKING:
52
54
  CONTENT_CHUNK_SIZE = 10 * 1024
53
55
  _LOGGER = logging.getLogger(__name__)
54
56
 
57
+ try:
58
+ # ConnectionTimeoutError was only introduced in aiohttp 3.10 so we want to keep this
59
+ # backwards compatible. If client is using aiohttp <3.10, the behaviour will safely
60
+ # fall back to treating a TimeoutError as a ServiceResponseError (that wont be retried).
61
+ from aiohttp.client_exceptions import ConnectionTimeoutError
62
+ except ImportError:
63
+
64
+ class ConnectionTimeoutError(Exception): ... # type: ignore[no-redef]
65
+
55
66
 
56
67
  class AioHttpTransport(AsyncHttpTransport):
57
68
  """AioHttp HTTP sender implementation.
@@ -71,6 +82,7 @@ class AioHttpTransport(AsyncHttpTransport):
71
82
  raise ValueError("session_owner cannot be False if no session is provided")
72
83
  self.connection_config = _create_connection_config(**kwargs)
73
84
  self._use_env_settings = kwargs.pop("use_env_settings", True)
85
+ self._has_been_opened = False
74
86
 
75
87
  async def __aenter__(self):
76
88
  await self.open()
@@ -86,23 +98,31 @@ class AioHttpTransport(AsyncHttpTransport):
86
98
 
87
99
  async def open(self):
88
100
  """Opens the connection."""
89
- if not self.session and self._session_owner:
90
- jar = aiohttp.DummyCookieJar()
91
- clientsession_kwargs = {
92
- "trust_env": self._use_env_settings,
93
- "cookie_jar": jar,
94
- "auto_decompress": False,
95
- }
96
- self.session = aiohttp.ClientSession(**clientsession_kwargs)
97
- # pyright has trouble to understand that self.session is not None, since we raised at worst in the init
98
- self.session = cast(aiohttp.ClientSession, self.session)
101
+ if self._has_been_opened and not self.session:
102
+ raise ValueError(
103
+ "HTTP transport has already been closed. "
104
+ "You may check if you're calling a function outside of the `async with` of your client creation, "
105
+ "or if you called `await close()` on your client already."
106
+ )
107
+ if not self.session:
108
+ if self._session_owner:
109
+ jar = aiohttp.DummyCookieJar()
110
+ clientsession_kwargs = {
111
+ "trust_env": self._use_env_settings,
112
+ "cookie_jar": jar,
113
+ "auto_decompress": False,
114
+ }
115
+ self.session = aiohttp.ClientSession(**clientsession_kwargs)
116
+ else:
117
+ raise ValueError("session_owner cannot be False and no session is available")
118
+
119
+ self._has_been_opened = True
99
120
  await self.session.__aenter__()
100
121
 
101
122
  async def close(self):
102
123
  """Closes the connection."""
103
124
  if self._session_owner and self.session:
104
125
  await self.session.close()
105
- self._session_owner = False
106
126
  self.session = None
107
127
 
108
128
  def _build_ssl_config(self, cert, verify):
@@ -221,11 +241,16 @@ class AioHttpTransport(AsyncHttpTransport):
221
241
  )
222
242
  if not stream:
223
243
  await _handle_non_stream_rest_response(response)
224
-
244
+ except AttributeError as err:
245
+ if self.session is None:
246
+ raise ValueError("No session available for request.") from err
247
+ raise
225
248
  except aiohttp.client_exceptions.ClientResponseError as err:
226
249
  raise ServiceResponseError(err, error=err) from err
250
+ except ConnectionTimeoutError as err:
251
+ raise ServiceRequestTimeoutError(err, error=err) from err
227
252
  except asyncio.TimeoutError as err:
228
- raise ServiceResponseError(err, error=err) from err
253
+ raise ServiceResponseTimeoutError(err, error=err) from err
229
254
  except aiohttp.client_exceptions.ClientError as err:
230
255
  raise ServiceRequestError(err, error=err) from err
231
256
  return response
@@ -24,7 +24,7 @@
24
24
  #
25
25
  # --------------------------------------------------------------------------
26
26
  import logging
27
- from typing import Optional, Union, TypeVar, cast, MutableMapping, TYPE_CHECKING
27
+ from typing import Optional, Union, TypeVar, MutableMapping, TYPE_CHECKING
28
28
  from urllib3.util.retry import Retry
29
29
  from urllib3.exceptions import (
30
30
  ProtocolError,
@@ -35,7 +35,9 @@ import requests # pylint: disable=networking-import-outside-azure-core-transpor
35
35
 
36
36
  from ...exceptions import (
37
37
  ServiceRequestError,
38
+ ServiceRequestTimeoutError,
38
39
  ServiceResponseError,
40
+ ServiceResponseTimeoutError,
39
41
  IncompleteReadError,
40
42
  HttpResponseError,
41
43
  )
@@ -84,6 +86,7 @@ class RequestsTransport(HttpTransport):
84
86
  raise ValueError("session_owner cannot be False if no session is provided")
85
87
  self.connection_config = _create_connection_config(**kwargs)
86
88
  self._use_env_settings = kwargs.pop("use_env_settings", True)
89
+ self._has_been_opened = False
87
90
 
88
91
  def __enter__(self) -> "RequestsTransport":
89
92
  self.open()
@@ -106,19 +109,26 @@ class RequestsTransport(HttpTransport):
106
109
  session.mount(p, adapter)
107
110
 
108
111
  def open(self):
109
- if not self.session and self._session_owner:
110
- self.session = requests.Session()
111
- self._init_session(self.session)
112
- # pyright has trouble to understand that self.session is not None, since we raised at worst in the init
113
- self.session = cast(requests.Session, self.session)
112
+ if self._has_been_opened and not self.session:
113
+ raise ValueError(
114
+ "HTTP transport has already been closed. "
115
+ "You may check if you're calling a function outside of the `with` of your client creation, "
116
+ "or if you called `close()` on your client already."
117
+ )
118
+ if not self.session:
119
+ if self._session_owner:
120
+ self.session = requests.Session()
121
+ self._init_session(self.session)
122
+ else:
123
+ raise ValueError("session_owner cannot be False and no session is available")
124
+ self._has_been_opened = True
114
125
 
115
126
  def close(self):
116
127
  if self._session_owner and self.session:
117
128
  self.session.close()
118
- self._session_owner = False
119
129
  self.session = None
120
130
 
121
- def send(
131
+ def send( # pylint: disable=too-many-statements
122
132
  self,
123
133
  request: "RestHttpRequest",
124
134
  *,
@@ -165,13 +175,18 @@ class RequestsTransport(HttpTransport):
165
175
  )
166
176
  response.raw.enforce_content_length = True
167
177
 
168
- except (
169
- NewConnectionError,
170
- ConnectTimeoutError,
171
- ) as err:
178
+ except AttributeError as err:
179
+ if self.session is None:
180
+ raise ValueError("No session available for request.") from err
181
+ raise
182
+ except NewConnectionError as err:
172
183
  error = ServiceRequestError(err, error=err)
184
+ except ConnectTimeoutError as err:
185
+ error = ServiceRequestTimeoutError(err, error=err)
186
+ except requests.exceptions.ConnectTimeout as err:
187
+ error = ServiceRequestTimeoutError(err, error=err)
173
188
  except requests.exceptions.ReadTimeout as err:
174
- error = ServiceResponseError(err, error=err)
189
+ error = ServiceResponseTimeoutError(err, error=err)
175
190
  except requests.exceptions.ConnectionError as err:
176
191
  if err.args and isinstance(err.args[0], ProtocolError):
177
192
  error = ServiceResponseError(err, error=err)
@@ -180,13 +195,13 @@ class RequestsTransport(HttpTransport):
180
195
  except requests.exceptions.ChunkedEncodingError as err:
181
196
  msg = err.__str__()
182
197
  if "IncompleteRead" in msg:
183
- _LOGGER.warning("Incomplete download: %s", err)
198
+ _LOGGER.warning("Incomplete download.")
184
199
  error = IncompleteReadError(err, error=err)
185
200
  else:
186
- _LOGGER.warning("Unable to stream download: %s", err)
201
+ _LOGGER.warning("Unable to stream download.")
187
202
  error = HttpResponseError(err, error=err)
188
203
  except requests.RequestException as err:
189
- error = ServiceRequestError(err, error=err)
204
+ error = ServiceResponseError(err, error=err)
190
205
 
191
206
  if error:
192
207
  raise error
corehttp/utils/_utils.py CHANGED
@@ -169,9 +169,10 @@ def get_file_items(files: "FilesType") -> Sequence[Tuple[str, "FileType"]]:
169
169
 
170
170
  def get_running_async_lock() -> AsyncContextManager:
171
171
  """Get a lock instance from the async library that the current context is running under.
172
+
172
173
  :return: An instance of the running async library's Lock class.
173
174
  :rtype: AsyncContextManager
174
- :raises: RuntimeError if the current context is not running under an async library.
175
+ :raises RuntimeError: if the current context is not running under an async library.
175
176
  """
176
177
 
177
178
  try:
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: corehttp
3
- Version: 1.0.0b6
3
+ Version: 1.0.0b7
4
4
  Summary: CoreHTTP Library for Python
5
5
  Home-page: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/core/corehttp
6
6
  Author: Microsoft Corporation
@@ -11,22 +11,38 @@ Classifier: Development Status :: 4 - Beta
11
11
  Classifier: Programming Language :: Python
12
12
  Classifier: Programming Language :: Python :: 3 :: Only
13
13
  Classifier: Programming Language :: Python :: 3
14
- Classifier: Programming Language :: Python :: 3.8
15
14
  Classifier: Programming Language :: Python :: 3.9
16
15
  Classifier: Programming Language :: Python :: 3.10
17
16
  Classifier: Programming Language :: Python :: 3.11
18
17
  Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Programming Language :: Python :: 3.14
19
20
  Classifier: License :: OSI Approved :: MIT License
20
- Requires-Python: >=3.8
21
+ Requires-Python: >=3.9
21
22
  Description-Content-Type: text/markdown
22
23
  License-File: LICENSE
23
24
  Requires-Dist: typing-extensions>=4.6.0
25
+ Provides-Extra: requests
26
+ Requires-Dist: requests>=2.18.4; extra == "requests"
24
27
  Provides-Extra: aiohttp
25
28
  Requires-Dist: aiohttp>=3.0; extra == "aiohttp"
26
29
  Provides-Extra: httpx
27
30
  Requires-Dist: httpx>=0.25.0; extra == "httpx"
28
- Provides-Extra: requests
29
- Requires-Dist: requests>=2.18.4; extra == "requests"
31
+ Provides-Extra: tracing
32
+ Requires-Dist: opentelemetry-api~=1.26; extra == "tracing"
33
+ Dynamic: author
34
+ Dynamic: author-email
35
+ Dynamic: classifier
36
+ Dynamic: description
37
+ Dynamic: description-content-type
38
+ Dynamic: home-page
39
+ Dynamic: keywords
40
+ Dynamic: license
41
+ Dynamic: license-file
42
+ Dynamic: provides-extra
43
+ Dynamic: requires-dist
44
+ Dynamic: requires-python
45
+ Dynamic: summary
30
46
 
31
47
 
32
48
  # Core HTTP shared client library for Python
@@ -87,6 +103,36 @@ additional questions or comments.
87
103
 
88
104
  # Release History
89
105
 
106
+ ## 1.0.0b7 (2026-02-05)
107
+
108
+ ### Features Added
109
+
110
+ - Native tracing support was added. [#39172](https://github.com/Azure/azure-sdk-for-python/pull/39172)
111
+ - The `OpenTelemetryTracer` class was added to the `corehttp.instrumentation.tracing.opentelemetry` module. This is a wrapper around the OpenTelemetry tracer that is used to create spans for SDK operations.
112
+ - Added a `get_tracer` method to the new `corehttp.instrumentation` module. This method returns an instance of the `OpenTelemetryTracer` class if OpenTelemetry is available.
113
+ - A `TracingOptions` TypedDict class was added to define the options that SDK users can use to configure tracing per-operation. These options include the ability to enable or disable tracing and set additional attributes on spans.
114
+ - Example usage: `client.method(tracing_options={"enabled": True, "attributes": {"foo": "bar"}})`
115
+ - `DistributedHttpTracingPolicy` and `distributed_trace`/`distributed_trace_async` decorators were added to support OpenTelemetry tracing for SDK operations.
116
+ - SDK clients can define an `_instrumentation_config` class variable to configure the OpenTelemetry tracer used in method span creation. Possible configuration options are `library_name`, `library_version`, `schema_url`, and `attributes`.
117
+ - Added a global settings object, `corehttp.settings`, to the `corehttp` package. This object can be used to set global settings for the `corehttp` package. Currently the only setting is `tracing_enabled` for enabling/disabling tracing. [#39172](https://github.com/Azure/azure-sdk-for-python/pull/39172)
118
+ - Added `start_time` and `context` keyword arguments to `OpenTelemetryTracer.start_span` and `start_as_current_span` methods.
119
+ - Added `set_span_error_status` static method to `OpenTelemetryTracer` for setting a span's status to ERROR.
120
+ - Added `is_generated_model`, `attribute_list`, and `TypeHandlerRegistry` to `corehttp.serialization` module for SDK model handling.
121
+
122
+ ### Bugs Fixed
123
+
124
+ - Fixed `retry_backoff_max` being ignored in retry policies when configuring retries.
125
+ - Raise correct exception if transport is used while already closed.
126
+ - A timeout error when using the `aiohttp` transport will now be raised as a `corehttp.exceptions.ServiceResponseTimeoutError`, a subtype of the previously raised `ServiceResponseError`.
127
+ - When using with `aiohttp` 3.10 or later, a connection timeout error will now be raised as a `corehttp.exceptions.ServiceRequestTimeoutError`, which can be retried.
128
+ - Fixed leaked requests and aiohttp exceptions for streamed responses.
129
+ - Improved granularity of `ServiceRequestError` and `ServiceResponseError` exceptions raised in timeout scenarios from the requests and aiohttp transports.
130
+ - `BearerTokenCredentialPolicy` and `AsyncBearerTokenCredentialPolicy` will now properly chain exceptions raised during claims challenge handling. If a credential raises an exception when attempting to acquire a token in response to a claims challenge, that exception will be raised with the original 401 response as the cause.
131
+
132
+ ### Other Changes
133
+
134
+ - Added `opentelemetry-api` as an optional dependency for tracing. [#39172](https://github.com/Azure/azure-sdk-for-python/pull/39172)
135
+
90
136
  ## 1.0.0b6 (2025-03-27)
91
137
 
92
138
  ### Features Added
@@ -0,0 +1,61 @@
1
+ corehttp/__init__.py,sha256=Wdidh085sV_IhdV_wU79t7FpghhpyxCsRnZGOUoQ0xs,1443
2
+ corehttp/_match_conditions.py,sha256=3TIhb4vBO1hBe7MaQwS_9i-d6p7o4jn5L6M-OiQahkg,1864
3
+ corehttp/_version.py,sha256=VyIft7_Im1KeJZKTuvpUbQW8Bf73j9wwDlOmTytSBiM,494
4
+ corehttp/credentials.py,sha256=0_-W5sMBrrZmHEcv4h51lvAwWNCZBf3tvkslNPgZgo0,7018
5
+ corehttp/exceptions.py,sha256=mKh6wtuYi2aqiZRicNjE_693gBJMkNaWJLuXJ-VE444,11658
6
+ corehttp/paging.py,sha256=H-ctDDRWtp8i3R7xZwFQQEK-5YGNYHSAtk8hdg99efs,10039
7
+ corehttp/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
+ corehttp/serialization.py,sha256=MeQVSOpzlzcf4BomkyF3eVjETciABEN75e8sT0Bsakk,13422
9
+ corehttp/settings.py,sha256=7kEnzs09jAHYytt59BGHh8g10y2YHlP7j3SkrTMpD6c,1618
10
+ corehttp/instrumentation/__init__.py,sha256=_zOuDpRLiAvHgJIHcpgI-w-ZVmFZ8Ucl5ikdWnNVVsE,224
11
+ corehttp/instrumentation/tracing/__init__.py,sha256=y6FMPOMDsFwyQNWtpf0KJsemYpvU_sGuWuZ309k0yB4,391
12
+ corehttp/instrumentation/tracing/_decorator.py,sha256=tPiN_C0hEqLAgm4IqRY4-gaJllnsLpVTJcGVg95gmlE,7402
13
+ corehttp/instrumentation/tracing/_models.py,sha256=4RPQ9uQUiLepRnQGLUxWy8-Ohi7JWhmAT1qvFZKNcF0,2273
14
+ corehttp/instrumentation/tracing/_tracer.py,sha256=-q5DMsbAz5L_sD3NrpPf991o4ggC4G9d4iFcmxM5Gx8,2443
15
+ corehttp/instrumentation/tracing/opentelemetry.py,sha256=VTAPfgppUkDkyVg30SwwYYfg5ub2raC3FpzqsVLnzuA,10729
16
+ corehttp/instrumentation/tracing/utils.py,sha256=TIwtUo4BizEIg-HnwCQX0L24yVWAh8X7NV5lmZKvCFI,819
17
+ corehttp/rest/__init__.py,sha256=GwPFwVYZ9aa4DI9f2-oQGr2nfF7wXvVL80V51ymAjAk,1467
18
+ corehttp/rest/_aiohttp.py,sha256=uZmU5CgzKhIjsQd6dEG6HUiRgpgiqFa_GCO4SSqsfX8,11965
19
+ corehttp/rest/_helpers.py,sha256=ZhXhAiAw8DW_gxUPE3tumMplRS1Jt2h6joLVsk-u6yI,7897
20
+ corehttp/rest/_http_response_impl.py,sha256=REWjOWJERB-EBtU2SSilGd3L1wSKCf-jWeTUj6Q6Z0g,11284
21
+ corehttp/rest/_http_response_impl_async.py,sha256=QAcrTYMH1Sp9R5cVQOFrRnZli7wEzjd5Fv9rlJdmDsc,4974
22
+ corehttp/rest/_httpx.py,sha256=dPmiEsB29_Auocm4EdmjIuMjF55zbPjdmk1YjqliJTE,8079
23
+ corehttp/rest/_requests_basic.py,sha256=c2zRx79AMd-gdWwwVZAqxIBSLSoJx8fedQCoQI_ofaQ,7985
24
+ corehttp/rest/_rest_py3.py,sha256=Pj9HfktnJIPIr5lTUpNNIlC-ZU5pXRdX-tRD29yVjOo,14033
25
+ corehttp/runtime/__init__.py,sha256=OeG_5-Oq3Zp9rJcMfRNiYLv3V39wIZxDcQ-unerauDw,1469
26
+ corehttp/runtime/_base.py,sha256=gr2xJQJeWuOmtrudFhM07_6ASIhUX66jR1nxSRMh068,5056
27
+ corehttp/runtime/_pipeline_client.py,sha256=A2R0JEcfFIOe6b38VzuQatAxfbiBhtu_RCpOlM968b0,7099
28
+ corehttp/runtime/_pipeline_client_async.py,sha256=dBUqhntQzcS1kbQ6z7d6C4Y3HDghLr4jrobtlKvbVTw,10378
29
+ corehttp/runtime/pipeline/__init__.py,sha256=LYUDTtHlJ0XOIgraCjk-y9BGjwnNtXWpy-gQg2ufV_Q,7732
30
+ corehttp/runtime/pipeline/_base.py,sha256=FJfhSKy9eaQtmBYllqahfZxYHLGx_S4RocVSN8Sdhpk,6952
31
+ corehttp/runtime/pipeline/_base_async.py,sha256=cBiLHuRsg6poISOvu9lfBl5anXowkN7RGzuIGBfXOhw,7381
32
+ corehttp/runtime/pipeline/_tools.py,sha256=E351oLFCdM9e4jP-CANESD8rifChOTH_W0bapwZndr0,2502
33
+ corehttp/runtime/pipeline/_tools_async.py,sha256=r9Apyo4BOTKSRTfyFjLmcrGiVoulrnpxqkNOmzHOrGg,2151
34
+ corehttp/runtime/policies/__init__.py,sha256=fPT19op2ZlTQJ7jLpaMCZeruB0Ip2Ex_a7uY5wUHxG0,2295
35
+ corehttp/runtime/policies/_authentication.py,sha256=5n4gKzTAJDQBc65U8zI5ezqJEsYNSNRaAGH4W0BGzo8,11632
36
+ corehttp/runtime/policies/_authentication_async.py,sha256=lz4bJh2u6Er7qdgwq2ejXtDDUqS2Qvbq7W_VaOfVNFQ,9356
37
+ corehttp/runtime/policies/_base.py,sha256=zLM4NIwGQwZ75k-KPo3PthmDCpDidHvZy91ok0wnFvQ,5063
38
+ corehttp/runtime/policies/_base_async.py,sha256=nOZ-3lrKmfnFam3FbSY4wd9sOI7r5pI2HSdqgOC4Vz4,2531
39
+ corehttp/runtime/policies/_distributed_tracing.py,sha256=Fky-cFTAiiHeTdarYf6GS8Iq_rbwngun-eTKk7ilxGY,6675
40
+ corehttp/runtime/policies/_retry.py,sha256=Tr_9R_sWNcPrnPUYoakAEqpaY9d1to6T5Lf216xk0Ts,24393
41
+ corehttp/runtime/policies/_retry_async.py,sha256=-g7ZeqarL-5d7MFSDylvyBTLsy8PRazUY5Nz83Qm8co,9122
42
+ corehttp/runtime/policies/_universal.py,sha256=LlE5AIDo3rFn0u6qSNfwCKiLQMuiL2jW4eQpPVIkue0,20028
43
+ corehttp/runtime/policies/_utils.py,sha256=kDnGRpC3MxsW7zHZRfkLyPMArlzY4n7vBhwQQVWKQuI,3596
44
+ corehttp/transport/__init__.py,sha256=6A1i9gjM5isBPb-AL-2JTzxn7pssDj8ux9Ujn6rHjlY,1442
45
+ corehttp/transport/_base.py,sha256=qsIG3LX6xZpSmJaPVxtlJNePW62Uyl1gmoCQOsM_GoI,5048
46
+ corehttp/transport/_base_async.py,sha256=BuoHO2gas9k9qBKW5WiY_taLO9tr-MovkBY-1sOrTCM,3762
47
+ corehttp/transport/aiohttp/__init__.py,sha256=gdCazQ9XMZ6xgJCakm4efxECBFU-IIxKuMF3VmM9dHQ,1381
48
+ corehttp/transport/aiohttp/_aiohttp.py,sha256=M91Yda3dAdLqk8-dWXyISkf3oZBVdLmnp45CCseoFVA,10800
49
+ corehttp/transport/httpx/__init__.py,sha256=IbjUxTxtGljHK9nq6w0kAFeHd73zAl7qtd27qlqCrzg,1412
50
+ corehttp/transport/httpx/_httpx.py,sha256=of8Mxyfzm1Rd4ltYNt8wGz1xuTnJVef0KaiJyl99KfE,8579
51
+ corehttp/transport/requests/__init__.py,sha256=WPdzueqs0eLfvumuedxXPsOIpPCq3dDOvdzmIK4nyHs,1390
52
+ corehttp/transport/requests/_bigger_block_size_http_adapters.py,sha256=S1zE3v6QwPtdEm2cLdu8B5iW5WbETTgpv0datZ9g_eo,2487
53
+ corehttp/transport/requests/_requests_basic.py,sha256=ZMAQv9jFeomXiOn0v16qUP7iUq3J67pbiKBVEq3H9Ts,8948
54
+ corehttp/utils/__init__.py,sha256=_h2vJje1Tb-w_9mXm0hO_s2S1b48HLzI4taIlvz3Eu4,1648
55
+ corehttp/utils/_enum_meta.py,sha256=9rdoxCOiBnYFMUC8-8_yaoCA9s_GdbIkguxk3Z71iyM,2774
56
+ corehttp/utils/_utils.py,sha256=ZSp4H0TBKFZzIXav7-WwadirC3FLjdk8mTWI7fWE19A,6064
57
+ corehttp-1.0.0b7.dist-info/licenses/LICENSE,sha256=_VMkgdgo4ToLE8y1mOAjOKNhd0BnWoYu5r3BVBto6T0,1073
58
+ corehttp-1.0.0b7.dist-info/METADATA,sha256=2CTz5IW8LveWt7D3JkssRH3KrCKYnKe9rkSIOLRnXjk,11139
59
+ corehttp-1.0.0b7.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
60
+ corehttp-1.0.0b7.dist-info/top_level.txt,sha256=NAGJ-rIA_vW2ZJghxC5NqIbnfrXDBMmE-TAd-9ud4i4,9
61
+ corehttp-1.0.0b7.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.3.2)
2
+ Generator: setuptools (77.0.3)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,52 +0,0 @@
1
- corehttp/__init__.py,sha256=Wdidh085sV_IhdV_wU79t7FpghhpyxCsRnZGOUoQ0xs,1443
2
- corehttp/_match_conditions.py,sha256=3TIhb4vBO1hBe7MaQwS_9i-d6p7o4jn5L6M-OiQahkg,1864
3
- corehttp/_version.py,sha256=uCj-R1Y_ZRGSi794naubDn0UkPzXOuqPQYRdRChKvBw,494
4
- corehttp/credentials.py,sha256=EM0k1It1y4_q4cSCRE_m7SjF8npN9aGVBcGhBBfxsmc,6672
5
- corehttp/exceptions.py,sha256=mKh6wtuYi2aqiZRicNjE_693gBJMkNaWJLuXJ-VE444,11658
6
- corehttp/paging.py,sha256=zI-fFLBUgMRZmFegD2T6Q52s_3PFDb6lLjtR7-XSZDc,9520
7
- corehttp/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- corehttp/serialization.py,sha256=HicFY3mGePD0F5F24ryjQ_Igq3XE3vsHOQw0l36w1EI,4044
9
- corehttp/rest/__init__.py,sha256=GwPFwVYZ9aa4DI9f2-oQGr2nfF7wXvVL80V51ymAjAk,1467
10
- corehttp/rest/_aiohttp.py,sha256=Ld_WrYVOpHodReET9tCJqYfbyNsPDq_uWeDczA1fXUM,11236
11
- corehttp/rest/_helpers.py,sha256=ZhXhAiAw8DW_gxUPE3tumMplRS1Jt2h6joLVsk-u6yI,7897
12
- corehttp/rest/_http_response_impl.py,sha256=qvbvNLyatApp8EMRDxkTHdZMaUoNBp0LJxncUL-uH10,11264
13
- corehttp/rest/_http_response_impl_async.py,sha256=lmdtY-l0hrNy5PbhWrl2hZrfHzZkn6LZPMR2fTy54WY,4972
14
- corehttp/rest/_httpx.py,sha256=5-zpxrd4DyYOx9aNy4H1wHITf0Q38TNTAOhYBoH6liY,8137
15
- corehttp/rest/_requests_basic.py,sha256=Ihy_y4VMfa4rk-JruYfMYkRmRjX-dgypNL03vm2cQCM,7546
16
- corehttp/rest/_rest_py3.py,sha256=YFxoRoZgppwve-x0JVv4IZiXuGEwt_1SZyCII5X3Y0c,14064
17
- corehttp/runtime/__init__.py,sha256=OeG_5-Oq3Zp9rJcMfRNiYLv3V39wIZxDcQ-unerauDw,1469
18
- corehttp/runtime/_base.py,sha256=gr2xJQJeWuOmtrudFhM07_6ASIhUX66jR1nxSRMh068,5056
19
- corehttp/runtime/_pipeline_client.py,sha256=A2R0JEcfFIOe6b38VzuQatAxfbiBhtu_RCpOlM968b0,7099
20
- corehttp/runtime/_pipeline_client_async.py,sha256=dBUqhntQzcS1kbQ6z7d6C4Y3HDghLr4jrobtlKvbVTw,10378
21
- corehttp/runtime/pipeline/__init__.py,sha256=5fxBfA1YQK0gEE2lVmaBdPdlyIk31utG29r959PWxq0,7656
22
- corehttp/runtime/pipeline/_base.py,sha256=rKJaw4Bv6yq8OzahNuqfSn-ro1pEz7HcbA3DvbFagtw,6864
23
- corehttp/runtime/pipeline/_base_async.py,sha256=eaFAOMvgvZEM9T8Z7LMWaeLV5EgO6AMgP9ps2A8ZiAs,7274
24
- corehttp/runtime/pipeline/_tools.py,sha256=iol34Mo_R6-Rezal7WSFFSzFa1V3dXf90AQydnxRnSQ,2004
25
- corehttp/runtime/pipeline/_tools_async.py,sha256=r9Apyo4BOTKSRTfyFjLmcrGiVoulrnpxqkNOmzHOrGg,2151
26
- corehttp/runtime/policies/__init__.py,sha256=_LPYWjRNkDq45FAHUvyMJ92BL0W6pf7-KrjxSZSkF5c,2196
27
- corehttp/runtime/policies/_authentication.py,sha256=FTu02pWeo3relph_SMvVSDt9xieWTbVypC0bk7WPNPk,10155
28
- corehttp/runtime/policies/_authentication_async.py,sha256=VabVsVXAjgQhhCtfigMWUIlczS1zi8S6w2m8_e-Irb8,8168
29
- corehttp/runtime/policies/_base.py,sha256=zLM4NIwGQwZ75k-KPo3PthmDCpDidHvZy91ok0wnFvQ,5063
30
- corehttp/runtime/policies/_base_async.py,sha256=nOZ-3lrKmfnFam3FbSY4wd9sOI7r5pI2HSdqgOC4Vz4,2531
31
- corehttp/runtime/policies/_retry.py,sha256=9b7Zts-BemkDRMKxT_P8FkUIr-WZrStN5KbiNLeQU8Q,24332
32
- corehttp/runtime/policies/_retry_async.py,sha256=eCUqP4IgB7ZMVC9u5DUCDt8JEWikTypLqwUvmF4R-PQ,9096
33
- corehttp/runtime/policies/_universal.py,sha256=mGXqLgOjKdzuiY62V_ibMaSBiLMKVh9kEAbZ4uxYKqQ,19642
34
- corehttp/runtime/policies/_utils.py,sha256=kDnGRpC3MxsW7zHZRfkLyPMArlzY4n7vBhwQQVWKQuI,3596
35
- corehttp/transport/__init__.py,sha256=6A1i9gjM5isBPb-AL-2JTzxn7pssDj8ux9Ujn6rHjlY,1442
36
- corehttp/transport/_base.py,sha256=5gFTZ1u--3Ik9DyrAe10RtObasd-OXX1y9sRSkbvoyY,5107
37
- corehttp/transport/_base_async.py,sha256=9zl1Sa8Vm6QBdn8Nf-J3w2qZ-wsjcV9bv1EX5Jr28w4,3827
38
- corehttp/transport/aiohttp/__init__.py,sha256=gdCazQ9XMZ6xgJCakm4efxECBFU-IIxKuMF3VmM9dHQ,1381
39
- corehttp/transport/aiohttp/_aiohttp.py,sha256=HqQWbGhx8kvP4ibqlB3mJEutzpwxAapwnu5EAWwHtiQ,9651
40
- corehttp/transport/httpx/__init__.py,sha256=IbjUxTxtGljHK9nq6w0kAFeHd73zAl7qtd27qlqCrzg,1412
41
- corehttp/transport/httpx/_httpx.py,sha256=of8Mxyfzm1Rd4ltYNt8wGz1xuTnJVef0KaiJyl99KfE,8579
42
- corehttp/transport/requests/__init__.py,sha256=WPdzueqs0eLfvumuedxXPsOIpPCq3dDOvdzmIK4nyHs,1390
43
- corehttp/transport/requests/_bigger_block_size_http_adapters.py,sha256=S1zE3v6QwPtdEm2cLdu8B5iW5WbETTgpv0datZ9g_eo,2487
44
- corehttp/transport/requests/_requests_basic.py,sha256=dU8gup_4IytJIyfYtMMBb8sIMP2LsNJYjGxjnBwzP3o,8186
45
- corehttp/utils/__init__.py,sha256=_h2vJje1Tb-w_9mXm0hO_s2S1b48HLzI4taIlvz3Eu4,1648
46
- corehttp/utils/_enum_meta.py,sha256=9rdoxCOiBnYFMUC8-8_yaoCA9s_GdbIkguxk3Z71iyM,2774
47
- corehttp/utils/_utils.py,sha256=TN2IplPve8b6xJPMvIVE-2oF3u_SK89XtYmCb70UDr4,6063
48
- corehttp-1.0.0b6.dist-info/LICENSE,sha256=_VMkgdgo4ToLE8y1mOAjOKNhd0BnWoYu5r3BVBto6T0,1073
49
- corehttp-1.0.0b6.dist-info/METADATA,sha256=2gL4eNLJqe2RZthG1GvAQ0zHKZZn7nqrDFshWc8UdmQ,7548
50
- corehttp-1.0.0b6.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
51
- corehttp-1.0.0b6.dist-info/top_level.txt,sha256=NAGJ-rIA_vW2ZJghxC5NqIbnfrXDBMmE-TAd-9ud4i4,9
52
- corehttp-1.0.0b6.dist-info/RECORD,,