Pygtrie

Latest version: v2.5.0

Safety actively analyzes 638330 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 3

2.3.1

- Fix to :class:`pygtrie.PrefixSet` initialisation incorrectly storing
elements even if their prefixes are also added to the set.

For example, ``PrefixSet(('foo', 'foobar'))`` incorrectly resulted
in a two-element set even though the interface dictates that only
``foo`` is kept (recall that if ``foo`` is member of the set,
``foobar`` is as well). [Thanks to Tal Maimon for reporting]

- Fix to :func:`pygtrie.Trie.copy` method not preserving
enable-sorting flag and, in case of :class:`pygtrie.StringTrie`,
``separator`` property.

- Add support for the ``copy`` module so :func:`copy.copy` can now be
used with trie objects.

- Leafs and nodes with just one child use more memory-optimised
representation which reduces overall memory usage of a trie
structure.

- Minor performance improvement for adding new elements to
a :class:`pygtrie.PrefixSet`.

- Improvements to string representation of objects which now includes
type and, for :class:`pygtrie.StringTrie` object, value of separator
property.

2.3

- New :func:`pygtrie.Trie.walk_towards` method allows walking a path
towards a node with given key accessing each step of the path.
Compared to `pygtrie.Trie.walk_prefixes` method, steps for nodes
without assigned values are returned.

- Fix to :func:`pygtrie.PrefixSet.copy` not preserving type of backing
trie.

- :class:`pygtrie.StringTrie` now checks and explicitly rejects empty
separators. Previously empty separator would be accepted but lead
to confusing errors later on. [Thanks to Waren Long]

- Various documentation improvements, Python 2/3 compatibility and
test coverage (python-coverage reports 100%).

2.2

- Fixes to ``setup.py`` breaking on Windows which prevents
installation among other things.

2.1

- The library is now Python 3 compatible.

- Value returned by :func:`pygtrie.Trie.shortest_prefix` and
:func:`pygtrie.Trie.longest_prefix` evaluates to false if no prefix
was found. This is in addition to it being a pair of ``None``\ s of
course.

2.0

- Sorting of child nodes is disabled by default for better
performance. :func:`pygtrie.Trie.enable_sorting` method can be used
to bring back old behaviour.

- Tries of arbitrary depth can be pickled without reaching Python’s
recursion limits. (N.B. The pickle format is incompatible with one
from 1.2 release). ``_Node``’s ``__getstate__`` and ``__setstate__``
method can be used to implement other serialisation methods such as
JSON.

1.2

- Tries can now be pickled.

- Iterating no longer uses recursion so tries of arbitrary depth can
be iterated over. The :func:`pygtrie.Trie.traverse` method,
however, still uses recursion thus cannot be used on big structures.

Page 2 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.