# Buildsheet autogenerated by ravenadm tool -- Do not edit. NAMEBASE= python-rpds-py VERSION= 0.19.0 KEYWORDS= python VARIANTS= v12 v11 SDESC[v11]= Bindings to Rust persistent data structures (3.11) SDESC[v12]= Bindings to Rust persistent data structures (3.12) 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 SITES[main]= PYPI/r/rpds-py SITES[cr01]= CRATES/archery:1.2.0 SITES[cr02]= CRATES/autocfg:1.3.0 SITES[cr03]= CRATES/cfg-if:1.0.0 SITES[cr04]= CRATES/heck:0.5.0 SITES[cr05]= CRATES/indoc:2.0.5 SITES[cr06]= CRATES/libc:0.2.155 SITES[cr07]= CRATES/memoffset:0.9.1 SITES[cr08]= CRATES/once_cell:1.19.0 SITES[cr09]= CRATES/portable-atomic:1.6.0 SITES[cr10]= CRATES/proc-macro2:1.0.86 SITES[cr11]= CRATES/pyo3:0.22.1 SITES[cr12]= CRATES/pyo3-build-config:0.22.1 SITES[cr13]= CRATES/pyo3-ffi:0.22.1 SITES[cr14]= CRATES/pyo3-macros:0.22.1 SITES[cr15]= CRATES/pyo3-macros-backend:0.22.1 SITES[cr16]= CRATES/quote:1.0.36 SITES[cr17]= CRATES/rpds:1.1.0 SITES[cr18]= CRATES/static_assertions:1.1.0 SITES[cr19]= CRATES/syn:2.0.69 SITES[cr20]= CRATES/target-lexicon:0.12.14 SITES[cr21]= CRATES/triomphe:0.1.13 SITES[cr22]= CRATES/unicode-ident:1.0.12 SITES[cr23]= CRATES/unindent:0.2.3 DISTFILE[1]= rpds_py-0.19.0.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 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 SPKGS[v11]= single SPKGS[v12]= single OPTIONS_AVAILABLE= PY312 PY311 OPTIONS_STANDARD= none VOPTS[v11]= PY312=OFF PY311=ON VOPTS[v12]= PY312=ON PY311=OFF BUILD_DEPENDS= rust:single:standard USES= cargo cclibs:single DISTNAME= rpds_py-0.19.0 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.19.0 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 [PY311].BUILD_DEPENDS_ON= python-maturin:single:v11 python-pip:single:v11 [PY311].USES_ON= python:v11 [PY312].BUILD_DEPENDS_ON= python-maturin:single:v12 python-pip:single:v12 [PY312].USES_ON= python:v12 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.19.0-cp${PYTHON_SUFFIX}-cp${PYTHON_SUFFIX}-manylinux_2_24_x86_64.whl" ];\ then ${MV}\ ${INSTALL_WRKSRC}/target/wheels/rpds_py-0.19.0-cp${PYTHON_SUFFIX}-cp${PYTHON_SUFFIX}-manylinux_2_24_x86_64.whl\ ${INSTALL_WRKSRC}/target/wheels/rpds_py-0.19.0-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.19.0-cp${PYTHON_SUFFIX}-cp${PYTHON_SUFFIX}-freebsd_*.whl\ rpds_py-0.19.0-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:2727:distinfo] 4fdc9afadbeb393b4bbbad75481e0ea78e4469f2e1d713a90811700830b553a9 24613 rust/crates/rpds_py-0.19.0.tar.gz 8967cd1cc9e9e1954f644e14fbd6042fe9a37da96c52a67e44a2ac18261f8561 22842 rust/crates/archery-1.2.0.tar.gz 0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0 16524 rust/crates/autocfg-1.3.0.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 4e99090d12f6182924499253aaa1e73bf15c69cea8d2774c3c781e35badc3548 536682 rust/crates/pyo3-0.22.1.tar.gz 7879eb018ac754bba32cb0eec7526391c02c14a093121857ed09fbf1d1057d41 31205 rust/crates/pyo3-build-config-0.22.1.tar.gz ce2baa5559a411fc1cf519295f24c34b53d5d725818bc96b5abf94762da09041 67422 rust/crates/pyo3-ffi-0.22.1.tar.gz 049621c20a23f2def20f4fe67978d1da8d8a883d64b9c21362f3b776e254edc7 8029 rust/crates/pyo3-macros-0.22.1.tar.gz 0e969ee2e025435f1819d31a275ba4bb9cbbdf3ac535227fdbd85b9322ffe144 65589 rust/crates/pyo3-macros-backend-0.22.1.tar.gz 0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7 28507 rust/crates/quote-1.0.36.tar.gz a0e15515d3ce3313324d842629ea4905c25a13f81953eadb88f85516f59290a4 69493 rust/crates/rpds-1.1.0.tar.gz a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f 18480 rust/crates/static_assertions-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:367: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/license_files/LICENSE