Files
Alexandru Ardelean 653d85d226 python3-jsonpath-ng: update to 1.8.0
Update package to 1.8.0.

Changes since 1.5.3:

1.6.0: Removed Python 2 and six dependency; field names with literals
now enclosed in quotes; removed decorator and testscenarios dependencies;
made path instances hashable.

1.6.1: Fixed lambda-based updates; fixed assignment when root element is
a list; added keys keyword; added slice step support; don't fail on regex
match against non-strings; Python 3.12 support.

1.7.0: Added wherenot operator; added path extension exposing datum's
path from the expression itself; allowed numeric values as keys; added
negative and wildcard indices in Split; fixed boolean value update bug;
removed Python 3.7 support; parse table constructed only once
(performance improvement).

1.8.0: Added support for comma-separated indices (e.g., field[0,1,2]);
added EMOJI and CJK Unicode support; added type hints; fixed wildcard
path resolution in field filters; fixed False/None value handling in
bool filters; vendored ply (no longer maintained upstream); dropped
Python 3.8 and 3.9 support; Python 3.13/3.14 tested.

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
2026-04-10 14:00:41 +03:00

33 lines
778 B
Bash
Executable File

#!/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