From: Alexandru Ardelean Date: Sun, 14 Jun 2026 15:31:10 +0000 (+0000) Subject: python-jsonpath-ng: drop ply, six and decorator dependencies X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=933152c011d9aa3a6f0a9eb60aaee1ba59583d09;p=openwrt-packages.git 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 --- diff --git a/lang/python/python-jsonpath-ng/Makefile b/lang/python/python-jsonpath-ng/Makefile index 062204b40..db018b43f 100644 --- a/lang/python/python-jsonpath-ng/Makefile +++ b/lang/python/python-jsonpath-ng/Makefile @@ -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   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 diff --git a/lang/python/python-jsonpath-ng/test-version.sh b/lang/python/python-jsonpath-ng/test-version.sh new file mode 100644 index 000000000..979efa97d --- /dev/null +++ b/lang/python/python-jsonpath-ng/test-version.sh @@ -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 diff --git a/lang/python/python-jsonpath-ng/test.sh b/lang/python/python-jsonpath-ng/test.sh index eac76245a..13a505d3e 100755 --- a/lang/python/python-jsonpath-ng/test.sh +++ b/lang/python/python-jsonpath-ng/test.sh @@ -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 +}