diff options
author | Jeffery To <jeffery.to@gmail.com> | 2023-10-14 02:14:10 +0800 |
---|---|---|
committer | Tianling Shen <cnsztl@gmail.com> | 2023-11-30 12:57:27 +0800 |
commit | 06231ce8cbf82f39f93cc2fa216fc8aa3cd3271c (patch) | |
tree | 6a98bf4fd0ec7f85e527d95aba45273a8830b65f | |
parent | 5bc25c0cdc9774279b7e99bfad6909e567a12eac (diff) |
python-rpds-py: Add new package
From the README:
Python bindings to the Rust rpds crate for persistent data structures.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
-rw-r--r-- | lang/python/python-rpds-py/Makefile | 43 | ||||
-rw-r--r-- | lang/python/python-rpds-py/test.sh | 21 |
2 files changed, 64 insertions, 0 deletions
diff --git a/lang/python/python-rpds-py/Makefile b/lang/python/python-rpds-py/Makefile new file mode 100644 index 000000000..c2aef8452 --- /dev/null +++ b/lang/python/python-rpds-py/Makefile @@ -0,0 +1,43 @@ +# +# Copyright (C) 2023 Jeffery To +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=python-rpds-py +PKG_VERSION:=0.10.6 +PKG_RELEASE:=1 + +PYPI_NAME:=rpds-py +PYPI_SOURCE_NAME:=rpds_py +PKG_HASH:=4ce5a708d65a8dbf3748d2474b580d606b1b9f91b5c6ab2a316e0b0cf7a4ba50 + +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com> + +PKG_BUILD_DEPENDS:=python-maturin/host + +include ../pypi.mk +include $(INCLUDE_DIR)/package.mk +include ../python3-package.mk + +define Package/python3-rpds-py + SECTION:=lang + CATEGORY:=Languages + SUBMENU:=Python + TITLE:=Bindings to Rust's persistent data structures + URL:=https://github.com/crate-py/rpds + DEPENDS:=+python3-light $(RUST_ARCH_DEPENDS) +endef + +define Package/python3-rpds-py/description +Python bindings to the Rust rpds crate for persistent data structures. +endef + +$(eval $(call Py3Package,python3-rpds-py)) +$(eval $(call BuildPackage,python3-rpds-py)) +$(eval $(call BuildPackage,python3-rpds-py-src)) diff --git a/lang/python/python-rpds-py/test.sh b/lang/python/python-rpds-py/test.sh new file mode 100644 index 000000000..d5dec8f5f --- /dev/null +++ b/lang/python/python-rpds-py/test.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +[ "$1" = python3-rpds-py ] || exit 0 + +python3 - << 'EOF' + +from rpds import HashTrieMap, HashTrieSet, List + +m = HashTrieMap({"foo": "bar", "baz": "quux"}) +assert m.insert("spam", 37) == HashTrieMap({"foo": "bar", "baz": "quux", "spam": 37}) +assert m.remove("foo") == HashTrieMap({"baz": "quux"}) + +s = HashTrieSet({"foo", "bar", "baz", "quux"}) +assert s.insert("spam") == HashTrieSet({"foo", "bar", "baz", "quux", "spam"}) +assert s.remove("foo") == HashTrieSet({"bar", "baz", "quux"}) + +L = List([1, 3, 5]) +assert L.push_front(-1) == List([-1, 1, 3, 5]) +assert L.rest == List([3, 5]) + +EOF |