* Added `Namespace` subclass of `tri.struct.Struct` to explicit capture the path splitting semantics. (And added method for flattening a `Namespace` back to path notation.)
0.27.0
~~~~~~~~~~~~~~~~~~~
* Fix bug in `evaluate` signature detection with optional arguments. (`lambda a, b=17: a+b` was correctly matched but `lambda b, a=17: a+b` was not)
0.26.0
~~~~~~~~~~~~~~~~~~~
* Added `EMPTY` marker to `setdefaults_path` to avoid mixup when empty dict is provided in function defaults.
0.25.0
~~~~~~~~~~~~~~~~~~~
* Added dispatch decorator
0.24.0
~~~~~~~~~~~~~~~~~~~
* Fix bug in `setdefault_path` tripping up on key ordering.
* Dropped `namespace_factory` keyword argument to `setdefaults_path` not likely ever beeing used.
0.23.0
~~~~~~~~~~~~~~~~~~~
* `setdefaults_path` now accepts multiple default dicts. (To simplify the pattern of shortcuts in tri.form, tri.query and tri.table where we now will end up with: `new_kwargs = setdefaults_path(Struct(), kwargs, dict(....))`