reduce the amount of superfluous code within the package;
enable the MagicJsonDecoder to handle classes with __slots__ enabled (slots described); and
include typing in the package were possible
This work is part of a larger effort of mine to update the codebase to include typing, fix some lingering bugs and reduce duplicate code styles (ie: use of dataclasses vs dictionaries for version definitions in sync.py). These rather large changes are been tracked here, although it doesn't seem very fair to dump that all in a single pull request!
Also noting this has been formatted with black (line length 119). Happy to adjust.
Included is a handful of small refactors to help:
MagicJsonDecoder
to handle classes with__slots__
enabled (slots described); andThis work is part of a larger effort of mine to update the codebase to include typing, fix some lingering bugs and reduce duplicate code styles (ie: use of dataclasses vs dictionaries for version definitions in
sync.py
). These rather large changes are been tracked here, although it doesn't seem very fair to dump that all in a single pull request!Also noting this has been formatted with black (line length 119). Happy to adjust.