Microsoft Azure Core Library for Python
项目描述
Azure Core共享客户端库
Azure core为Python SDK客户端库提供共享异常和模块。这些库遵循Azure SDK Python设计指南。
如果您是客户端库开发者,请参考客户端库开发者参考以获取更多信息。
源代码 | 包(Pypi) | 包(Conda) | API参考文档
入门
通常,您不需要安装azure core;在安装使用它的客户端库时,它将被安装。如果您想显式安装它(例如实现您自己的客户端库),您可以在此处找到它。
关键概念
Azure Core Library异常
AzureError
AzureError是所有错误的基类异常。
class AzureError(Exception):
def __init__(self, message, *args, **kwargs):
self.inner_exception = kwargs.get("error")
self.exc_type, self.exc_value, self.exc_traceback = sys.exc_info()
self.exc_type = self.exc_type.__name__ if self.exc_type else type(self.inner_exception)
self.exc_msg = "{}, {}: {}".format(message, self.exc_type, self.exc_value) # type: ignore
self.message = str(message)
self.continuation_token = kwargs.get("continuation_token")
super(AzureError, self).__init__(self.message, *args)
message 是与异常关联的任何消息(字符串)。
args 是与异常一起包含的任何附加参数。
kwargs 是与异常一起包含的关键字参数。使用关键字 error 来传递内部异常,使用 continuation_token 来传递不完整操作的令牌引用。
以下异常继承自 AzureError
ServiceRequestError
尝试向服务发送请求时发生错误。没有发送请求。
ServiceResponseError
已发送请求,但客户端无法理解响应。连接可能已超时。这些错误可以在幂等或安全操作中重试。
HttpResponseError
已向服务发出请求,并从服务收到非成功状态码。
class HttpResponseError(AzureError):
def __init__(self, message=None, response=None, **kwargs):
self.reason = None
self.response = response
if response:
self.reason = response.reason
self.status_code = response.status_code
self.error = self._parse_odata_body(ODataV4Format, response) # type: Optional[ODataV4Format]
if self.error:
message = str(self.error)
else:
message = message or "Operation returned an invalid status '{}'".format(
self.reason
)
super(HttpResponseError, self).__init__(message=message, **kwargs)
message 是 HTTP 响应错误消息(可选)
response 是 HTTP 响应(可选)。
kwargs 是与异常一起包含的关键字参数。
以下异常继承自 HttpResponseError
DecodeError
响应反序列化期间抛出的错误。
IncompleteReadError
如果在收到完整的消息体之前对等方关闭了连接,将抛出错误。
ResourceExistsError
带有 4xx 状态码的错误响应。这不会由 Azure 核心管道直接抛出。
ResourceNotFoundError
错误响应,通常由 412 响应(用于更新)或 404 响应(用于 get/post)触发。
ResourceModifiedError
带有 4xx 状态码的错误响应,通常是 412 冲突。这不会由 Azure 核心管道直接抛出。
ResourceNotModifiedError
带有 304 状态码的错误响应。这不会由 Azure 核心管道直接抛出。
ClientAuthenticationError
带有 4xx 状态码的错误响应。这不会由 Azure 核心管道直接抛出。
TooManyRedirectsError
达到最大重定向尝试次数时抛出的错误。最大重定向次数可以在 RedirectPolicy 中配置。
class TooManyRedirectsError(HttpResponseError):
def __init__(self, history, *args, **kwargs):
self.history = history
message = "Reached maximum redirect attempts."
super(TooManyRedirectsError, self).__init__(message, *args, **kwargs)
history 用于记录导致重定向请求的请求/响应。
args 是与异常一起包含的任何附加参数。
kwargs 是与异常一起包含的关键字参数。
StreamConsumedError
如果尝试在响应流已被消耗后访问 azure.core.rest.HttpResponse
或 azure.core.rest.AsyncHttpResponse
的流,将抛出错误。
StreamClosedError
如果尝试在响应流已被关闭后访问 azure.core.rest.HttpResponse
或 azure.core.rest.AsyncHttpResponse
的流,将抛出错误。
ResponseNotReadError
如果尝试在读取响应的字节之前访问 azure.core.rest.HttpResponse
或 azure.core.rest.AsyncHttpResponse
的 content
,将抛出错误。
配置
调用方法时,一些属性可以通过作为 kwargs 参数传递来配置。
参数 | 描述 |
---|---|
headers | HTTP 请求头。 |
request_id | 要添加到头部的请求 ID。 |
user_agent | 如果指定,这将添加到用户代理字符串之前。 |
logging_enable | 用于启用每个操作。默认为 False 。 |
logger | 如果指定,它将用于记录信息。 |
response_encoding | 如果已知此服务将使用该编码(将禁用自动检测)。 |
raw_request_hook | 回调函数。将在请求上调用。 |
raw_response_hook | 回调函数。将在响应上调用。 |
network_span_namer | 用于自定义 span 名称的可调用对象。 |
tracing_attributes | 要在所有创建的 span 上设置的属性。 |
permit_redirects | 客户端是否允许重定向。默认为 True 。 |
redirect_max | 允许的最大重定向数。默认为 30 。 |
retry_total | 允许的总重试次数。优先于其他计数。默认值为 10 。 |
retry_connect | 在连接相关错误上重试的次数。这些错误是在向远程服务器发送请求之前引发的,我们假设这些错误没有触发服务器处理请求。默认值为 3 。 |
retry_read | 在读取错误上重试的次数。这些错误是在向服务器发送请求后引发的,因此请求可能会有副作用。默认值为 3 。 |
retry_status | 在不良状态码上重试的次数。默认值为 3 。 |
retry_backoff_factor | 在第二次尝试之后的尝试间应用的后退因子。重试策略将睡眠的时间为:{后退因子} * (2 ** ({总重试次数} - 1)) 秒。如果后退因子为 0.1,则重试将睡眠时间为 [0.0s, 0.2s, 0.4s, ...]。默认值为 0.8 。 |
retry_backoff_max | 最大后退时间。默认值为 120 秒(2 分钟)。 |
retry_mode | 尝试间的固定或指数延迟,默认为 指数 。 |
timeout | 以秒为单位操作的超时设置,默认为 604800 秒(7 天)。 |
connection_timeout | 连接超时的单个浮点秒数。默认为 300 秒。 |
read_timeout | 读取超时的单个浮点秒数。默认为 300 秒。 |
connection_verify | SSL证书验证。默认启用。设置为 False 以禁用,或者可以设置为 CA_BUNDLE 文件的路径或包含受信任 CA 证书的目录。 |
connection_cert | 客户端证书。您可以使用本地证书作为客户端证书,单个文件(包含私钥和证书)或作为包含两个文件路径的元组。 |
proxies | 将协议或协议和主机名映射到代理 URL 的字典。 |
cookies | 要随 Request 一起发送的字典或 CookieJar 对象。 |
connection_data_block_size | 通过连接发送的数据块大小。默认为 4096 字节。 |
异步传输
异步传输被设计为可选择的。AioHttp 是支持的异步传输实现之一。默认不安装。您需要单独安装它。
共享模块
MatchConditions
MatchConditions 是一个枚举,用于描述匹配条件。
class MatchConditions(Enum):
Unconditionally = 1 # Matches any condition
IfNotModified = 2 # If the target object is not modified. Usually it maps to etag=<specific etag>
IfModified = 3 # Only if the target object is modified. Usually it maps to etag!=<specific etag>
IfPresent = 4 # If the target object exists. Usually it maps to etag='*'
IfMissing = 5 # If the target object does not exist. Usually it maps to etag!='*'
CaseInsensitiveEnumMeta
一个元类,用于支持不区分大小写的枚举。
from enum import Enum
from azure.core import CaseInsensitiveEnumMeta
class MyCustomEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta):
FOO = 'foo'
BAR = 'bar'
Null Sentinel Value
一个假的哨兵对象,用于指定没有数据的属性。这在网络中被序列化为 null
。
from azure.core.serialization import NULL
assert bool(NULL) is False
foo = Foo(
attr=NULL
)
贡献
本项目欢迎贡献和建议。大多数贡献都需要您同意贡献者许可协议(CLA),声明您有权并且实际上授予我们使用您贡献的权利。有关详细信息,请访问 https://cla.microsoft.com。
当您提交拉取请求时,CLA-bot 将自动确定您是否需要提供 CLA,并相应地装饰 PR(例如,标签、注释)。只需遵循机器人提供的说明即可。您在整个使用我们的 CLA 的所有仓库中只需要这样做一次。
本项目已采用 Microsoft 开源行为准则。有关更多信息,请参阅 行为准则常见问题解答 或联系 opencode@microsoft.com,如有任何其他问题或评论。
发布历史
1.31.0 (2024-09-12)
新增功能
- 添加了表示不同 Azure 云的 azure.core.AzureClouds 枚举。
- 添加了两个新的凭证协议类,
SupportsTokenInfo
和AsyncSupportsTokenInfo
,以提供更多可扩展性,以支持各种令牌获取场景。#36565- 每个新的协议类定义了一个
get_token_info
方法,该方法返回一个AccessTokenInfo
对象。
- 每个新的协议类定义了一个
- 添加了一个新的
TokenRequestOptions
类,它是一个具有可选参数的TypedDict
,可用于通过get_token_info
方法定义令牌请求的选项。#36565 - 添加了一个新的
AccessTokenInfo
类,该类由get_token_info
实现返回。此类包含令牌、其过期时间以及可选的附加信息,例如何时刷新令牌。#36565 BearerTokenCredentialPolicy
和AsyncBearerTokenCredentialPolicy
现在首先检查凭证是否有定义get_token_info
方法。如果有,则使用get_token_info
方法获取令牌。否则,使用get_token
方法。#36565- 这些策略现在还检查
refresh_on
属性,以确定是否需要发起新的令牌请求。
- 这些策略现在还检查
其他更改
- Azure Core OpenTelemetry 跟踪插件现在将是首选跟踪插件,而不是 OpenCensus 插件。如果同时安装了这两个插件并且导入了
opentelemetry
,则将使用 OpenTelemetry 跟踪 Azure SDK 操作。#35050
1.30.2 (2024-06-06)
新增功能
- 跟踪:
DistributedTracingPolicy
现在将为重发请求的 HTTP 跨域设置一个属性,http.request.resend_count
,以指示重发尝试的次数。#35069
已修复的错误
- 如果在已关闭的情况下使用传输,则引发正确的异常。#35559
其他更改
- 如果返回错误状态码,HTTP 跟踪跨域现在将包括一个
error.type
属性。#34619 - 最低要求的 Python 版本是 3.8
1.30.1 (2024-02-29)
其他更改
- 接受
retry_after
标头为浮点数。#34203
1.30.0 (2024-02-01)
新增功能
- 支持将元组输入到
azure.core.rest.HttpRequest
的文件值中。#33948 - 支持将元组输入到具有重复字段名称的
files
中azure.core.rest.HttpRequest
。#34021
1.29.7 (2024-01-18)
其他更改
- 移除了对
anyio
的依赖。#33282
1.29.6 (2023-12-14)
已修复的错误
- 调整
AsyncBearerTokenCredentialPolicy
以正确与trio
并发机制一起工作。(#33307)
其他更改
- 添加了对
anyio
>=3.0,<5.0 的依赖。 - 将
requests
的最低依赖项提升到 2.21.0。
1.29.5 (2023-10-19)
已修复的错误
- 修复了异步传输中
multipart/form-data
的问题,其中data
未被编码到请求体中。#32473
其他更改
- 默认使用 aiohttp 的 ssl 上下文。
1.29.4 (2023-09-07)
已修复的错误
- 修复了某些 URL 触发无限循环的问题。#31346
- 修复了如果分块响应与请求数不匹配则引发 IndexError 的问题。#31471
- 修复了在 CloudEvent.from_dict 中字典无效时引发未绑定变量异常的问题。#31835
- 修复了 asyncBearerTokenCredentialPolicy 与 SansIOHTTPPolicy 不兼容的问题。#31836
- 修复了 mypy 对新的 azure-core 版本有抱怨的问题。#31564
1.29.3 (2023-08-22)
已修复的错误
- 类型修复:在
AzureError
中,message
不能为None
。#31564
1.29.2 (2023-08-14)
已修复的错误
- 为
AsyncTokenCredential.__aexit__()
添加了一个默认实现。#31573
其他更改
- 将
typing-extensions
版本提升到 4.6.0。
1.29.1 (2023-08-09)
已修复的错误
- 除非显式启用,否则不传递
enabled_cae
。
1.29.0 (2023-08-03)
新增功能
- 在
TokenCredential
协议的get_token
方法中添加了一个关键字参数enable_cae
。#31012 BearerTokenCredentialPolicy
和AsyncBearerTokenCredentialPolicy
现在接受其构造函数中的enable_cae
关键字参数。这用于确定是否为每个get_token
请求启用 持续访问评估 (CAE)。#31012
1.28.0 (2023-07-06)
新增功能
- 为
RequestIdPolicy
添加了头名称参数。#30772 - 添加了一个
SensitiveHeaderCleanupPolicy
,如果发生重定向并且新目标位于另一个域,则清理敏感头。#28349
其他更改
- 捕获 aiohttp 错误并将它们转换为 azure-core 错误。
1.27.1 (2023-06-13)
已修复的错误
- 修复了某些复杂查询参数场景的 URL 构建问题。#30707
1.27.0 (2023-06-01)
新增功能
- 为
AsyncBearerTokenCredentialPolicy
添加了对同步凭证的支持。#30381 - 为
AzureKeyCredentialPolicy
添加了 "prefix" 参数。#29901
已修复的错误
- 改进了在提供错误的凭证类型时AzureKeyCredential的错误信息 #30380
1.26.4 (2023-04-06)
新增功能
- 更新设置,包括OpenTelemetry作为跟踪提供程序。 #29095
其他更改
- 改进了类型
1.26.3 (2023-02-02)
已修复的错误
- 修复了aiohttp的deflate解压缩 #28483
1.26.2 (2023-01-05)
已修复的错误
- 修复了'ClientSession'对象没有'auto_decompress'属性的错误(感谢@mghextreme的贡献)
其他更改
- 将"x-ms-error-code"作为安全头添加到日志中
- 将"DEFAULT_HEADERS_WHITELIST"重命名为"DEFAULT_HEADERS_ALLOWLIST"。添加了向后兼容的别名。
1.26.1 (2022-11-03)
其他更改
- 添加了自定义会话的RequestsTransport示例。(感谢@inirudebwoy的贡献) #26768
- 添加了对Python 3.11的支持。
1.26.0 (2022-10-06)
其他更改
- LRO轮询在执行第一次状态检查之前不再等待 #26376
- 添加了对[aio]的额外依赖。使用pip install azure-core[aio]安装aiohttp。
1.25.1 (2022-09-01)
已修复的错误
- 将@runtime_checkable添加到TokenCredential协议定义中 #25187
1.25.0 (2022-08-04)
Azure-core支持Python 3.7或更高版本。有关详细信息,请参阅我们关于Azure SDK for Python版本支持策略的页面。
新增功能
- 在azure.core.utils中添加了CaseInsensitiveDict实现,移除了对requests和aiohttp的依赖
1.24.2 (2022-06-30)
已修复的错误
- 修复了在Python 3.11.0b3下无法导入azure-core的bug #24928
- ContentDecodePolicy现在可以正确反序列化更多不同MIME类型的JSON体 #22410
1.24.1 (2022-06-01)
已修复的错误
- 默认将方法级别的span声明为INTERNAL #24492
- 修复了azure.core.paging.ItemPaged的类型提示 #24548
1.24.0 (2022-05-06)
新增功能
- 在azure.core.exceptions中添加了SerializationError和DeserializationError,以处理序列化和反序列化期间抛出的错误 #24312
1.23.1 (2022-03-31)
已修复的错误
- 允许将具有read方法的对象的流输入到azure.core.rest.HttpRequest的content关键字参数中 #23578
1.23.0 (2022-03-03)
新增功能
-
改进了服务客户端方法的服务智能提示类型提示。 #22891
-
在azure.core.utils中添加了不区分大小写的字典case_insensitive_dict。 #23206
已修复的错误
- 在日志中使用"\n"而不是"/n"进行换行。 #23261
其他更改
- 在HttpLoggingPolicy中记录"WWW-Authenticate"头 #22990
- 添加了对typing-extensions >= 4.0.1的依赖
1.22.1 (2022-02-09)
已修复的错误
- 限制final-state-via作用域仅限于POST,直到消耗SDK已经修复为正确使用此选项在PUT上。 #22989
1.22.0 (2022-02-03)
[本版本已弃用。]
新增功能
- 在核心中添加了对final-state-via LRO选项的支持。 #22713
已修复的错误
- 如果我们无法解析信息,则将响应体添加到HttpResponseError的字符串表示中 #22302
- 当调用azure.core.pipeline.transport.__bases__时引发AttributeError #22469
其他更改
- Python 2.7不再受支持。请使用Python版本3.6或更高版本。
1.21.1 (2021-12-06)
其他更改
- 撤销str方法中的更改 #22023
1.21.0 (2021-12-02)
重大更改
- 同步流下载现在将引发azure.core.exceptions.DecodeError,而不是requests.exceptions.ContentDecodingError
已修复的错误
- 如果无法解析信息,则将响应体添加到HttpResponseError的字符串表示中 #21800
1.20.1 (2021-11-08)
已修复的错误
- 当用户使用带有解压缩头的aiohttp传输时,正确设置响应的内容为解压缩体 #21620
1.20.0 (2021-11-04)
新增功能
- GA:将send_request添加到azure.core.PipelineClient和azure.core.AsyncPipelineClient。此方法接受请求并通过我们的管道发送它们。
- GA:azure.core.rest。azure.core.rest是我们在azure.core中的新公共简单HTTP库,用户将使用它来创建请求并消费响应。
- GA:将StreamConsumedError、StreamClosedError和ResponseNotReadError添加到azure.core.exceptions。如果在azure.core.rest模块中错误处理流式响应,则抛出这些错误。
- 为iter_raw和iter_bytes方法添加kwargs #21529
- 如果用户将JSON文件描述符传递到HttpRequest的json关键字参数中,则不再引发JSON错误 #21504
- 添加了新的错误类型IncompleteReadError,如果在我们没有收到完整的消息体之前对等方关闭了连接,则引发此错误。
重大更改
- SansIOHTTPPolicy.on_exception返回None而不是bool。
已修复的错误
- HTTP响应中的
Content-Length
头严格检查与正文中的实际字节数是否一致,而不是在底层TCP连接提前关闭的情况下静默截断数据。(感谢@jochen-ott-by的贡献)#20412 - 在处理异常时SansIOHTTPPolicy出现UnboundLocalError #15222
- 为将Unicode字符串传递给2.7中的
HttpRequest
的content
参数的用户添加默认内容类型头text/plain
和内容长度头 #21550
1.19.1 (2021-11-01)
已修复的错误
- 尊重在参数中指定的文本编码(感谢@ryohji的贡献)#20796
- 修复了从
ContentDecodePolicy
发出的“coroutine x.read()从未被等待”警告 #21318 - 修复了
data
输入到azure.core.rest
的类型检查,适用于python 2.7用户 #21341 - 如果未安装
chardet
,则使用charset_normalizer
以迁移aiohttp 3.8.0更改。
其他更改
- 重构AzureJSONEncoder(感谢@Codejune的贡献)#21028
1.19.0 (2021-09-30)
azure.core.rest
包中的重大更改
-
azure.core.rest.HttpResponse
和azure.core.rest.AsyncHttpResponse
现在是抽象基类。它们不应直接初始化,而是您的传输响应应从它们继承并实现它们。 -
azure.core.rest
响应的属性现在全部为只读 -
HttpLoggingPolicy将日志集成到一个记录中 #19925
1.18.0 (2021-09-02)
新增功能
azure.core.serialization.AzureJSONEncoder
(在1.17.0版本中引入)以ISO 8601格式序列化datetime.datetime
对象,符合RFC 3339规范。#20190- 我们现在使用
azure.core.serialization.AzureJSONEncoder
将json
输入序列化为azure.core.rest.HttpRequest
。
azure.core.rest
包中的重大更改
azure.core.rest.HttpResponse
和azure.core.rest.AsyncHttpResponse
上的text
属性已更改为方法,该方法还接受一个encoding
参数。- 从
azure.core.rest.HttpResponse
和azure.core.rest.AsyncHttpResponse
中删除了iter_text
和iter_lines
已修复的错误
azure.core.rest
响应返回的头的行为现在在同步和异步之间保持一致。现在可以不区分大小写并不带错误地检查格式来检查项目。
1.17.0 (2021-08-05)
新增功能
- 删除了对requests库的硬依赖
- 添加了
from_json
方法,该方法现在接受存储队列消息、事件中心的EventData或服务总线消息或简单的JSON字节,以返回一个CloudEvent
修复了
- 如果它已在头中存在,则不要覆盖“x-ms-client-request-id”。 #17757
azure.core.rest
包中的重大更改
azure.core.rest
不再尝试猜测charset
,如果无法从HttpResponse
分析中提取它。这消除了我们对charset
的依赖。
1.16.0 (2021-07-01)
新增功能
- 向
azure.core.PipelineClient
和azure.core.AsyncPipelineClient
添加了新的临时方法send_request
。此方法接受请求并通过我们的管道发送它们。 - 添加了新的临时模块
azure.core.rest
。位于azure.core
中的azure.core.rest
是我们新的公共简单HTTP库,用户将使用它来创建请求并消费响应。 - 向
azure.core.exceptions
添加了新的临时错误StreamConsumedError
、StreamClosedError
和ResponseNotReadError
。如果您错误处理了临时azure.core.rest
模块中的流式响应,则抛出这些错误。
修复了
- 当发送错误模式时,改进了
CloudEvent
的from_dict
方法中的错误消息。
1.15.0 (2021-06-04)
新功能
- 添加了
BearerTokenCredentialPolicy.on_challenge
和.authorize_request
,允许子类可选地处理身份验证挑战
错误修复
- 重试策略在操作超时后不会休眠
CloudEvent
中的from_dict
方法现在可以在微秒超过Python限制时将日期时间字符串转换为日期时间对象
1.14.0 (2021-05-13)
新功能
- 添加了凭证
azure.core.credentials.AzureNamedKeyCredential
#17548。 - 为
stream_download
方法添加了decompress
参数。如果设置为False
,则在流上不会进行解压缩。 #17920
1.13.0 (2021-04-02)
从此次发布开始,Azure核心需要Python 2.7或Python 3.6+。
新功能
- 添加了
azure.core.utils.parse_connection_string
函数,用于跨 SDK 解析连接字符串,具有常见的验证和大小写不敏感键的支持。 - 支持添加自定义策略 #16519
- 添加了
~azure.core.tracing.Link
,在传递Links
到AbstractSpan
时应使用。 AbstractSpan
构造函数现在可以接受额外的关键字参数。
错误修复
- 让 NetworkTraceLoggingPolicy 显示明文认证令牌。#14191
- 修复了 RetryPolicy 覆盖默认连接超时值的问题。#17481
1.12.0 (2021-03-08)
本版本将是官方支持 Python 3.5 的最后一个版本,未来的版本将需要 Python 2.7 或 Python 3.6+。
功能特性
- 添加了遵循云事件规范的
azure.core.messaging.CloudEvent
模型。 - 添加了
azure.core.serialization.NULL
特殊值。 - 改进了
HttpRequest
和HttpResponse
的repr
。#16972
错误修复
- 禁用流下载中的重试。(感谢 @jochen-ott-by @hoffmann 的贡献)#16723
1.11.0 (2021-02-08)
功能特性
- 添加了用于大小写不敏感枚举的
CaseInsensitiveEnumMeta
类。#16316 - 将
raise_for_status
方法添加到HttpResponse
。在错误代码的响应上调用response.raise_for_status()
会引发HttpResponseError
。在良好的响应上调用它将不执行任何操作。#16399
错误修复
- 在设置块大小时更新 conn.conn_kw,而不是覆盖它。(感谢 @jiasli 的贡献)#16587
1.10.0 (2021-01-11)
功能特性
- 添加了
AzureSasCredential
及其相应策略。#15946
1.9.0 (2020-11-09)
功能特性
- 为基本
AzureError
异常添加了continuation_token
属性,并在分页或长时间运行的操作期间引发的错误中设置此值。
错误修复
- 将重试间隔设置为 1 秒而不是 1000 秒(感谢 vbarbaresi 的贡献)#14357
1.8.2 (2020-10-05)
错误修复
- 修复了在参数化端点具有相对轮询 URL 的情况下允许轮询的 bug。#14097
1.8.1 (2020-09-08)
错误修复
- SAS 凭据复制的 "/" 修复。#13159
1.8.0 (2020-08-10)
功能特性
- 支持将参数作为列表进行爆炸参数。#12410
1.7.0 (2020-07-06)
错误修复
AzureKeyCredentialPolicy
现在接受(并忽略)传入的 kwargs。#11963- 如果传递的端点不正确,将提供更好的错误信息。#12106
- 如果内容类型为 "text",则不要对字符串进行 JSON 编码。#12137
功能特性
- 在
Configuration
对象上添加了http_logging_policy
属性,允许用户分别设置配置的 http 日志策略。#12218
1.6.0 (2020-06-03)
错误修复
- 修复了 AsyncBearerTokenCredentialPolicy 中的死锁。#11543
- 修复了 StreamDownloadGenerator 中的 AttributeError。#11462
功能特性
- 在多部分消息支持中添加了对更改集的支持。#10485
- 在 azure.core.polling 中添加了 AsyncLROPoller。#10801
- 在轮询器(同步和异步)中添加了 get_continuation_token/from_continuation_token/polling_method 方法。#10801
- HttpResponse 和 PipelineContext 对象现在可序列化。#10801
1.5.0 (2020-05-04)
功能特性
- 支持响应头中的 "x-ms-retry-after-ms"。#10743
link
和link_from_headers
现在接受属性。#10765
错误修复
- 如果状态码小于 400,则不重试。#10778
- "x-ms-request-id" 不被视为日志记录中的安全头。#10967
1.4.0 (2020-04-06)
功能特性
- 在 map_error 中支持默认错误类型。#9773
- 添加了
AzureKeyCredential
及其相应策略。#10509 - 添加了
azure.core.polling.base_polling
模块,其中包含 "Microsoft One API" 轮询实现。#10090 还包含azure.core.polling.async_base_polling
中的异步版本。 - 支持 kwarg
enforce_https
以禁用身份验证时的 HTTPS 检查。#9821 - 在
HttpRequest.set_multipart_mixed
中支持额外的 kwargs,这些 kwargs 将传递到管道上下文中。#40
1.3.0 (2020-03-09)
错误修复
- 将 RequestIdPolicy 添加到默认管道。#9841
- 在 async_retry 中回滚正文位置。#10117
功能特性
- 在 custom_hook_policy 中添加对 raw_request_hook 的支持。#9958
- 在 retry_policy 中添加对超时的支持。#10011
- 在所有异常('error' 属性)中添加 OdataV4 错误格式自动解析。#9738
1.2.2 (2020-02-10)
错误修复
- 修复了发送 None 作为 request_id 的 bug。#9545
- 为顾客启用 mypy。#9572
- 处理 deep copy 中的 TypeError。#9620
- 修复了解码器中的 text/plain 内容类型。#9589
1.2.1 (2020-01-14)
错误修复
- 修复了与 azure-keyvault-* 4.0.0 不兼容的 1.2.0 版本的回归。#9462
1.2.0 (2020-01-14)
功能特性
- 在 UserAgentPolicy 初始化中添加了 user_agent & sdk_moniker kwargs。#9355
- 支持 OPTIONS HTTP 动词 #9322
- 添加 tracing_attributes 到 tracing 装饰器 #9297
- 支持 RequestIdPolicy 中的 auto_request_id #9163
- 支持固定重试 #6419
- 支持响应头中的 "retry-after-ms" #9240
错误修复
- 从异步上下文管理器中移除了
__enter__
和__exit__
#9313
1.1.1 (2019-12-03)
错误修复
- Bearer 令牌授权需要 HTTPS
- 在重试中回滚正文位置 #8307
1.1.0 (2019-11-25)
功能特性
- 新 RequestIdPolicy #8437
- 在默认管道中启用日志策略 #8053
- 标准化传输超时。 #8000 现在我们有
- 'connection_timeout' - 连接超时的单个浮点数,以秒为单位。默认 5 分钟
- 'read_timeout' - 读取超时的单个浮点数,以秒为单位。默认 5 分钟
错误修复
- RequestHistory:如果请求包含流,则 deepcopy 失败 #7732
- Retry:如果响应没有 http_response,则重试引发错误 #8629
- Client kwargs 现在正确传递给 DistributedTracingPolicy #8051
- NetworkLoggingPolicy 现在在重试的情况下正确记录所有请求 #8262
1.0.0 (2019-10-29)
功能特性
- Tracing:DistributedTracingPolicy 现在接受 kwargs network_span_namer 来更改网络跨度名称 #7773
- Tracing:AbstractSpan 的实现现在可以使用 mixin HttpSpanMixin 自动获取 HTTP 跨度更新 #7773
- Tracing:引入了 AbstractSpan 合约 "change_context" #7773
- 引入新的策略 HttpLoggingPolicy #7988
错误修复
- 修复 AsyncioRequestsTransport 如果输入流是异步生成器的情况 #7743
- 修复 aiohttp 传输中的 form-data #7749
破坏性更改
- Tracing:不再支持 AbstractSpan.set_current_span。请使用 change_context。#7773
- azure.core.pipeline.policies.ContentDecodePolicy.deserialize_from_text 已更改
1.0.0b4 (2019-10-07)
功能特性
-
Tracing:在管道响应中,网络跨度上下文现在可用 with the TRACING_CONTEXT #7252
-
Tracing:Span 合约现在具有
kind
,traceparent
并且是一个上下文管理器 #7252 -
SansIOHTTPPolicy 方法现在可以是协程 #7497
-
添加 multipart/mixed 支持 #7083
- HttpRequest 现在有一个 "set_multipart_mixed" 方法来设置此请求的各部分
- HttpRequest 现在有一个 "prepare_multipart_body" 方法来构建最终正文。
- HttpResponse 现在有一个 "parts" 方法来返回部分迭代器
- AsyncHttpResponse 现在有一个 "parts" 方法来返回部分的异步迭代器
- 请注意,multipart/mixed 是 Python 3.x 的唯一功能
错误修复
- Tracing:策略不能在最坏的情况下失败管道 #7252
- Tracing:如果发生异常,策略会正确传递状态消息 #7252
- Tracing:如果从装饰函数中引发异常,跨度不正确 #7133
- 修复了 Requests 在套接字超时期间引发的 urllib3 ConnectTimeoutError。现在此异常被捕获并包装为
ServiceRequestError
#7542
破坏性更改
-
Tracing:移除了
azure.core.tracing.context
-
Tracing:将
azure.core.tracing.context.tracing_context.with_current_context
重命名为azure.core.tracing.common.with_current_context
#7252 -
Tracing:将
link
重命名为link_from_headers
,而link
现在接受一个字符串 -
Tracing:opencensus 实现将移至包
azure-core-tracing-opencensus
-
一些可以从多个地方导入的模块和类已被删除
azure.core.HttpResponseError
现在仅为azure.core.exceptions.HttpResponseError
azure.core.Configuration
现在仅为azure.core.configuration.Configuration
azure.core.HttpRequest
现在仅为azure.core.pipeline.transport.HttpRequest
azure.core.version
模块已被删除。请使用azure.core.__version__
来获取版本号。azure.core.pipeline_client
已被删除。从azure.core
导入。azure.core.pipeline_client_async
已被删除。从azure.core
导入。azure.core.pipeline.base
已被删除。从azure.core.pipeline
导入。azure.core.pipeline.base_async
已被移除。请从azure.core.pipeline
导入。azure.core.pipeline.policies.base
已被移除。请从azure.core.pipeline.policies
导入。azure.core.pipeline.policies.base_async
已被移除。请从azure.core.pipeline.policies
导入。azure.core.pipeline.policies.authentication
已被移除。请从azure.core.pipeline.policies
导入。azure.core.pipeline.policies.authentication_async
已被移除。请从azure.core.pipeline.policies
导入。azure.core.pipeline.policies.custom_hook
已被移除。请从azure.core.pipeline.policies
导入。azure.core.pipeline.policies.redirect
已被移除。请从azure.core.pipeline.policies
导入。azure.core.pipeline.policies.redirect_async
已被移除。请从azure.core.pipeline.policies
导入。azure.core.pipeline.policies.retry
已被移除。请从azure.core.pipeline.policies
导入。azure.core.pipeline.policies.retry_async
已被移除。请从azure.core.pipeline.policies
导入。azure.core.pipeline.policies.distributed_tracing
已被移除。请从azure.core.pipeline.policies
导入。azure.core.pipeline.policies.universal
已被移除。请从azure.core.pipeline.policies
导入。azure.core.tracing.abstract_span
已被移除。请从azure.core.tracing
导入。azure.core.pipeline.transport.base
已被移除。请从azure.core.pipeline.transport
导入。azure.core.pipeline.transport.base_async
已被移除。请从azure.core.pipeline.transport
导入。azure.core.pipeline.transport.requests_basic
已被移除。请从azure.core.pipeline.transport
导入。azure.core.pipeline.transport.requests_asyncio
已被移除。请从azure.core.pipeline.transport
导入。azure.core.pipeline.transport.requests_trio
已被移除。请从azure.core.pipeline.transport
导入。azure.core.pipeline.transport.aiohttp
已被移除。请从azure.core.pipeline.transport
导入。azure.core.polling.poller
已被移除。请从azure.core.polling
导入。azure.core.polling.async_poller
已被移除。请从azure.core.polling
导入。
1.0.0b3 (2019-09-09)
错误修复
- 修复 aiohttp 自动头文件 #6992
- 将跟踪添加到策略模块初始化 #6951
1.0.0b2 (2019-08-05)
破坏性更改
- 传输类不再接受
config
参数(请使用 kwargs) #6372 azure.core.paging
已完全重构 #6420- HttpResponse.content_type 属性现在是字符串(以前是列表) #6490
- 对于
StreamDownloadGenerator
子类,response
现在是HttpResponse
,而不是像aiohttp.ClientResponse
或requests.Response
这样的传输响应。传输响应在internal_response
属性中可用 #6490
错误修复
- 导入异步管道类不再需要 aiohttp #6496
AsyncioRequestsTransport.sleep
现在是一个协程,符合预期 #6490RequestsTransport
不再与ProxyPolicy
实现细节紧密相关 #6372AiohttpTransport
不会在意外 kwargs 上引发异常 #6355
功能特性
- 新的分页基本类支持
continuation_token
和by_page()
#6420 - 支持
AiohttpTransport
的代理 #6372
1.0.0b1 (2019-06-26)
- 预览 1 版本
项目详情
下载文件
下载您平台对应的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。
源代码分发
构建分发
azure_core-1.31.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 656a0dd61e1869b1506b7c6a3b31d62f15984b1a573d6326f6aa2f3e4123284b |
|
MD5 | 1fdc6e2d364dd6ac764d0de36f6ba2e3 |
|
BLAKE2b-256 | 037af79ad135a276a37e61168495697c14ba1721a52c3eab4dae2941929c79f8 |
azure_core-1.31.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 22954de3777e0250029360ef31d80448ef1be13b80a459bff80ba7073379e2cd |
|
MD5 | d926ac0e827729e8178a0d891c4209f9 |
|
BLAKE2b-256 | 018efcb6a77d3029d2a7356f38dbc77cf7daa113b81ddab76b5593d23321e44c |