Skip to main content

实现快速整数位集的基于 C 的扩展。

项目描述

https://img.shields.io/travis/inveniosoftware/intbitset.svg https://img.shields.io/github/tag/inveniosoftware/intbitset.svg https://img.shields.io/pypi/dm/intbitset.svg https://img.shields.io/github/license/inveniosoftware/intbitset.svg

安装

intbitset 在 PyPI 上,所以你只需要一个 C 编译器和 pip:

pip install intbitset

文档

intbitset库提供了一个集合实现来存储排序的无符号整数,可以是 32 位整数(介于02**31 - 1intbitset.__maxelem__ 之间),也可以是通过Python C 扩展中的位向量实现的具有快速集合操作的无限范围速度和减少内存使用。

inbitset类使用一些额外的特定方法模拟 Python 内置的 set 类接口,例如它自己的快速转储和加载编组功能。

>>> from intbitset import intbitset
>>> x = intbitset([1,2,3])
>>> y = intbitset([3,4,5])
>>> x & y
intbitset([3])
>>> x | y
intbitset([1, 2, 3, 4, 5])

intbitset还支持pickle 协议迭代器协议,并且可以表现得像一个可以切片的序列。因为整数总是按顺序存储的,所以非空集合[0]的第一个元素也是min()整数,最后一个元素[-1]也是集合中的max()整数。

与标准库集合类相比,intbitset集合操作,如交集、并集和差集,对于密集整数集可以快 5000 倍。

完整的文档可在 < http://intbitset.readthedocs.io > 或使用 Sphinx 构建:

pip install Sphinx
python setup.py build_sphinx

测试

运行测试很简单:

pip install -e .[tests]
pytest

在多个 Python 版本上运行测试:

pip install tox
tox

发展

要使用 Cython 重新生成 C 代码:

pip install cython
cython intbitset/intbitset.pyx

然后提交重新生成的 C 源并更新 CHANGE.rst

执照

版权所有 (C) CERN 和其他

SPDX 许可证标识符:LGPL-3.0 或更高版本

intbitset 是免费软件;您可以根据自由软件基金会发布的 GNU 宽松通用公共许可证的条款重新分发和/或修改它;许可证的第 3 版,或(由您选择)任何更高版本。

分发 intbitset 是希望它有用,但没有任何保证;甚至没有对适销性或特定用途适用性的默示保证。有关更多详细信息,请参阅 GNU 通用公共许可证。

您应该已经收到了一份 GNU 宽通用公共许可证的副本以及 intbitset;如果没有,请写信给 Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA。

在应用此许可时,CERN 不会放弃因其作为政府间组织的地位而授予其的特权和豁免权,也不会将自己置于任何司法管辖区。

下载文件

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

源分布

intbitset-3.0.1.tar.gz (151.8 kB 查看哈希

已上传 source

内置发行版

intbitset-3.0.1-cp310-cp310-win_amd64.whl (69.3 kB 查看哈希

已上传 cp310

intbitset-3.0.1-cp310-cp310-musllinux_1_1_x86_64.whl (397.6 kB 查看哈希

已上传 cp310

intbitset-3.0.1-cp310-cp310-musllinux_1_1_i686.whl (391.0 kB 查看哈希

已上传 cp310

intbitset-3.0.1-cp310-cp310-macosx_10_9_universal2.whl (138.9 kB 查看哈希

已上传 cp310

intbitset-3.0.1-cp39-cp39-win_amd64.whl (68.8 kB 查看哈希

已上传 cp39

intbitset-3.0.1-cp39-cp39-musllinux_1_1_x86_64.whl (395.2 kB 查看哈希

已上传 cp39

intbitset-3.0.1-cp39-cp39-musllinux_1_1_i686.whl (387.4 kB 查看哈希

已上传 cp39

intbitset-3.0.1-cp39-cp39-macosx_10_9_x86_64.whl (77.5 kB 查看哈希

已上传 cp39

intbitset-3.0.1-cp39-cp39-macosx_10_9_universal2.whl (138.9 kB 查看哈希

已上传 cp39

intbitset-3.0.1-cp38-cp38-win_amd64.whl (68.9 kB 查看哈希

已上传 cp38

intbitset-3.0.1-cp38-cp38-musllinux_1_1_x86_64.whl (404.7 kB 查看哈希

已上传 cp38

intbitset-3.0.1-cp38-cp38-musllinux_1_1_i686.whl (401.3 kB 查看哈希

已上传 cp38

intbitset-3.0.1-cp38-cp38-macosx_10_9_x86_64.whl (76.2 kB 查看哈希

已上传 cp38

intbitset-3.0.1-cp38-cp38-macosx_10_9_universal2.whl (135.9 kB 查看哈希

已上传 cp38

intbitset-3.0.1-cp37-cp37m-win_amd64.whl (67.2 kB 查看哈希

已上传 cp37

intbitset-3.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl (358.2 kB 查看哈希

已上传 cp37

intbitset-3.0.1-cp37-cp37m-musllinux_1_1_i686.whl (354.2 kB 查看哈希

已上传 cp37

intbitset-3.0.1-cp37-cp37m-macosx_10_9_x86_64.whl (74.3 kB 查看哈希

已上传 cp37

intbitset-3.0.1-cp36-cp36m-win_amd64.whl (67.0 kB 查看哈希

已上传 cp36

intbitset-3.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl (361.5 kB 查看哈希

已上传 cp36

intbitset-3.0.1-cp36-cp36m-musllinux_1_1_i686.whl (353.7 kB 查看哈希

已上传 cp36

intbitset-3.0.1-cp36-cp36m-macosx_10_9_x86_64.whl (74.3 kB 查看哈希

已上传 cp36