include $(TOPDIR)/rules.mk
PKG_NAME:=python-jsonpath-ng
-PKG_VERSION:=1.5.3
+PKG_VERSION:=1.8.0
PKG_RELEASE:=1
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PYPI_NAME:=jsonpath-ng
-PKG_HASH:=a273b182a82c1256daab86a313b937059261b5c5f8c4fa3fc38b882b344dd567
+PYPI_SOURCE_NAME:=jsonpath_ng
+PKG_HASH:=54252968134b5e549ea5b872f1df1168bd7defe1a52fed5a358c194e1943ddc3
PKG_LICENSE:=Apache-2.0
PKG_LICENSE_FILES:=LICENSE
--- /dev/null
+#!/bin/sh
+
+[ "$1" = python3-jsonpath-ng ] || exit 0
+
+python3 - << 'EOF'
+from jsonpath_ng import parse
+from jsonpath_ng.ext import parse as ext_parse
+
+data = {
+ "store": {
+ "books": [
+ {"title": "A", "price": 10},
+ {"title": "B", "price": 20},
+ {"title": "C", "price": 15},
+ ]
+ }
+}
+
+# Basic path
+expr = parse("store.books[*].title")
+matches = [m.value for m in expr.find(data)]
+assert matches == ["A", "B", "C"], f"Unexpected: {matches}"
+
+# Indexed access
+expr2 = parse("store.books[1].price")
+assert expr2.find(data)[0].value == 20
+
+# Filter expression (ext 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