Itertree

Latest version: v1.0.5

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

Scan your dependencies

Page 1 of 2

1.0.5

Misstakes in commit for release 1.0.3 and one bugfix

1.0.1

New release created based on 1.0.0 (PyPi blocked 1.0.0)

here is the text of 1.0.0 again:

First full release.

Large redesign finished. Testing extended (full test) .

Changelog:

After the whole functionality was implemented in the previous versions we made a review of the interfaces
of the iTree class and we came to the decision that we should align it more with the standard interfaces in python
(especially related to list and dict standard methods).
Finally we updated a lot of methods to a more clearer naming and a more standardized behavior.
We apologize that the changes leads into adaptions of already existing implementations of the users. But we hope that
you understand after some tries that the new interface is much clearer and easier to use.

The functionalities related to the nested (in-depth) structure are now moved in an internal helper-class which is
reachable via itree.deep.

Furthermore we saw in practice that item access is most often made via absolute index or tag,index pair (key).
Therefore we changed the paradigm of targeting those kind of targets easier and with higher priority. In case of
conflicts with the index or tag-index pair the user must give the lower prioritized family-tags in a specific way.
The number of possible targets is increased especially a level-filter is now available too.
As a side effect the limitation related to integer keys we had is no more there. Integers can now be used as tags too.
In general with this release any hashable object can be used as tag.

In case the user instance an iTree-object without a tag or without a value. We have new default values
( NoTag and NoValue) which are used automatically in this case. This is made implicit and allows the
build of very simple trees without any overhead anymore. The append of values to a tree with implicit
instancing the related iTree-object is made based on the NoTag definition available.

The equal check == operator is now checking for same content and no more on the identical instance
(as it is in lists too).
For identical instance checks the user must use the is build-in statement. But please check
on the side effects of this change (read here the changed behavior of the index() command which is now the
same like in lists (first match is delivered).

We deleted the find-functions from the object because we first thought they were too confusing and second the filter
possibilities in all the methods are largely extended. We do not see any case (from old find functions)
that can not be covered by the
method-parameter-set we have. The filter functions are also simplified in a way that any filter-method can be
used now, we do not need any more a special filter-object to be used.

Finally we uncoupled a lot of functionalities, especially the usage of the data property is changed here.
iTree can now be used without any limitations related to the stored data. We do not expect here any more a
dict-like-object. The provided data models can still be used if required but there is no more coupling anymore. To
align with the standard dict-class we renamed the related attribute from data to value.

As a side effect the performance of the ìTree could be improved again. We eliminated the different classes of
ìTree related to read_only behavior. We now use a set of methods and flags. The advantage is that the
objects can now change their behavior without changing the instance of the original object (in-place-operation).

iTree objects can now be pickled (if the trees are deeper than 200 levels RecursionError will be raised
(std. recursion-limit)). The serializers and rendering is updated too.

The MIT licence was extended by a "human protect patch".

To symbolize the stability and also the final fix of the interface we decided to create the first full released version.
The testsuite is largely expanded for this step.

1.0.0

First full release.

Large redesign finished. Testing extended (full test) .

Changelog:

After the whole functionality was implemented in the previous versions we made a review of the interfaces
of the `iTree` class and we came to the decision that we should align it more with the standard interfaces in python
(especially related to list and dict standard methods).
Finally we updated a lot of methods to a more clearer naming and a more standardized behavior.
We apologize that the changes leads into adaptions of already existing implementations of the users. But we hope that
you understand after some tries that the new interface is much clearer and easier to use.

The functionalities related to the nested (in-depth) structure are now moved in an internal helper-class which is
reachable via `itree.deep`.

Furthermore we saw in practice that item access is most often made via absolute index or tag,index pair (key).
Therefore we changed the paradigm of targeting those kind of targets easier and with higher priority. In case of
conflicts with the index or tag-index pair the user must give the lower prioritized family-tags in a specific way.
The number of possible targets is increased especially a level-filter is now available too.
As a side effect the limitation related to integer keys we had is no more there. Integers can now be used as tags too.
In general with this release any hashable object can be used as tag.

In case the user instance an `iTree`-object without a tag or without a value. We have new default values
( `NoTag` and `NoValue`) which are used automatically in this case. This is made implicit and allows the
build of very simple trees without any overhead anymore. The append of values to a tree with implicit
instancing the related `iTree`-object is made based on the `NoTag` definition available.

The equal check `==` operator is now checking for same content and no more on the identical instance
(as it is in `list`s too).
For identical instance checks the user must use the `is` build-in statement. But please check
on the side effects of this change (read here the changed behavior of the `index()` command which is now the
same like in lists (first match is delivered).

We deleted the find-functions from the object because we first thought they were too confusing and second the filter
possibilities in all the methods are largely extended. We do not see any case (from old find functions)
that can not be covered by the
method-parameter-set we have. The filter functions are also simplified in a way that any filter-method can be
used now, we do not need any more a special filter-object to be used.

Finally we uncoupled a lot of functionalities, especially the usage of the data property is changed here.
`iTree` can now be used without any limitations related to the stored data. We do not expect here any more a
`dict`-like-object. The provided data models can still be used if required but there is no more coupling anymore. To
align with the standard `dict`-class we renamed the related attribute from `data` to `value`.

As a side effect the performance of the `ìTree` could be improved again. We eliminated the different classes of
`ìTree` related to read_only behavior. We now use a set of methods and flags. The advantage is that the
objects can now change their behavior without changing the instance of the original object (in-place-operation).

`iTree` objects can now be pickled (if the trees are deeper than 200 levels RecursionError will be raised
(std. recursion-limit)). The serializers and rendering is updated too.

The MIT licence was extended by a "human protect patch".

To symbolize the stability and also the final fix of the interface we decided to create the first full released version.
The testsuite is largely expanded for this step.

0.8.2

Updated Documentation

Extended functionalities related to iTreeLink (external/internal linking and localization)

Improved iTData and iTDataModel functions related to implemented unit tests.

New editor example

0.7.3

Smaller bugfixes in repr() and render()

examples extended

0.7.2

Smaller improvements (docs and iTInterval class)

Page 1 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.