跳转到主要内容

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.HttpResponseazure.core.rest.AsyncHttpResponse 的流,将抛出错误。

StreamClosedError

如果尝试在响应流已被关闭后访问 azure.core.rest.HttpResponseazure.core.rest.AsyncHttpResponse 的流,将抛出错误。

ResponseNotReadError

如果尝试在读取响应的字节之前访问 azure.core.rest.HttpResponseazure.core.rest.AsyncHttpResponsecontent,将抛出错误。

配置

调用方法时,一些属性可以通过作为 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 枚举。
  • 添加了两个新的凭证协议类,SupportsTokenInfoAsyncSupportsTokenInfo,以提供更多可扩展性,以支持各种令牌获取场景。#36565
    • 每个新的协议类定义了一个 get_token_info 方法,该方法返回一个 AccessTokenInfo 对象。
  • 添加了一个新的 TokenRequestOptions 类,它是一个具有可选参数的 TypedDict,可用于通过 get_token_info 方法定义令牌请求的选项。#36565
  • 添加了一个新的 AccessTokenInfo 类,该类由 get_token_info 实现返回。此类包含令牌、其过期时间以及可选的附加信息,例如何时刷新令牌。#36565
  • BearerTokenCredentialPolicyAsyncBearerTokenCredentialPolicy 现在首先检查凭证是否有定义 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
  • 支持将元组输入到具有重复字段名称的 filesazure.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
  • BearerTokenCredentialPolicyAsyncBearerTokenCredentialPolicy 现在接受其构造函数中的 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中的HttpRequestcontent参数的用户添加默认内容类型头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.HttpResponseazure.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.AzureJSONEncoderjson输入序列化为azure.core.rest.HttpRequest

azure.core.rest包中的重大更改

  • azure.core.rest.HttpResponseazure.core.rest.AsyncHttpResponse上的text属性已更改为方法,该方法还接受一个encoding参数。
  • azure.core.rest.HttpResponseazure.core.rest.AsyncHttpResponse中删除了iter_textiter_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.PipelineClientazure.core.AsyncPipelineClient添加了新的临时方法send_request。此方法接受请求并通过我们的管道发送它们。
  • 添加了新的临时模块azure.core.rest。位于azure.core中的azure.core.rest是我们新的公共简单HTTP库,用户将使用它来创建请求并消费响应。
  • azure.core.exceptions添加了新的临时错误StreamConsumedErrorStreamClosedErrorResponseNotReadError。如果您错误处理了临时azure.core.rest模块中的流式响应,则抛出这些错误。

修复了

  • 当发送错误模式时,改进了CloudEventfrom_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,在传递 LinksAbstractSpan 时应使用。
  • 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 特殊值。
  • 改进了 HttpRequestHttpResponserepr。#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
  • linklink_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 合约现在具有 kindtraceparent 并且是一个上下文管理器 #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.ClientResponserequests.Response 这样的传输响应。传输响应在 internal_response 属性中可用 #6490

错误修复

  • 导入异步管道类不再需要 aiohttp #6496
  • AsyncioRequestsTransport.sleep 现在是一个协程,符合预期 #6490
  • RequestsTransport 不再与 ProxyPolicy 实现细节紧密相关 #6372
  • AiohttpTransport 不会在意外 kwargs 上引发异常 #6355

功能特性

  • 新的分页基本类支持 continuation_tokenby_page() #6420
  • 支持 AiohttpTransport 的代理 #6372

1.0.0b1 (2019-06-26)

  • 预览 1 版本

项目详情


发布历史 发布通知 | RSS 源

下载文件

下载您平台对应的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源代码分发

azure_core-1.31.0.tar.gz (277.1 kB 查看哈希值)

上传时间 源代码

构建分发

azure_core-1.31.0-py3-none-any.whl (197.4 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页