# Buildsheet autogenerated by ravenadm tool -- Do not edit. NAMEBASE= python-rpds-py VERSION= 0.22.3 KEYWORDS= python VARIANTS= v12 v13 SDESC[v12]= Bindings to Rust persistent data structures (3.12) SDESC[v13]= Bindings to Rust persistent data structures (3.13) HOMEPAGE= https://github.com/crate-py/rpds CONTACT= Python_Automaton[python@ironwolf.systems] DOWNLOAD_GROUPS= main cr01 cr02 cr03 cr04 cr05 cr06 cr07 cr08 cr09 cr10 cr11 cr12 cr13 cr14 cr15 cr16 cr17 cr18 cr19 cr20 cr21 cr22 cr23 cr24 SITES[main]= PYPI/r/rpds-py SITES[cr01]= CRATES/archery:1.2.1 SITES[cr02]= CRATES/autocfg:1.3.0 SITES[cr03]= CRATES/cc:1.0.90 SITES[cr04]= CRATES/cfg-if:1.0.0 SITES[cr05]= CRATES/heck:0.5.0 SITES[cr06]= CRATES/indoc:2.0.5 SITES[cr07]= CRATES/libc:0.2.155 SITES[cr08]= CRATES/memoffset:0.9.1 SITES[cr09]= CRATES/once_cell:1.19.0 SITES[cr10]= CRATES/portable-atomic:1.6.0 SITES[cr11]= CRATES/proc-macro2:1.0.86 SITES[cr12]= CRATES/pyo3:0.23.3 SITES[cr13]= CRATES/pyo3-build-config:0.23.3 SITES[cr14]= CRATES/pyo3-ffi:0.23.3 SITES[cr15]= CRATES/pyo3-macros:0.23.3 SITES[cr16]= CRATES/pyo3-macros-backend:0.23.3 SITES[cr17]= CRATES/python3-dll-a:0.2.11 SITES[cr18]= CRATES/quote:1.0.36 SITES[cr19]= CRATES/rpds:1.1.0 SITES[cr20]= CRATES/syn:2.0.69 SITES[cr21]= CRATES/target-lexicon:0.12.14 SITES[cr22]= CRATES/triomphe:0.1.13 SITES[cr23]= CRATES/unicode-ident:1.0.12 SITES[cr24]= CRATES/unindent:0.2.3 DISTFILE[1]= rpds_py-0.22.3.tar.gz:main DISTFILE[2]= generated:cr01 DISTFILE[3]= generated:cr02 DISTFILE[4]= generated:cr03 DISTFILE[5]= generated:cr04 DISTFILE[6]= generated:cr05 DISTFILE[7]= generated:cr06 DISTFILE[8]= generated:cr07 DISTFILE[9]= generated:cr08 DISTFILE[10]= generated:cr09 DISTFILE[11]= generated:cr10 DISTFILE[12]= generated:cr11 DISTFILE[13]= generated:cr12 DISTFILE[14]= generated:cr13 DISTFILE[15]= generated:cr14 DISTFILE[16]= generated:cr15 DISTFILE[17]= generated:cr16 DISTFILE[18]= generated:cr17 DISTFILE[19]= generated:cr18 DISTFILE[20]= generated:cr19 DISTFILE[21]= generated:cr20 DISTFILE[22]= generated:cr21 DISTFILE[23]= generated:cr22 DISTFILE[24]= generated:cr23 DISTFILE[25]= generated:cr24 DIST_SUBDIR= rust/crates DF_INDEX= 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 SPKGS[v12]= single SPKGS[v13]= single OPTIONS_AVAILABLE= PY312 PY313 OPTIONS_STANDARD= none VOPTS[v12]= PY312=ON PY313=OFF VOPTS[v13]= PY312=OFF PY313=ON BUILD_DEPENDS= rust:single:std USES= cargo cclibs:single DISTNAME= rpds_py-0.22.3 LICENSE= MIT:single LICENSE_FILE= MIT:{{WRKSRC}}/LICENSE LICENSE_SCHEME= solo CARGO_CARGOLOCK= {{WRKSRC}}/Cargo.lock CARGO_CARGOTOML= {{WRKSRC}}/Cargo.toml GENERATED= yes PLIST_SUB= VER=0.22.3 CPYTHON={{CPYTHON:U{{PYTHON_SUFFIX}}}} VAR_OPSYS[linux]= MAKEFILE_LINE=CPYTHON={{PYTHON_SUFFIX}}-x86_64-linux-gnu CARGO_SKIP_CONFIGURE= yes CARGO_SKIP_BUILD= yes CARGO_SKIP_INSTALL= yes [PY312].BUILD_DEPENDS_ON= python-maturin:single:v12 python-pip:single:v12 [PY312].USES_ON= python:v12 [PY313].BUILD_DEPENDS_ON= python-maturin:single:v13 python-pip:single:v13 [PY313].USES_ON= python:v13 post-patch: # create directives ${MKDIR} ${WRKSRC}/.cargo echo "[source.cargo]" >> ${WRKSRC}/.cargo/config.toml echo "directory = '${CARGO_VENDOR_DIR}'" >> ${WRKSRC}/.cargo/config.toml echo "[source.crates-io]" >> ${WRKSRC}/.cargo/config.toml echo "replace-with = 'cargo'" >> ${WRKSRC}/.cargo/config.toml do-build: (cd ${BUILD_WRKSRC} && ${SETENV} ${MAKE_ENV} maturin build \ --release \ --interpreter ${PYTHON_CMD}) pre-install-linux: # for some reason compatibility ends at -manylinux_2_23_x86_64 on # ubuntu 16.04 sysroot if [ -f "${INSTALL_WRKSRC}/target/wheels/rpds_py-0.22.3-cp${PYTHON_SUFFIX}-cp${PYTHON_SUFFIX}-manylinux_2_24_x86_64.whl" ];\ then ${MV}\ ${INSTALL_WRKSRC}/target/wheels/rpds_py-0.22.3-cp${PYTHON_SUFFIX}-cp${PYTHON_SUFFIX}-manylinux_2_24_x86_64.whl\ ${INSTALL_WRKSRC}/target/wheels/rpds_py-0.22.3-cp${PYTHON_SUFFIX}-cp${PYTHON_SUFFIX}-manylinux_2_23_x86_64.whl;\ fi do-install: # Due to upstream not supplying a setup.py file or other way to install # using pip command for now... ${SETENV} ${MAKE_ENV} pip install \ --verbose \ --no-index \ --no-compile \ --progress-bar off \ --root=${STAGEDIR} \ --root-user-action=ignore \ --disable-pip-version-check \ --no-deps ${INSTALL_WRKSRC}/target/wheels/*.whl (cd ${STAGEDIR} && ${PYTHON_CMD} -m compileall -d / . ||:) ${INSTALL_LIB} ${WRKSRC}/target/release/librpds.so \ ${STAGEDIR}${PYTHON_SITELIBDIR}/rpds ${CHMOD} +x ${STAGEDIR}${PYTHON_SITELIBDIR}/rpds/librpds.so ${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/rpds/rpds.*.so pre-install-midnightbsd: # Due to rust limitations, maturin must set target OS as freebsd, but # pip doesn't recognize that as a legal combination. Rename to complete build. (cd ${INSTALL_WRKSRC}/target/wheels/ && ${MV}\ rpds_py-0.22.3-cp${PYTHON_SUFFIX}-cp${PYTHON_SUFFIX}-freebsd_*.whl\ rpds_py-0.22.3-cp${PYTHON_SUFFIX}-cp${PYTHON_SUFFIX}-midnightbsd_3_0_0_amd64.whl) [FILE:1787:descriptions/desc.single] =========== ``rpds.py`` =========== |PyPI| |Pythons| |CI| Python bindings to the Rust rpds crate. What's here is quite minimal (in transparency, it was written initially to support replacing pyrsistent in the [referencing library]). If you see something missing (which is very likely), a PR is definitely welcome to add it. Installation ------------ The distribution on PyPI is named ``rpds.py`` (equivalently ``rpds-py``), and thus can be installed via e.g.: .. code:: sh $ pip install rpds-py Note that if you install ``rpds-py`` from source, you will need a Rust toolchain installed, as it is a build-time dependency. An example of how to do so in a Dockerfile can be found [here]. If you believe you are on a common platform which should have wheels built (i.e. and not need to compile from source), feel free to file an issue or pull request modifying the GitHub action used here to build wheels via maturin. Usage ----- Methods in general are named similarly to their rpds counterparts (rather than pyrsistent\ 's conventions, though probably a full drop-in pyrsistent\ -compatible wrapper module is a good addition at some point). .. code:: python >>> 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 [FILE:2831:distinfo] e32fee8ab45d3c2db6da19a5323bc3362237c8b653c70194414b892fd06a080d 26771 rust/crates/rpds_py-0.22.3.tar.gz eae2ed21cd55021f05707a807a5fc85695dafb98832921f6cfa06db67ca5b869 21224 rust/crates/archery-1.2.1.tar.gz 0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0 16524 rust/crates/autocfg-1.3.0.tar.gz 8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5 73954 rust/crates/cc-1.0.90.tar.gz baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd 7934 rust/crates/cfg-if-1.0.0.tar.gz 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea 11517 rust/crates/heck-0.5.0.tar.gz b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5 14396 rust/crates/indoc-2.0.5.tar.gz 97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c 743539 rust/crates/libc-0.2.155.tar.gz 488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a 9032 rust/crates/memoffset-0.9.1.tar.gz 3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92 33046 rust/crates/once_cell-1.19.0.tar.gz 7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0 140689 rust/crates/portable-atomic-1.6.0.tar.gz 5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77 48958 rust/crates/proc-macro2-1.0.86.tar.gz e484fd2c8b4cb67ab05a318f1fd6fa8f199fcc30819f08f07d200809dba26c15 1073838 rust/crates/pyo3-0.23.3.tar.gz dc0e0469a84f208e20044b98965e1561028180219e35352a2afaf2b942beff3b 32509 rust/crates/pyo3-build-config-0.23.3.tar.gz eb1547a7f9966f6f1a0f0227564a9945fe36b90da5a93b3933fc3dc03fae372d 74064 rust/crates/pyo3-ffi-0.23.3.tar.gz fdb6da8ec6fa5cedd1626c886fc8749bdcbb09424a86461eb8cdf096b7c33257 8085 rust/crates/pyo3-macros-0.23.3.tar.gz 38a385202ff5a92791168b1136afae5059d3ac118457bb7bc304c197c2d33e7d 70098 rust/crates/pyo3-macros-backend-0.23.3.tar.gz 9b9e268ee1be609e93a13eb06839f68f67e5fe0fb4049834d261c2d5091c1b6d 83622 rust/crates/python3-dll-a-0.2.11.tar.gz 0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7 28507 rust/crates/quote-1.0.36.tar.gz a0e15515d3ce3313324d842629ea4905c25a13f81953eadb88f85516f59290a4 69493 rust/crates/rpds-1.1.0.tar.gz 201fcda3845c23e8212cd466bfebf0bd20694490fc0356ae8e428e0824a915a6 265441 rust/crates/syn-2.0.69.tar.gz e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f 25508 rust/crates/target-lexicon-0.12.14.tar.gz e6631e42e10b40c0690bf92f404ebcfe6e1fdb480391d15f17cc8e96eeed5369 29568 rust/crates/triomphe-0.1.13.tar.gz 3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b 42168 rust/crates/unicode-ident-1.0.12.tar.gz c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce 7306 rust/crates/unindent-0.2.3.tar.gz [FILE:362:manifests/plist.single] %%PYTHON_SITELIBDIR%%/rpds/ __init__.py __init__.pyi librpds.so py.typed rpds.cpython-%%CPYTHON%%.so %%PYTHON_SITELIBDIR%%/rpds/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/rpds_py-%%VER%%.dist-info/ INSTALLER METADATA RECORD REQUESTED WHEEL direct_url.json %%PYTHON_SITELIBDIR%%/rpds_py-%%VER%%.dist-info/licenses/LICENSE