Skip to content

Releases: wwkimball/yamlpath

2.3.2

03 Mar 20:05
7ee287f
Compare
Choose a tag to compare

2.3.2:
Bug Fixes:

  • Subtraction collector math crashed when the RHS result was non-iterable.

2.3.1

05 Feb 02:45
7757f83
Compare
Choose a tag to compare

2.3.1:
Bug Fixes:

  • Under certain conditions, some YAML changes were affecting unexpected nodes
    which had identical original values.
  • YAMLValueFormats.DEFAULT was identifying all CLI-supplied values as String
    rather than their most-likely data-type.

API COMPATIBILITY WARNING:
Previous versions of the library returned only selected data nodes. Now,
instead of data nodes, NodeCoords objects are returned. This is necessary in
order to resolve Issue #44, which was caused by Python over-aggressively
optimizing memory, making non-String data nodes references to any other node
with the same value. This made changing exactly one of those data nodes
impossible because all nodes with the same original value would change with it.
Now, the NodeCoords class carries DOM tracking data along with each data
node making precise node changes possible. However, your queries will now
return this more complex additional data. In order to evaluate just the data,
please refer to this before-and-after example:

BEFORE:
for node in processor.get_values(yaml_path):
do_something_with(node)

AFTER:
for node_coordinate in processor.get_values(yaml_path):
do_something_with(node_coordinate.node)

If you need to recursively remove DOM tracking data from the results, a new
utility function is available: func.unwrap_node_coords(data). Note however
that you need that tracking data in order to change data within the DOM.

This does not affect the output of the sample command-line utilities.

2.3.0

22 Sep 01:52
a00e11d
Compare
Choose a tag to compare

2.3.0:
Bug Fixes:

  • The get_yaml_data helper function now contains ruamel.yaml errors/warnings
    without disrupting calling context handlers.

Enhancements:

  • yaml-paths version 0.2.0 now has more detailed output control, trading
    --pathonly for --values, --nofile, --noexpression, and --noyamlpath.

2.2.0

09 Jun 23:29
685a96a
Compare
Choose a tag to compare

2.2.0:
Bug Fixes:

  • YAML construction errors are now caught and more cleanly reported by all
    command-line tools.

Enhancements:

  • yaml-paths version 0.1.0 now has more specific flags, enabling:
    • more precise handling of anchors in YAML data, and
    • expanding parent node results to instead return all their child leaf nodes.

2.1.1

07 Jun 02:16
b8134a7
Compare
Choose a tag to compare

Bug Fixes:

  • yaml-paths was recursing into nodes for which the name had already matched,
    causing unnecessary search results. Version 0.0.2 fixes this; when a node is
    matched by name, any children are ignored because they will have already been
    yielded as the parent node's value.

2.1.0

06 Jun 05:13
6983ba4
Compare
Choose a tag to compare

Enhancements:

  • Added a new yaml-paths command-line tool. In short, it enables searching
    YAML/Compatible files, returning YAML Paths for any matches. As an Alpha-
    grade tool, it is being released at version 0.0.1. Feedback welcome!
  • All command-line tools which accept --pathsep now accept symbolic seperators
    rather than only names; so, --pathsep=/ is idental to --pathsep=fslash, etc.
    Minor changes were also made to all command-line tools to consolidate some
    repeat code. Each has a version bump to reflect this minor refactoring
    effort.

2.0.2

30 May 21:11
4ec376f
Compare
Choose a tag to compare

Bug Fixes:

  • eyaml-rotate-keys was broken by the refactoring for 2.0.0. eyaml-rotate-keys
    v1.0.2 restores functionality.

Enhancements:

  • Command-line tools are now managed via pip as entry_points/console_scripts
    rather than external binaries. This enables superior cross-platform
    compatibility as well as unit testing. As such, all of the CLI tools have
    been updated pursuant to (generally trivial, excepting eyaml-rotate-keys)
    issues discovered during their newfound CI tests.

2.0.1

29 May 15:38
a97b836
Compare
Choose a tag to compare

Bug Fixes:

  • yaml-set v1.0.4 lost track of EYAML block formatting between read and write,
    causing replacement values to use unexpected formatting. This is fixed in
    yaml-set v.1.0.5.

2.0.0

27 May 19:29
ba6ebd5
Compare
Choose a tag to compare

Enhancements:

  • Added Collectors to YAML Path expressions. These take the form of "(YAML
    Path)" -- parenthesis () are used to demarcate each Collector -- resulting in
    a list of zero or more matches for the sub-query. Operators between
    Collectors include + and -, like "(...)+(...)", "(...)-(...)", and nested
    Collectors are possible, like "(...)-((...)+(...))". Collectors may appear
    anywhere within the outer YAML Path, effectively setting the point within the
    data at which each Collector is rooted.
  • A major code refactoring was undertaken to break YAMLPath out as its own class
    and improve code quality (per mypy and pylint).

Bug Fixes:

  • yaml-set v1.0.4 now implies --mustexist when --saveto is set. Otherwise,
    --saveto was trying to save nothing when --change (without --mustexist)
    pointed nowhere.

1.2.5

23 May 19:03
99e0eee
Compare
Choose a tag to compare

Bug Fixes:

  • yaml-set v1.0.3 no longer requires --privatekey unless decryption is requested
    via enabling --check. As a side-effect, the script will also no longer ignore
    requests to set the same value as was already set.