Changelog#

The source code is hosted and maintained on github.

Version 0.2.4 (2023-11-25)#

  • fixed a bug where dict.setdefault would never set the default value

Version 0.2.3 (2023-09-14)#

  • maintain backward compatability with Python 3.6 and 3.7

Version 0.2.2 (2023-09-14)#

  • add missing methods to undefined class

  • correct bug #7

Version 0.2.1 (2023-09-09)#

  • optimize recursive casting

  • allow for subclassing of easytree.dict and easytree.list

Version 0.2.0 (2023-06-14)#

  • refactored library to create dict and list objects

Version 0.1.13 (2023-04-25)#

  • added type function to help distinguish between node types (in lieu of isinstance)

Version 0.1.12 (2022-02-14)#

  • added missing methods to perfectly ducktype dict (items, keys, values, pop and update)

  • added deepget method to query deeply in a tree

Version 0.1.11 (2021-09-30)#

  • added support for pickling and unpickling

Version 0.1.10 (2021-07-03)#

  • removed AmbiguityError when casting undefined node to dict node with integers

Version 0.1.9 (2021-06-21)#

  • fixed bug in complex inheritence

Version 0.1.8 (2021-06-13)#

  • formatted code using Black

  • added convenience i/o functions (e.g. load and dump)

  • added support for abc.KeysView and abc.ValuesView values

  • merged root and node classes

  • refactored __value__ attribute to _value

  • added support for freezing and sealing trees

Version 0.1.7 (2021-05-01)#

  • passing an easytree.Tree object as an instanciation argument will copy the tree

  • added support for list slicing in list nodes

  • improved error messages

  • removed unncessary code in append method

  • factored out constants

  • repr now delegates to underlying value

  • addressed ipython canary

  • added get method for dict nodes

  • implemented __delitem__, __delattr__ and __bool__

Version 0.1.6 (2020-08-16)#

  • fixed a bug where overriding an attribute would fail if it was already in the node

Version 0.1.5 (2020-08-08)#

  • refactored the Tree object into a Tree and Node object

  • removed the __new__ from the Tree root object to allow for inheritence

Version 0.1.4 (2020-08-05)#

  • added context manager to return a reference to itself

  • addressed infinite recursion in __getattr__

  • append now returns a reference to last added node, if it is a node

Version 0.1.3 (2020-08-04)#

  • added the serialize method to the tree

Version 0.1.2 (2020-08-03)#

  • overrode the __new__ method to filter out primitive and object types

  • added ability to check for contains

Version 0.1.1 (2020-08-02)#

  • added ability to append dictionary using keyword arguments

  • added ability to iterate over a tree

  • added ability to compute the length of a tree (for list nodes and dict nodes)