itertools. 但可序列化。即使在Python 2中。
项目描述
picklable-itertools
Python标准库中itertools的重实现,使用可序列化迭代器对象。旨在与Python 2.7和3.4+兼容。还包括picklable_itertools.extras中的某些相关实用工具的可序列化、Python {2, 3} 兼容实现,包括Toolz库的一些函数。
为什么?
哲学
这是一个即插即用的替代品。 很直观。通过标准库 itertools 或内置实现进行测试,以验证行为是否匹配。在 Python 2 和 Python 3 在命名上存在差异时(filterfalse 与 ifilterfalse,zip_longest 与 izip_longest),我们提供两者。我们还提供了仅在 Python 2 版本的 itertools 中可用的名称(ifilter,izip),在 Python 3 中也以它们的内置名称(filter,zip)提供,以便于使用。随着新对象被添加到 Python 3 的 itertools 模块中,我们打算添加它们(例如,accumulate 只存在于 Python 3 中,并且可序列化的实现包含在此包中。)
如果可能,优雅地处理内置类型。 列表迭代器等在 Python 2.x 中不可序列化,因此我们提供了替代实现。文件迭代器也得到了透明处理。目前不支持字典迭代器和集合迭代器。picklable_itertools.xrange 可以作为 Python 2 的 xrange/Python 3 的 range 的替代品,其优点是它产生的迭代器在 Python 2 和 3 中都是可序列化的。
过早优化是万恶之源。 这些事物是用 Python 实现的,所以速度显然不是我们的首要关注点。几个更高级的迭代器是通过将更简单的迭代器链起来构建的,这并不是最高效的做法,但大大简化了代码。如果速度(或更浅的对象图)是必要的或所希望的,这些总是可以重新实现的。欢迎提出此类请求的拉取请求。
项目详情
picklable-itertools-0.1.1.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | faecb7709d2684f3d2d06032e06ed0670cacc59cc074adccd666291c848fe638 |
|
MD5 | 1bcfa6cd575a833fed253766aeb584a5 |
|
BLAKE2b-256 | 75bccda9191f0c92960ede6aa95e364443965246385faf62775cc30749931c2c |