- Packaging fixes. (#17)
- structure/unstructure now supports using functions as well as classes for deciding the appropriate function.
- added Converter.register_structure_hook_func, to register a function instead of a class for determining handler func.
- added Converter.register_unstructure_hook_func, to register a function instead of a class for determining handler func.
- vendored typing is no longer needed, nor provided.
- Attributes with default values can now be structured if they are missing in the input. (#15)
- Optional attributes can no longer be structured if they are missing in the input.
In other words, this no longer works:
@attr.s
class A:
a: Optional[int] = attr.ib()
>>> cattr.structure({}, A)
cattr.typed
removed since the functionality is now present inattrs
itself. Replace instances ofcattr.typed(type)
withattr.ib(type=type)
.
- Converter.loads is now Converter.structure, and Converter.dumps is now Converter.unstructure.
- Python 2.7 is supported.
- Moved
cattr.typing
tocattr.vendor.typing
to support different vendored versions of typing.py for Python 2 and Python 3. - Type metadata can be added to
attrs
classes usingcattr.typed
.
- Python 3.4 is no longer supported.
- Introduced
cattr.typing
for use with Python versions 3.5.2 and 3.6.0. - Minor changes to work with newer versions of
typing
.- Bare Optionals are not supported any more (use
Optional[Any]
).
- Bare Optionals are not supported any more (use
- Attempting to load unrecognized classes will result in a ValueError, and a helpful message to register a loads hook.
- Loading
attrs
classes is now documented. - The global converter is now documented.
cattr.loads_attrs_fromtuple
andcattr.loads_attrs_fromdict
are now exposed.
- Tests and documentation.
- First release on PyPI.