支持高级操作的快速可寻址优先级队列

apq的Python项目详细描述


apq公司

PyPIPyPI - Python VersionPyPI - WheelPyPI - LicenseGitHub Workflow Status (branch)

apq实现可寻址优先级队列数据的不同变体 可从python3项目导入的结构。在

该项目旨在提供运行时高效的优先级实现 队列,同时保持实际使用和维护一个清晰的代码库。在

  • 由{{CD1>}提供的所有优先级队列都由C++二进制堆支持 实施。实现了向Python公开的优先级队列类型 在赛顿。在

  • apq在所有公共平台上没有安装或运行时依赖关系。 {STR 1 } $注:平台上需要编译器和基本C++头文件 没有apq的二进制分布。在

  • 类型存根与包一起安装,以便mypy可以完全 检查从属代码。在

优先级队列类型

这些优先级队列使用64位浮点作为优先级值(value) 与FIFO语义相同的value注意:64位浮点 可以表示54位有符号整数。在

  • AddressablePQ-未实现。此优先级队列公开 以Item其条目形式的持久引用。通过Item, 条目的value可以更改,也可以删除任意条目 来自PQ。在

  • KeyedPQ-此优先级队列允许通过字符串查找条目 钥匙。这意味着它将可寻址优先级队列与 字典,创建str到项的映射(几乎实现 typing.Mapping[str, KeyedItem])。^无论何时,建议使用{} 使用一个键查找单个条目。在

  • SimplePQ-未实现。此优先级队列是不可寻址的 可寻址PQ的变体。SimplePQ当快速PQ 必需的,只能通过add()pop()进行修改。在

快速启动

安装:

$ pip install apq

用法:

^{pr2}$

版本和兼容性

apq使用semantic versioning派生 释放。使用apq文档化的公共API的代码将继续工作 所有未来版本的apq都与API兼容。API兼容性 通过版本标识符的主要组件指示。在

apq目前正在积极开发/测试中。突破性的变化 将出现公共接口。Beta版本通过 版本标识符的主要组件,例如0.10.0。在

为了鼓励在beta期间使用,apq将语义版本控制扩展到beta 发布如下:从0.10.0起,API兼容性得到保证 {cd27>释放相同的值。E、 g.0.17.3是 API与0.10.1兼容。在

依赖包应该使用这个语义来指定版本 约束,例如apq >= 0.11.1, < 0.20.0(c.f.PEP 508)。钉扎 仍然推荐用于应用程序,例如使用PoetryPipenv。在

apq的目标是在Python的所有活动版本上完全工作。python3.5不是 目前支持Python发布的信息。Python Developer's Guide中描述 有关Development Cycle页的详细信息。在

分配

apq通过PyPi分布。PyPi ^{} Project 包含每个版本的源分发。另外,预制 通用平台可采用轮子形式的二进制分布。 pip install apq将自动检测最合适的分布。在

TODO:机器平台和操作系统、Python实现和版本表 哪个轮子是造的。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Spring引导jar文件可重用(本地maven存储库)   没有标题的java Webpush通知不会出现   本地类的优先级。java文件还是从java包中导入的类?   java Sparks enableHiveSupport   java通过AJAX调用我的WebService通常会导致服务器故障   java添加到链表末尾   java提供了对Spring数据Mongo存储库的限制   仅显示字符的程序显示“?”在爪哇   java Oracle 10.2.0.4.0和OJDBC1212。1.0.0.jar | |无法获取JDBC连接;嵌套的异常是ja│ │ ORA01882:未找到时区区域   使用Netflix Eureka的java JSONException   java我们如何为akka非类型处理器编写单元测试   java 安卓在触摸和移动时获取按钮文本   java将字符串转换为int数组bluej