Skip to content

v1.9.0

Choose a tag to compare

@kurtmckee kurtmckee released this 05 Oct 18:13
· 76 commits to main since this release
v1.9.0
a302ffd

Added

  • Support Python 3.15.
  • Add a py.typed marker.
  • Support negation of relative existence queries in extended filter expressions (e.g. $[?(!@.field)]).

Fixed

  • Ignore non-mapping values when updating named fields instead of raising TypeError (#104).

  • Return no matches for negative array indices beyond the start of an array,
    matching the behavior of out-of-range positive indices (#203).

  • Fix extended filter equality against an integer literal truncating float values,
    so [?(@.v = 0)] no longer matches an element with v = 0.6 (#227).

  • update() with an in-place callback returning None no longer overwrites the field with None (#163)

  • Fix an AttributeError that occurs when an Index instance is hashed. (#224)

  • Index.find no longer raises KeyError when applied to a dict
    (e.g. $.*[0], where * matched a dict value).
    It now matches nothing, as the docstring promises. (#93)

  • Fix extended parser handling of field names that start with true or false.

  • Stop serializing Child paths with surrounding parentheses. (#215)

  • Avoid mutating dictionaries while evaluating extended filter expressions.

  • str() of an Index with comma-separated indices (e.g. [0,1]) no longer raises TypeError.

  • Fix broken Slice serialization behavior.

    Previously, a slice like [0:] would serialize to [],
    and a slice like [::2] would serialize to [:2].

Removed

  • Drop support for Python 3.10.