Skip to content

Commit

Permalink
Milestone to v1 (#164)
Browse files Browse the repository at this point in the history
* apply `@dataclass` decorator

* add `pprint` for `__str__()`

* Lotta Changes to `Load`, it's Supa Fast !!!

* Fixing a bug

* move to `v1`

* ive got deser for defaultdict, enum, uuid, decimal, and path working!

* minor changes

* add support for time, date, datetime, and timedelta

* add support for namedtuple, NamedTuple

* add support for TypedDict

* add support for ReadOnly, Literal, Annotated, LiteralString

* fix for nested dataclasses

* minor refactor and changes

* feat: deserialize `Union` types

* feat: add `v1` and `v1_unsafe_parse_dataclass_in_union`

* Update signature of `LoadMeta`, `DumpMeta`, and `EnvMeta` to accept keyword arguments `**kwargs`
* Add loader_selection.py to allow selection of loader (`v1` or not)

* feat: add `v1` and `v1_unsafe_parse_dataclass_in_union`

* Update signature of `LoadMeta`, `DumpMeta`, and `EnvMeta` to accept keyword arguments `**kwargs`
* Add loader_selection.py to allow selection of loader (`v1` or not)

* fix tests and disable auto `@dataclass` application

* i think that fix it

* i think that fix it

* Moar Updates

* Add support for `Sequence`, `Collection`, and `MutableSequence`
* Add support for container class with `Meta` config (#163)
* Fix for `NoneType`

* minor changes and tests need be added

* optimize missing fields

* add support for key casing

* add support for aliases

* partially add `raise_on_unknown_key` support

* fully add `raise_on_unknown_key` support

* add support for `CatchAll`

* fully support `CatchAll`

* add more test cases for coverage

* add benchmarks for catch all

* update to use `pytest-benchmark`

* publish plot/graph for `CatchAll` benchmark tests
* also refactor into `requirements-bench.txt`

* checkin changes so far

* fix logic so its working

* completely fix `AliasPath`

* fix tests on CI

* fix tests on CI

* fix tests on CI

* try fix tests on CI

* try fix tests on CI

* thats not the issue, ima have to try debug it locally

* Im stupid, we need to use `is_subclass_safe` after all :o

* I tire of this

* Update badges and docs

* Update docs to mention v1` opt-in

* update description

* one last change, think its good to go!

* add section on perf in v1

* clean up comments

* Update HISTORY.rst

* Update HISTORY.rst and add Dark Mode for Docs!
  • Loading branch information
rnag authored Dec 17, 2024
1 parent d9ee6a5 commit ad72054
Show file tree
Hide file tree
Showing 54 changed files with 7,337 additions and 560 deletions.
24 changes: 24 additions & 0 deletions HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,30 @@
History
=======

0.33.0 (2024-12-17)
-------------------

* Introduce ``v1`` opt-in, providing a more user-friendly experience with significant performance improvements for de-serialization 🎉
* Add models for ``v1``, imported from ``dataclass_wizard.v1``:
* :func:`Alias`
* :func:`AliasPath`
* Add enums for ``v1``, imported from ``dataclass_wizard.v1.enums``:
* :class:`KeyCase`
* :class:`KeyAction`
* Add ``Meta`` settings for ``v1``:
* ``v1`` — Enable opt-in for the "experimental" major release `v1` feature.
* ``v1_debug`` — Replaces the deprecated ``debug_enabled`` Meta setting, which will be removed in ``v1``.
* ``v1_key_case`` — Specifies the letter case used for matching JSON keys when mapping them to dataclass fields.
* ``v1_field_to_alias`` — Custom mapping of dataclass fields to their JSON aliases (keys) for de/serialization.
* ``v1_on_unknown_key`` — Defines the action to take when an unknown JSON key is encountered during :meth:`from_dict` or :meth:`from_json` calls.
* ``v1_unsafe_parse_dataclass_in_union`` — Unsafe option: Enables parsing of dataclasses in unions without requiring the presence of a :attr:`tag_key`.
* Require the ``typing-extensions`` library up to Python 3.11 (its main use in Python 3.11 is ``ReadOnly`` for ``TypedDict``).
* Phase out the ``UnknownJSONKey`` exception class in favor of ``UnknownKeysError``, since ``v1`` now provides *all* missing keys in JSON (not just the first one!).
* Update benchmarks:
* Add benchmark for ``CatchAll``.
* Move benchmark dependencies to ``requirements-bench.txt``.
* Add new test cases.

0.32.1 (2024-12-04)
-------------------

Expand Down
Loading

0 comments on commit ad72054

Please sign in to comment.