Python的AMQP 1.0客户端库
项目描述
Python的uAMQP
Python的AMQP 1.0客户端库。
免责声明
此存储库不再处于积极维护状态,我们计划在2025年第一季度废除它。EventHubs & Service Bus客户端库现在正在使用基于Python的AMQP库,该库正在积极开发中。如果有兴趣将新的Python库作为独立库使用,请在此问题中分享您的兴趣。
从v1.5开始,uAMQP for Python需要Python 3.6+,Python 2.7不再受支持。如果需要Python 2.7,请安装uAMQP v1.4.3
$ pip install uamqp==1.4.3安装
大多数主要操作系统都提供了轮子,所以您可以直接使用pip安装。
$ pip install uamqp如果您正在运行不支持ManyLinux1的Linux发行版,或者需要根据系统设置和包自定义构建,您可以从源代码进行安装。
$ apt-get update
$ apt-get install -y build-essential libssl-dev uuid-dev cmake libcurl4-openssl-dev pkg-config python3-dev python3-pip
$ pip3 install uamqp --no-binary :all:如果您正在运行Alpine,您可以从源代码进行安装。
$ apk add --update python3 py-pip python3-dev cmake gcc g++ openssl-dev build-base
$ pip3 install uamqp --no-binary :all:如果您正在运行Red Hat,您可以从源代码进行安装。
$ yum install cmake gcc gcc-c++ make openssl-devel python3-devel
$ pip3 install uamqp --no-binary :all:文档
参考文档可在此处找到:docs.microsoft.com/python/api/uamqp/uamqp。
开发者设置
为了直接运行代码,首先需要构建Cython扩展。
先决条件
- Windows:设置构建环境。 
- Linux:安装如安装说明中所述的依赖项。 
- MacOS:使用Homebrew安装cmake 
$ brew install cmake构建扩展
此项目有两个C库依赖。它们以以下版本存储在本存储库中
要构建,首先创建一个虚拟环境和安装所需的Python包
$ python -m venv env
$ env/Scripts/activate
(env)$ pip install -r dev_requirements.txt接下来,运行构建命令
$ python setup.py build_ext --inplace测试
可以在虚拟环境中运行测试。必须首先按照上述说明构建扩展。
(env)$ pytest提供反馈
如果您遇到任何错误或有一些建议,请在项目的问题部分提交问题。
贡献
本项目欢迎贡献和建议。大多数贡献需要您同意一份贡献者许可协议(CLA),声明您有权并且实际上确实授予我们使用您的贡献的权利。有关详细信息,请访问https://cla.microsoft.com。
当您提交拉取请求时,CLA机器人将自动确定您是否需要提供CLA,并相应地标记PR(例如,标签、注释)。只需遵循机器人提供的说明即可。您只需在整个使用我们的CLA的存储库中这样做一次。
本项目采用了Microsoft开源代码行为准则。有关更多信息,请参阅行为准则常见问题解答或联系opencode@microsoft.com以获取任何额外的问题或评论。
发布历史
1.6.10 (2024-09-11)
- 从PR中整合修复以更新供应商uamqp代码。 
1.6.9 (2024-03-20)
- 从PR中整合修复。 
1.6.8 (2024-01-29)
- 从PR中整合修复。 
1.6.7 (2024-01-17)
- 修复CVE-2024-21646的错误。 
1.6.6 (2023-11-16)
- 添加了对python 3.11的支持。 
1.6.5 (2023-07-12)
- 对子模块进行了一些更新,以支持OpenSSL 3.0编译。 
1.6.4 (2023-02-09)
- 更新OpenSSL依赖到1.1.1t。 
- 更新子模块以支持OpenSSL 3.0编译。 
- 删除了对six的依赖。 
- 修复了当未传递端口时选择错误的端口用于WebSocket的bug。 
1.6.3 (2022-10-27)
- 发布3.11 wheels。 
1.6.2 (2022-10-27)
- 添加了对python 3.11的支持。 
- 更新OpenSSL依赖到1.1.1q。 
- 更新cython依赖到0.29.32。 
- 不再支持manylinux2010。 
- 使用cibuildwheel生成wheels。 
1.6.1 (2022-10-11)
- 通过在调用CertAddEncodedCertificateToStore函数时使用CERT_STORE_ADD_REPLACE_EXISTING参数,添加了对处理azure-c-shared-utility依赖项中的重复证书的支持。(azure-sdk-for-python问题#26034) 
1.6.0 (2022-08-18)
本版本及所有未来版本将需要Python 3.7及以上,Python 3.6不再受支持。
- 向uamqp.Message添加了data、value和sequence属性,当正文类型匹配时,它们将返回正文。 
- 向uamqp.Message添加了message_annotations属性,它是annotations实例变量的别名。 
- 向uamqp.BatchMessage添加了data属性,它返回批次的可迭代正文。 
- 向uamqp.MessageHeader添加了ttl属性,它是time_to_live实例变量的别名。 
1.5.3 (2022-03-23)
- 将OpenSSL依赖项更新到1.1.1n,用于许多Linux和macOS的wheels。 
1.5.2 (2022-03-15)
- 修复了在深拷贝BatchMessage对象时导致错误的bug(azure-sdk-for-python问题#22529)。 
1.5.1 (2022-01-12)
- 恢复了Python 3.6的支持。 
1.5.0 (2022-01-05)
本版本及所有未来版本将需要Python 3.7及以上,Python 2.7和Python 3.6不再受支持。
- SASTokenAuth、JWTTokenAuth、SASTokenAsync和JWTTokenAsync现在接受关键字参数refresh_window以覆盖构造函数中的默认令牌刷新时间。 
- 修复了在意外关闭时,SendClientAsync可能会遇到无限循环的bug。 
- 更新了Azure uAMQP C(截至2021-11-16)和Azure C共享实用工具(截至2021-11-15)的依赖项。 
- 修复了当AMQPClient没有正确关闭时,AMQPClient的keep_alive_thread不应该阻止程序退出的bug。 
1.4.3 (2021-10-06)
- 添加了对Python 3.10的支持。 
1.4.2 (2021-09-21)
- 修复了win32 socketio和tlsio中的内存泄漏(azure-sdk-for-python问题#19777)。 
- 修复了将AMQPValue转换为字符串过程中的内存泄漏(azure-sdk-for-python问题#19777)。 
1.4.1 (2021-06-28)
- 修复了JWTTokenAuth和JWTTokenAsync没有初始化除b'jwt'之外类型的令牌的bug。 
- 修复了在Python 2.7上,MessageProperties上的属性creation_time、absolute_expiry_time和group_sequence应与整数类型兼容的bug。 
1.4.0 (2021-05-03)
本版本及所有未来版本将需要Python 2.7或Python 3.6+,Python 3.5不再受支持。
- 修复了在链路附着过程中,源和目标Cython对象未正确释放导致的内存泄漏(azure-sdk-for-python问题#15747)。 
- 改进了管理操作回调,不再将非AMQP_TYPE_STRING类型的描述值解析为字符串(azure-sdk-for-python问题#18361)。 
1.3.0 (2021-04-05)
本版本将是最后一个官方支持Python 3.5的版本,未来版本将需要Python 2.7或Python 3.6+。
- 添加了对AMQP序列作为amqp消息正文类型的支持。 
- 添加了新类uamqp.MessageBodyType来表示amqp消息的正文类型,包括: - Data:正文由一个或多个数据部分组成,每个部分包含不可见的二进制数据。 
- Sequence:正文由一个或多个序列部分组成,每个部分包含任意数量的结构化数据元素。 
- Value:正文由一个amqp-value部分组成,该部分包含单个AMQP值。 
 
- 向uamqp.Message的构造函数添加了新参数: - body_type,它接受uamqp.MessageBodyType来指定amqp消息的正文类型。 
- footer,它接受一个字典来设置amqp消息的页脚。 
- delivery_annotations,它接受一个字典来设置amqp消息的交付注释。 
 
- 添加了对pickle的uamqp.Message的支持。 
- 修复了当底层套接字连接丢失时,发送大尺寸消息触发段错误的bug。 
- 修复了链路流控制中的bug,链路信用和交付计数应基于每消息而不是基于每个传输帧计算。 
1.2.15 (2021-03-02)
- 在AMQP协议中添加了SendClient(Async)和MessageSender(Async)的期望功能。 
- 添加了AMQPShort和AMQPuShort类型,用于显式处理短和无符号短编码。 
1.2.14 (2021-02-01)
- 更新了Azure uAMQP C和Azure C共享实用工具依赖。 
- 修复了使用SAS Token创建时的内存泄露问题。 
1.2.13 (2021-01-06)
- 修复了在访问MessageProperties.user_id时,当底层C字节为NULL时触发的段错误。 
- 修复了MessageProperties.user_id被限制为8字节的问题。 
- 修复了在macOS上使用Clang 12建立连接时触发的未识别选择器异常。 
- 修复了macOS无法检测网络错误的问题。 
- 修复了在连接建立期间ReceiveClient和ReceiveClientAsync接收消息的问题。 
1.2.12 (2020-10-09)
- 更新了cython依赖到0.29.21。 
- 增加了对Python 3.9的支持。 
1.2.11 (2020-10-01)
- 更新了tlsio_openssl模块,在建立tls连接时发送SNI(感谢milope)。 
- 修复了Message.footer和Message.delivery_annotation未编码到输出负载的问题。 
- 修复了消息发送超时错误未抛出的问题。 
1.2.10 (2020-08-05)
- 为ReceiveClient和ReceiveClientAsync添加了参数shutdown_after_timeout,以控制是否在超时后关闭接收器。 
1.2.9 (2020-07-06)
- 添加了MessageReceiver.reset_link_credit方法,负责重置接收器链路上的当前可用链路信用并发送更新到发送者。 
1.2.8 (2020-05-19)
- 初始化交付计数头为0而不是None(azure-sdk-for-python问题#9708)的修复。 
- 添加了被拒绝的交付处置中的信息字段。 
1.2.7 (2020-05-04)
- 修复了在macOS上设置tlsio证书的问题(azure-sdk-for-python问题#7201)。 
- 修复了在macOS上记录网络跟踪时的段错误(PR#147,感谢malthe)。 
- 修复了日志消息中的拼写错误(PR#146,感谢bluca)。 
- 提高了生成的c_uamqp.c文件的重复性(PR#144,感谢bluca)。 
1.2.6 (2020-02-13)
- 修复了在断开未发送的挂起消息的链路时的段错误。 
1.2.5 (2019-12-10)
- 修复了C对象的垃圾回收以防止在非受控关闭时崩溃。 
- 修复了传递给asyncio函数的事件循环引用丢失的问题。 
- 修复了接收大消息时的无效流量控制。 
- 将链路重定向日志从警告降级为信息。 
1.2.4 (2019-12-02)
- 修复了计算发送超时的问题。 
- 从ConnectionAsync中移除了ThreadPoolExecutor。 
- 增加了对Python 3.8的支持。 
1.2.3 (2019-10-07)
- 修复了在连接刚开始工作时丢弃接收到的消息的问题。 
- 修复了应用http_proxy时底层io类型未设置为WebSocket的问题(PR#92,感谢skoop22)。 
- 修复了发送消息时的无效超时。 
- 作为AMQP协议的一部分,为ReceiveClient(Async)和MessageReceiver(Async)添加了所需的-capabilities。 
- 为Message添加了交付标签(azure-sdk-for-python问题#7336)。 
- 为MessageReceiver添加了work方法,为MessageReceiverAsync添加了work_async方法,负责更新链路状态。 
1.2.2 (2019-07-02)
- 通过仅打印警告而不是引发错误,暂时使asyncio.get_event_loop的修复与向后兼容。在下一个主要版本升级时,我们可以完全禁用它。 
1.2.1 (2019-06-20)
- 更新了JWTTokenAuth和JWTTokenAsync中的update_token()实现(问题#80)。 
1.2.0 (2019-04-16)
- 修复了批量消息中缺少应用属性的问题(azure-event-hubs-python问题#97)。 
- 修复了日期时间对象解析问题(问题#63)。 
- 修复了未公开的发送/接收结算模式问题。 
- 修复了重试的消息未添加回发送队列的问题。 
- 修复了使用asyncio.get_event_loop的问题。 
- 为AMQP字节和uBytes类型添加了类型对象。 
- 在挂起消息队列周围添加了异步锁定(PR#54,感谢zach-b)。 
- 增加了WebSocket(通过WebSocket的AMQP)支持(azure-sdk-for-python问题#5318)。 
- 添加了新的令牌类JWTTokenAuth和JWTTokenAsync以支持OAuth。 
1.1.0 (2018-11-12)
- 支持Python 2.7(>_<)/ - 在Python 3.x中,每当抛出TimeoutError时,在Python 2.7中将替换为新的~uamqp.errors.ClientTimeout异常。 
- Python 2中的str对象在Python 3中将被视为bytes,而Python 2中的unicode对象将类似于Python 3中的str。 
- 添加了uamqp.compat模块来处理Py 2与Py 3的导入和类型(PR#46,感谢maxkrivich)。 
 
- 如果整数值太大,AMQP编码的整型现在将自动回退到Long类型或double类型。 
- 改进了对及时检测无效的ATTACH句柄并引发适当错误的支撑。 
- 添加了AMQPDescribed、AMQPInt和AMQPuInt类型,以便显式处理整型和无符号整型的编码。 
- 添加了新的错误errors.AMQPClientShutdown作为KeyboardInterrupt的包装器,以更好地处理中断处理。 
- 改进了对C回调期间键盘中断的处理,以便更好地促进干净的客户端关闭。 
- 在C级别添加了对键盘中断的额外处理,以清理讨厌的警告。 
- 添加了类方法Message.decode_from_bytes,用于从AMQP线编码数据创建消息。 
- 添加了Message.encode_message方法,以检索当前消息的AMQP线编码字节数据。 
- 修正了Message.get_message_encoded_size()的行为,以返回准确的大小。 
- 为client.mgmt_request添加了新的可选callback参数,以允许对不同的状态码进行自定义处理。 
- 添加了新的客户端方法auth_complete()和client_ready(),以允许更精细的监控或客户端打开阶段。 
- 客户端消息处理器现在是公开属性client.message_handler(SendClient._message_sender和ReceiveClient._message_receiver现已弃用)。 
- 自动将datetime.datetime对象编码为AMQP时间戳。 
- 改进了对带有可选descriptor参数的源过滤器以及在Source.set_filter()中的新Source.get_filter()方法的支撑。 
- 修复了会话设置未传递给CBS会话的问题。 
- 添加了对接收到的Link ATTACH帧的回调支撑。可以通过on_attach关键字参数提供给客户端。 
- 删除了未使用的message.SequenceBody类。 
- 公开BatchMessage.size_offset属性,用于批量大小定制。 
1.0.3 (2018-09-14)
- 在空闲接收期间减少了CPU负载。 
- 更新了Azure uAMQP C和Azure C共享实用工具依赖。 
1.0.2 (2018-09-05)
- 修复了将MessageProperties设置为字符串或字节的附加错误。 
- 删除了auth锁定以防止键盘中断时的锁定问题。 
1.0.1 (2018-08-29)
- 添加了一些额外的检查以防止在键盘中断时锁定挂起。 
- 修复了将MessageProperties.subject设置为字符串或字节的错误。 
- uamqp.send_message现在返回一个包含uamqp.constants.MessageState的列表,以指示每个发送消息的成功状态。 
1.0.0 (2018-08-20)
- API已确定。 
- 行为变更 当SendClient或SendClientAsync关闭时,任何剩余的挂起消息(即处于WaitingToBeSent和WaitingForSendAck状态的消息)将不再被清除,但可以从新的属性SendClient.pending_messages中检索以重新处理。 
- 行为变更 SendClient.queue_message函数现在可以通过简单地传递额外的消息实例一次队列多个消息。 - send_client.queue_message(my_message) 
- send_client.queue_message(message_1, message_2, message_3) 
- send_client.queue_message(*my_message_list) 
 
- 如果尝试为多个连接使用身份验证对象,将引发ValueError。 
- 将内部_async模块重命名为非私有async_ops,以允许文档生成。 
- 重新格式化日志以提高性能。 
- 添加了额外的日志。 
0.2.1 (2018-08-06)
- 修复了amqpvalue绑定中潜在的崩溃问题。 
- 修复了cbs PUT令牌完整回调中的固定绑定故障。 
- 更新了uAMQP-C。 
- 添加了额外的身份验证和连接锁定以实现线程/异步安全。 
- 增加了INFO级别的日志记录。 
- 暂时移除了平台反初始化,直到其得到改进。 
- 添加了对客户端引起错误状态的连接的处理。 
0.2.0 (2018-07-25)
- 破坏性变更 MessageSender.send_async已被重命名为MessageSender.send,而MessageSenderAsync.send_async现在是协程。 
- 破坏性变更 从MessageSender、MessageReceiver、MessageSenderAsync和MessageReceiverAsync中移除了detach_received回调参数,改为新的error_policy参数。 
- 添加了ErrorPolicy类以确定客户端如何响应对通用AMQP错误以及自定义或供应商特定的错误。将使用默认策略,但可以通过使用新的error_policy参数将自定义策略添加到任何客户端。值必须是ErrorPolicy的实例或子类。 - 还将error_policy参数添加到MessageSender、MessageReceiver、Connection及其异步对应版本中,以便处理链路DETACH和连接CLOSE事件。 
- 传递给SendClient的错误策略决定了消息发送重试尝试的次数。这取代了之前的constants.MESSAGE_SEND_RETRIES值,该值现已弃用。 
- 添加了新的ErrorAction对象以确定客户端如何响应对错误。它有三个属性:retry(一个布尔值,用于确定错误是否可重试)、backoff(一个整数,用于确定客户端在重试之前应等待多长时间,默认值为0)和increment_retries(一个布尔值,用于确定错误是否应计入最大重试尝试次数,默认值为True)。目前仅考虑消息发送失败时的backoff和increment_retries。 
- 添加了VendorConnectionClose和VendorLinkDetach异常以处理非标准(未识别)的连接/链路错误。 
 
- 添加了对HTTP代理配置的支持。 
- 添加了对同步运行异步客户端的支持。 
- 添加了对连接保持连接的支持 - 这是对同步客户端的后台线程,也是异步客户端的后台异步函数。保持连接功能默认禁用,要启用,请将客户端的keep_alive_interval参数设置为整数,表示连接ping之间的秒数。 
- 添加了对捕获连接CLOSE事件的 support。 
- 添加了对Connection.sleep和ConnectionAsync.sleep_async的支持,以暂停连接。 
- 添加了对暴露消息处置交付状态(带有错误信息)的支持。 
- 添加了constants.ErrorCodes枚举,以映射标准AMQP错误条件。这取代了之前的constants.ERROR_CONNECTION_REDIRECT和constants.ERROR_LINK_REDIRECT,这两个值现已弃用。 
- 添加了新的超错误AMQPError,所有异常都从中继承。 
- 添加了新的MessageHandlerError异常,它是AMQPConnectionError的子类,用于处理发送器/接收器进入不确定错误状态。 
- MessageException现在是MessageResponse的子类。 
- 添加了ClientMessageError异常,它是MessageException的子类,用于客户端引发发送错误。 
- 捕获链路DETACH事件现在将正常工作,无论服务是否返回交付状态。 
- 修复了尝试在已断开连接的链路上解决接收消息导致客户端崩溃的bug。 
- 修复了amqp C DescribedValue中的bug。 
- 修复了客户端在取消分配失败的管理操作时崩溃的bug。 
0.1.1 (2018-07-14)
- 从Python 3.4中移除了types.py/utils.py中的循环依赖。 
- 当header属性未设置时,返回None而不是引发ValueError。 
- 修复了接收带有应用程序属性的message的bug。 
0.1.0 (2018-07-05)
- 修复了处理CBS身份验证到无效主机名的错误处理bug。 
- 将C错误日志更改为调试级别。 
- 将uAMQP C版本提升到1.2.7 
- 使用属性和注释修复了内存泄漏和释放错误。 
0.1.0rc2 (2018-07-02)
- 重大变更 子模块 async 已重命名为内部 _async。现在可以从 uamqp 或 uamqp.authentication 直接访问子模块中的所有异步类。 
- 重大变更 由回调返回的任何内容现在都将被忽略。 
- 重大变更 改变了消息状态枚举值 - Complete -> SendComplete 
- Failed -> SendFailed 
- WaitingForAck -> WaitingForSendAck 
 
- 添加了新的消息状态枚举值 - ReceivedUnsettled 
- ReceivedSettled 
 
- 重大变更 修改了消息确认异常 - 将 AbandonMessage 和 DeferMessage 异常合并为 MessageModified,以符合 AMQP 规范。 
- AcceptMessage 重命名为 MessageAccepted。 
- RejectMessage 重命名为 MessageRejected,现在它接受 condition 和 description 参数而不是 message。 
 
- 添加了 errors.LinkDetach 异常作为 AMQPConnectionError 的新子类,用于包装 Link DETACH 位置中的数据。 
- 添加了 errors.LinkRedirect 作为 LinkDetach 的特定子类,用于解码 Link Redirect 响应的特定重定向字段。 
- 添加了 errors.MessageAlreadySettled 异常,用于处理已返回收据位置的接收消息的操作。 
- 添加了 errors.MessageReleased 异常。 
- 添加了 errors.ErrorResponse 异常。 
- 现在可以通过消息上的新函数显式地通过一组新函数在消息上确认接收到的消息 - Message.accept() 
- Message.reject(condition:str, description:str) 
- Message.release() 
- Message.modify(failed:bool, deliverable:bool, annotations:dict) 
 
- 向 ReceiveClient 和 ReceiveClientAsync 添加了显式的 auto_complete 参数。如果将 auto_complete 设置为 False,则所有消息都必须由用户显式“接受”或“拒绝”,否则它们将超时并被释放。默认值为 True,这是每种接收机制的行为。 - 通过回调处理的接收消息(ReceiveClient.receive_messages())将在回调完成后没有设置显式响应时自动“接受”。 
- 通过批量处理的接收消息(ReceiveClient.receive_message_batch())在返回给用户之前将自动“接受”。 
- 通过迭代器处理的接收消息(ReceiveClient.receive_message_iter())在生成器增加后如果没有设置显式响应,将自动“接受”。 
 
- 添加了新的方法到客户端和连接,允许在引发 LinkRedirect 异常时重定向到替代端点。对于使用共享连接的客户端,无法使用客户端重定向助手 - 必须在连接可以重定向之前关闭客户端。必须为新端点提供新凭据。新方法包括 - uamqp.Connection.redirect(redirect_info, auth) 
- uamqp.async.ConnectionAsync.redirect_async(redirect_info, auth) 
- uamqp.SendClient.redirect(redirect_info, auth) 
- uamqp.ReceiveClient.redirect(redirect_info, auth) 
- uamqp.async.SendClientAsync.redirect_async(redirect_info, auth) 
- uamqp.async.ReceiveClientAsync.redirect_async(redirect_info, auth) 
 
- 向 Sender 和 Receiver 类添加了 on_detach_received 参数,以传递在 Link DETACH 上运行的回调。 
- 移除了长度为 1 的字符串的自动字符编码,并添加了 types.AMQPChar 以进行显式编码。 
- 将 uAMQP C 版本升级到 1.2.5 
- 将 Azure C Shared Utility 升级到 1.1.5 
- 修复了 MessageProperties、MessageHeader 和消息注释中的内存泄漏。 
0.1.0rc1 (2018-05-29)
- 修复了异步接收器中的导入错误。 
- 公开了发送器/接收器销毁函数。 
- 将 receiver.open 的 on_message_received 参数移动到构造函数。 
- 删除了 sasl 模块,并将内部类移动到身份验证模块。 
- 在字符串编码的所有地方添加了编码参数。 
- 开始编写文档。 
- 已更新uAMQP-C到1.2.4和C共享工具到1.1.4(包括修复问题#12)。 
- 修复了MgmtOperation.execute的返回类型 - 现在返回~uamqp.message.Message。 
- 使客户端中的AMQP连接/会话/发送者/接收者类型可覆盖。 
- 添加了管理操作的调试跟踪。 
- 修复了在操作失败时管理回调的错误。 
- 默认的AMQP字节编码现在是String类型,而bytearray是Binary类型。 
- 添加了AMQP Array类型并修复了Long类型范围验证。 
- 向Message和BatchMessage添加了header参数,用于设置MessageHeader。 
- 修复了MessageHeader属性设置器。 
0.1.0b5 (2018-04-27)
- 将Certifi添加为依赖项,以使OpenSSL证书动态化。 
- 向身份验证类添加了verify选项,允许设置自定义证书路径(适用于Linux和OSX)。 
0.1.0b4 (2018-04-19)
- 修复了异步接收中的内存泄漏。 
- 从客户端接收函数中移除了close_on_done参数。 
- 向同步客户端添加了接收迭代器。 
- 使异步迭代接收与Python 3.5兼容。 
0.1.0b3 (2018-04-14)
- 修复了许多linux轮中的SSL错误。 
- 修复了消息注解属性。 
- 修复了批量消息和发送批量消息中的错误。 
- 修复了冲突的接收器链接ID。 
- 通过在同步客户端中删除队列最大大小来修复悬挂的接收器。 
- 添加了对发送具有None和空主体的消息的支持。 
0.1.0b2 (2018-04-06)
- 添加了消息发送重试。 
- 添加了对管理请求的超时和更好的错误处理。 
- 改进了连接和身份验证错误处理和错误消息。 
- 修复了消息注解类型。 
- SendClient.send_all_messages()现在返回消息发送状态列表。 
- 修复了OpenSSL平台初始化多次的问题。 
- 修复了SAS令牌自动刷新的问题。 
- 修改了receive_batch的行为,以便在消息可用时立即返回它们。 
- receive_batch中的参数batch_size重命名为max_batch_size。 
- 修复了消息application_properties解码错误。 
- 移除了MacOS对OpenSSL和libuuid的依赖。 
0.1.0b1 (2018-03-24)
- 添加了对管理请求的支持。 
- 修复了无消息的C操作ValueError。 
- 在Python中而不是C中存储消息元数据。 
- 重构了发送和接收客户端以创建通用的父AMQPClient。 
- 修复了无接收时间戳的bug。 
- 由于不稳定,移除了异步迭代器队列 - 所有回调现在都是同步的。 
0.1.0a3 (2018-03-19)
- 通过迭代器或批量添加了对异步消息接收的支持。 
- 移除了同步接收迭代器,并用同步批量接收替换。 
- 为发送和接收客户端添加了同步和异步上下文管理器。 
- 修复了令牌不稳定性并添加了put令牌重试策略。 
- 公开了链接ATTACH属性。 
- 现在连接有一个单次$cbs会话,可以在客户端之间重复使用。 
- 将C调试跟踪日志添加到Python记录器(‘uamqp.c_uamqp’)。 
0.1.0a2 (2018-03-12)
- 公开了连接遥测的OPEN表现性属性。 
- 公开了message.message_annotations和message.application_properties的设置器。 
- 对连接打开和关闭进行了调整,以促进发送/接收客户端之间共享连接对象。 
- 支持在连接URI中嵌入用户名/密码。 
- 客户端现在可以选择保留连接/会话/链接以供重用。 
- 更新了构建过程和安装说明。 
- 各种错误修复以提高稳定性。 
0.1.0a1 (2018-03-04)
- 首次发布 
项目详细信息
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分布
uamqp-1.6.10.tar.gz的哈希
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 6e886c56f56dce24558e340b8f2a213287a6965575d348e9473b78f30b0c1a23 | |
| MD5 | 59bc77c8f538f590523f5f991a8bc301 | |
| BLAKE2b-256 | 4cd0d2a86d6092c0b9f0d9ef6eda972c4de55caa8e7533f757fa9df14add7c52 | 
uamqp-1.6.10-cp312-cp312-win_amd64.whl的哈希
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 9b9f8dbb88bb818f1f82326ea17aa1bd1d8cdcf77260be7cba935cdf66de7496 | |
| MD5 | bc3af4d661a4797e2d5699da4956aa2b | |
| BLAKE2b-256 | 924bfa6a19b4cd1c9dc2d26d969c12f9a03f3e0b12b68e9df60df72132de1287 | 
uamqp-1.6.10-cp312-cp312-win32.whl的哈希
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | b72ddd9f99e34a16d9de1125d1a4c52ee4f2e1efadebb8765ab0053b7efff988 | |
| MD5 | ef34821595128b4963cb966f771e29c0 | |
| BLAKE2b-256 | cfe427921e463a497d90a03b756b9e0dc17a65b1e215b9098ff1f3ed8f340a12 | 
uamqp-1.6.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl的哈希
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 9df219280f4199a922d266dc63308cedf305af95035b6014467605397d7eb7c5 | |
| MD5 | 77fb9d81f9188c57e899eab5f2c2b646 | |
| BLAKE2b-256 | 159941edd5b25b667fc3e441f310dc2c0d5ef99bd6cf1674ba8d0f2db3a96e32 | 
uamqp-1.6.10-cp312-cp312-macosx_10_9_x86_64.whl的哈希
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 00e6a72d048cb391bcf013a740577c159d483b5f70b4477397828d02f35b765f | |
| MD5 | 09f445e1c941c0c929cee679c4c4901c | |
| BLAKE2b-256 | 56c55254a7603cd46e6012a440fa6be54fb6a452064afc53aa9d61c993accaee | 
uamqp-1.6.10-cp311-cp311-win_amd64.whl的哈希
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 3f24467f4ef51072875225e1ac5465ba33ea86891ebbb32454459aeb311b59b2 | |
| MD5 | 21e695fb9f264fbfd59e76262cb88b3e | |
| BLAKE2b-256 | 3a6cba5d0794a58a1f2d98241ed4cef67ac4565ba6b0d78867995083b7b07bb7 | 
uamqp-1.6.10-cp311-cp311-win32.whl的哈希
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 7762a04b5df1a2256f666a555869b085485aee5ff96ddcc57589c1eabbac55d9 | |
| MD5 | 2de573d03aa0382d9edd1717923cf16c | |
| BLAKE2b-256 | 1f746234e88a19b88702a7e4806bd455039611503ea74d1ab98bb514365681ed | 
uamqp-1.6.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl的哈希
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | c63f3f867385681be7ce1b0a3b8a1bea49d0111a700acfd6403749ff1c58a951 | |
| MD5 | 3d2569b6d999e39309850b7a21caf2b5 | |
| BLAKE2b-256 | 61e4077d9d044c179552b1c1fd61c23a5c9390c6983f93089e94819e4a1a49b7 | 
哈希值 用于 uamqp-1.6.10-cp311-cp311-macosx_10_9_x86_64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 6f62f974371e90ea70d8b9a4926c71cff7ff7a308b21c59fa60eb332ee9e0c07 | |
| MD5 | 4de75654dcbc6c4a4e51722e7306f2e0 | |
| BLAKE2b-256 | c1c04a6858c8cfbf68f11304dc866f47e37e4cc523a240fc0865cf4e8b22bda3 | 
哈希值 用于 uamqp-1.6.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | e33b9368b2790daf563ec348e7e5e37013cd949dc74f5c3705d248f8a512a780 | |
| MD5 | 1fa9c3372b355854d75716476df912ac | |
| BLAKE2b-256 | 81061af48ba45a55df2223a1bd35fb61a63f427c8791e34e47e03ef7a58f9196 | 
哈希值 用于 uamqp-1.6.10-cp310-cp310-macosx_10_9_x86_64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | e04f606db36b770cac4fb5df26da496d2e6f09b03f4187be4a9e5034f37482b5 | |
| MD5 | f10aec7425eaea6c0346d5a190b51718 | |
| BLAKE2b-256 | be29aba4733b8aa601eb14b318e31708dbcc99c696fbab7c178602f00c1d6cb2 | 
哈希值 用于 uamqp-1.6.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | c6b5862a6f1f09947e0c46ac4f78e24c877f8aada7dd38e1e095a2eb32e9de53 | |
| MD5 | 585b388ca5f39bba303a0da984c4a97b | |
| BLAKE2b-256 | df6d8658668b17a4464b0c2054a795c16f268bfc7e0bb6970b3f8d853f1247b1 | 
哈希值 用于 uamqp-1.6.10-cp39-cp39-macosx_10_9_x86_64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 09676dc331d279abd548036595e03c8dc17b84ede97b22553b4815f41ef83968 | |
| MD5 | 63cab4113d8ba3467698b600c9951164 | |
| BLAKE2b-256 | 4ac0aea588ac9f9f68c23a1a501c0894e4af22a3096418d93907bf39b85faa89 | 
哈希值 用于 uamqp-1.6.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | a6e7ede4818bc0d430941b365d387734b128d57076a4a3944cd7448821bde5f5 | |
| MD5 | 845e545c119499fd716a3392bf99e521 | |
| BLAKE2b-256 | 81ce64f6b1bad3106ebc0b8d02680799fea9b44c1ec72a3b85ce64a2eaebcd80 | 
哈希值 用于 uamqp-1.6.10-cp38-cp38-macosx_10_9_x86_64.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 290fdf20c51b050cf1d36dabae5037fc2bd9476b1cb26df35f3dda0ac188c87e | |
| MD5 | 2ba4de0ad20afc8f4c6f4b6afb1471c3 | |
| BLAKE2b-256 | 8a9bf701074516841c115752f78de3ebb2ceb775c91cc14904b68e71008c8195 |