Features and Improvements
- Add helper function :func:`set_default_for_missing_keys <dotwiz.set_default_for_missing_keys>`, which can be used to set a default value to return when an attribute (key) is missing.
Bugfixes
- Update the implementations for :class:`DotWiz` and :class:`DotWizPlus` so that
we handle an edge case where we are presented with keys names that shadow
builtin
dict
methods, such asitems
orvalues
.
Features and Improvements
- Update :class:`DotWizPlus` to treat key names such as
items
,get
, orto_dict
as a reserved keyword for all intents and purposes, and add a trailing_
when storing the key name; this fixes attribute access (ex. likeitems_
) and also resolves IDE warnings, which correctly state for ex. that builtin methoditems
doesn't have an attribute named x.
Breaking Changes
- Update the project classifier from Production to Beta, because the API is not yet stable, and future minor releases might introduce other breaking changes.
dotwiz
has officially dropped support for Python 3.6. This is due to a number of reasons, such as 3.6 reaching EOL some months back, and also libraries such aspyheck
which only support Python 3.7+.- Update the :meth:`__repr__` for :class:`DotWiz` to display a star character (✫) in place of the class name, just so it's a little easier to read.
Features and Improvements
- Add new :class:`DotWizPlus` class and implementation, which can be useful
for special-cased keys like
myTestKey
andhello, world!
. This implementation mutates such keys to valid snake case identifier names, so the above key names would becomemy_test_key
andhello_world
. - Add new dependency on pyheck.
- Refactor to pull out common or shared code into a :mod:`common` module.
- Update the docs and add a section on :class:`DotWizPlus`.
- Update theme for the docs, from
alabaster
tofuro
. - Update tests to maintain 100% code coverage.
Breaking Changes
- Removed :class:`DotWiz` methods :meth:`from_dict` and :meth:`from_kwargs`, as these are now superseded by the :class:`DotWiz` constructor method.
- Update the signature of :func:`make_dot_wiz` to
make_dot_wiz(*args, **kwargs)
Features and Improvements
- It's now easier to create a :class:`DotWiz` object from a
dict
or from keyword arguments. The :meth:`__init__` constructor method can now directly be used instead. - Add major performance improvements, so :class:`DotWiz` is now faster than ever.
- Add a :meth:`to_dict` method to enable a :class:`DotWiz` instance to be
recursively converted back to a
dict
. - Refactor code to remove unnecessary stuff.
- Add GitHub badges and CI integration for codecov.
- Updated docs.
- First release on PyPI.