mirror of
https://github.com/openwrt/packages.git
synced 2026-06-17 12:40:06 +04:00
python-jsonpath-ng: drop ply, six and decorator dependencies
jsonpath-ng 1.8.0 vendors ply as jsonpath_ng._ply and no longer imports six or decorator, so none are required at runtime. It builds through the setuptools.build_meta legacy backend but never declared setuptools as a build dependency; it was only present in the host build env transitively via those packages' builds. Add python-setuptools/host explicitly so the build no longer relies on that side effect. The jsonpath_ng CLI takes a required expression argument and has no version flag, so the generic version check cannot detect the package version from it. Add a test-version.sh override and assert __version__ in test.sh instead, mirroring python-jmespath. Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
This commit is contained in:
committed by
Alexandru Ardelean
parent
71d92bcc9e
commit
933152c011
@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=python-jsonpath-ng
|
||||
PKG_VERSION:=1.8.0
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
|
||||
|
||||
PYPI_NAME:=jsonpath-ng
|
||||
@@ -16,6 +16,8 @@ PKG_HASH:=54252968134b5e549ea5b872f1df1168bd7defe1a52fed5a358c194e1943ddc3
|
||||
PKG_LICENSE:=Apache-2.0
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
||||
PKG_BUILD_DEPENDS:=python-setuptools/host
|
||||
|
||||
include ../pypi.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include ../python3-package.mk
|
||||
@@ -28,10 +30,7 @@ define Package/python3-jsonpath-ng
|
||||
TITLE:=Standard compliant implementation of JSONPath
|
||||
DEPENDS:= \
|
||||
+python3-light \
|
||||
+python3-logging \
|
||||
+python3-ply \
|
||||
+python3-six \
|
||||
+python3-decorator
|
||||
+python3-logging
|
||||
endef
|
||||
|
||||
define Package/python3-jsonpath-ng/description
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
#!/bin/sh
|
||||
|
||||
# shellcheck shell=busybox
|
||||
|
||||
# The jsonpath_ng command-line tool takes a required expression argument and
|
||||
# has no version flag, so the generic version check cannot detect the version
|
||||
# from it. The version is covered by the import check in test.sh instead.
|
||||
case "$PKG_NAME" in
|
||||
python3-jsonpath-ng | python3-jsonpath-ng-src)
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "Untested package: $PKG_NAME" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
@@ -2,10 +2,18 @@
|
||||
|
||||
[ "$1" = python3-jsonpath-ng ] || exit 0
|
||||
|
||||
python3 - << 'EOF'
|
||||
python3 - "$2" << 'EOF'
|
||||
import sys
|
||||
import jsonpath_ng
|
||||
from jsonpath_ng import parse
|
||||
from jsonpath_ng.ext import parse as ext_parse
|
||||
|
||||
# The jsonpath_ng CLI has no version flag, so the generic version check is
|
||||
# overridden (test-version.sh); confirm the package version here instead.
|
||||
if jsonpath_ng.__version__ != sys.argv[1]:
|
||||
print("Wrong version: " + jsonpath_ng.__version__)
|
||||
sys.exit(1)
|
||||
|
||||
data = {
|
||||
"store": {
|
||||
"books": [
|
||||
@@ -25,8 +33,16 @@ assert matches == ["A", "B", "C"], f"Unexpected: {matches}"
|
||||
expr2 = parse("store.books[1].price")
|
||||
assert expr2.find(data)[0].value == 20
|
||||
|
||||
# Filter expression (ext parser)
|
||||
# Filter expression (ext parser, exercises the vendored ply lexer/parser)
|
||||
expr3 = ext_parse("store.books[?price > 12].title")
|
||||
titles = [m.value for m in expr3.find(data)]
|
||||
assert set(titles) == {"B", "C"}, f"Unexpected: {titles}"
|
||||
EOF
|
||||
[ $? -eq 0 ] || exit 1
|
||||
|
||||
# Verify the jsonpath_ng command-line tool (reads JSON from stdin)
|
||||
result=$(echo '{"a": {"b": 42}}' | jsonpath_ng 'a.b')
|
||||
[ "$result" = "42" ] || {
|
||||
echo "jsonpath_ng returned '$result', expected 42"
|
||||
exit 1
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user