2.37
- Do not use new syntax in any place. It confuses tooling
2.36
- Drop support for EOL versions of python
- Support typing.ReadOnly
- Add support for typing.TypeAliasType (PEP 695)
2.35
- Add tests to make sure mypy validation works
- Fix mypy failure when loading a Literal directly
- Remove cloudflare tracking from html documentation once again -_-' Thanks mkdocs for this.
- Improve documentation
- Improve typechecks
2.34
- Support Required for TypedDict
2.33
- Make example more current
- Fix bug with dumping dataclasses with slots
2.32
- Improve performance for loading unions of objects #12
- Improve performance for dumping dataclasses #13 #14 More details on my blog
2.31
- Improve performance for loading various types More details on my blog
- Fix bug when loading attrs objects with missing attributes, the correct exception is raised #9
- Raise TypeError instead of ValueError when there is a problem with the arguments of the objects This is in line with what python does #9
- Fix bug for dumping object with a ForwardRef to itself #8
2.30
- Fix bug where dictionary load would fail if the type for the value wasn't cached already
2.29
- Move project to Codeberg
2.28
- Add support for uuid.UUID
2.27
- Add support for re.Patterns
2.26
- Update type hints file
2.25
- Improve performance for loading objects (attrs/dataclasses/NamedTuple)
- Improve performance for loading dictionary keys that are basic types
- Improve performance for loading dataclasses
- Switch performance tests to test against pydantic2
2.24
- Drop support to Python 3.7 (which has reached EOL)
- Make is_optional slightly faster
- Keep track of the index when loading iterables the first time It makes the normal case slightly slower, and gives massive performance improvements when exceptions are raised.
2.23
- When loading a string into datetime.date/time/datetime, ISO 8601 is used
- When dumping, setting
isodates=True
dumps an ISO 8601 string instead of a list of ints. The previous behaviour is now deprecated. - Add support for datetime.timedelta. It is dumped as a float representing seconds
- Deprecate dump handlers without type hints
- Improve performance for dumping, by carrying type hints
- Remove
jsons
anddataclasses-json
from benchmarks. They were too slow to be a useful comparison.
2.22
- Improve loading time for literals
- Support attrs converter
2.21
- Drop support to Python 3.5 and 3.6
- Improve performance for dumping
- Generate pure python wheel
2.20
- Switch to setuptools Since python decided to drop the only installation method available within the stdlib
- Add pyproject.toml
2.19
- Fix minor bug about exception raising from string constructed types
- Simplify type checking functions, defining only the one for the current python version
- Fix type definitions of some private functions for compatibility with cython
- Improved loading speed for dictionaries
- Improved loading speed for iterators
- Improved documentation
- Improved performance testing code
2.18
- Fix bug with loading generators that raise exceptions
2.17
- Support for NotRequired
- Document performance testing
- Improve performances when loading iterables
- Greatly improve performances when loading
Union
of objects that areLiteral
annotated
2.16
- Add is_optional function
- Support new style union (A | B)
- Experimental support for PEP563
__future__.annotations
. READ ABOUT DEFERRED EVALUATION IN THE DOCUMENTATION.
2.15
- Union fails immediately when a non typedload exception is found
- New
make html
target to generate the website - Updated CONTRIBUTING file, with details about new licenses from the FSF
- Handle typing.NewType
2.14
- Fix bug where AttributeError from name mangling caused an AssertionError
2.13
- Separate and simpler handlers for NamedTuple, dataclass, attrs, TypedDict
- Allow duck typing when loading attr (allow any dict-like class to be used)
- Minor performance improvements
2.12
- Add
uniondebugconflict
flag to detect unions with conflicts.
2.11
- Make newer mypy happy
2.10
- Fix setup.py referring to a non-existing file when installing with pip
2.9
- Use README on pypi.org
- Tiny speed improvement
- Expanded and improved documentation
2.8
- Better report errors for
Enum
- Improve support for inheritance with mixed totality of
TypedDict
(requires Python 3.9)
2.7
- failonextra triggers failure when dropping fields in mangling
- Support for
total=False
inTypedDict
- Support
init=False
indataclass
field
2.6
- Handle
Any
types as passthrough - Easy way to handle types loaded from and dumped to
str
- Improve how exceptions are displayed
2.5
- Fix dump for attr classes with factory
- Let name mangling use arbitrary metadata fields rather than just
name
2.4
- Support for
ipaddress.IPv4Address
,ipaddress.IPv6Address
,ipaddress.IPv4Network
,ipaddress.IPv6Network
,ipaddress.IPv4Interface
,ipaddress.IPv6Interface
.
2.3
- Better type sorting in
Union
This helps when usingUnion[dataclass, str]
2.2
- Add Python3.9 to the supported versions
- Prevent loading dict as
List
,Tuple
,Set
This helps when usingUnion[Dict, List]
to take the correct type.
2.1
- Written new usage example
- typechecks internals now pass with more mypy configurations
- Fix
import *
2.0
- Breaking API change: handlers can only be modified before the first load
- Breaking API change: plugins removed (attr support is by default)
- Exceptions contain more information
- Greatly improve performances with iterables types
- Support for
pathlib.Path
1.20
- Drop support for Python 3.5.2 (3.5 series is still supported)
- Support
TypedDict
- More precise type annotation of
TypedloadException
andAnnotation
fields - Deprecate the plugin to handle
attr.s
and make it always supported. This means that there will be no need for special code. - Fix datetime loader raising exceptions with the wrong type
1.19
- Add support for
Literal
.
1.18
- Improved documentation
- Debian builds are now done source only
1.17
- Prefer the same type in union loading
1.16
- New
uniontypes()
function. - Make list and dictionary loaders raise the correct exceptions
- Able to load from
argparse.Namespace
1.15
- Add support for
FrozenSet[T]
. - Define
__all__
for typechecks. - Add name mangling support in dataclass, to match attrs.
- Add support for
datetime.date
,datetime.time
,datetime.datetime
1.14
- Add support for
Tuple[t, ...]
1.13
- Fix bug in loading attr classes and passing random crap. Now the proper exception is raised.
- New module to expose the internal type checks functions
1.12
- Support fields with factory for dataclass
1.11
- Fixed problem when printing sub-exceptions of failed unions
- Improve documentation
1.10
- Make mypy happy again
1.9
- Support
ForwardRef
- Add a new Exception type with more details on the error (no breaking API changes)
1.8
- Make mypy happy again
1.7
- Make mypy happy again
1.6
- Run tests on older python as well
- Support for dataclass (Since python 3.7)
- Added methods to find the appropriate handlers
1.5
- Improve handling of unions
- Better continuous integration
- Support python 3.7
1.4
- Add support for name mangling in attr plugin
- Parameters can be passed as kwargs
- Improved exception message for
NamedTuple
loading
1.3
- Add support for Python < 3.5.3
1.2
- Ship the plugins in pypy
1.1
- Able to load and dump old style
NamedTuple
- Support for Python 3.5
- Target to run mypy in makefile
- Refactor to support plugins. The API is still compatible.
- Plugin for the attr module, seems useful in Python 3.5
1.0
- Has a setting to hide default fields or not, in dumps
- Better error reporting
- Add file for PEP 561
0.9
- Initial release