1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360
|
2.40
====
* Fix corner case of is_optional
* Drop LGPL3 license exception for Appgate Cybersecurity, Inc.
The changes in this version do not carry the exception, so as a
result the entire project is GPL3 licensed.
LGPL3 allows relicensing under GPL3, but not viceversa.
* Improve documentation and examples
* Added moretypes module for types I might find convenient to have
* Added HexRGB to the moretypes module
2.39
====
* Re-release
2.38
====
* Fix unintended behaviour where a `str` could be loaded as `list[str]`
This is caused by a [quirk of python's types](https://github.com/python/typing/issues/256).
To restore the previous behaviour set `iterstr=True`
* Drop support to python 3.9
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](https://codeberg.org/ltworf/typedload/pulls/12)
* Improve performance for dumping dataclasses [#13](https://codeberg.org/ltworf/typedload/pulls/13) [#14](https://codeberg.org/ltworf/typedload/pulls/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](https://codeberg.org/ltworf/typedload/pulls/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](https://codeberg.org/ltworf/typedload/pulls/9)
* Fix bug for dumping object with a ForwardRef to itself [#8](https://codeberg.org/ltworf/typedload/pulls/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` and `dataclasses-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 are `Literal` 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` in `TypedDict`
* Support `init=False` in `dataclass` 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 using `Union[dataclass, str]`
2.2
===
* Add Python3.9 to the supported versions
* Prevent loading dict as `List`, `Tuple`, `Set`
This helps when using `Union[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` and `Annotation` 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
|