Python 绑定到 Rust rpds crate 以实现持久化数据结构。
这里的内容相当的少(坦白说,最初是为了支持在 referencing 库中替换 pyrsistent 而编写的)。
如果你看到有遗漏的内容(这很可能),非常欢迎提交 PR 来添加。
PyPI 上的发行版名为 rpds.py (等同于 rpds-py),因此可以通过以下方式安装:
$ pip install rpds-py请注意,如果你从源代码安装 rpds-py,你需要安装 Rust 工具链,因为它是构建时的依赖项。
可以在 此处 找到在 Dockerfile 中执行此操作的示例。
如果你认为你正处于一个应该已经构建了 wheels 的常见平台(即不需要从源代码编译),请随时提交一个 issue 或 pull request 来修改此处用于通过 maturin 构建 wheels 的 GitHub Action。
方法名通常与其 rpds 对应项类似(而不是 pyrsistent 的约定,尽管可能完全兼容 pyrsistent 的包装器模块在某个时候是一个好补充)。
>>> from rpds import HashTrieMap, HashTrieSet, List
>>> m = HashTrieMap({"foo": "bar", "baz": "quux"})
>>> m.insert("spam", 37) == HashTrieMap({"foo": "bar", "baz": "quux", "spam": 37})
True
>>> m.remove("foo") == HashTrieMap({"baz": "quux"})
True
>>> s = HashTrieSet({"foo", "bar", "baz", "quux"})
>>> s.insert("spam") == HashTrieSet({"foo", "bar", "baz", "quux", "spam"})
True
>>> s.remove("foo") == HashTrieSet({"bar", "baz", "quux"})
True
>>> L = List([1, 3, 5])
>>> L.push_front(-1) == List([-1, 1, 3, 5])
True
>>> L.rest == List([3, 5])
True