Skip to content

Releases: yukinarit/pyserde

v0.10.3

25 Mar 14:16
a442e7e
Compare
Choose a tag to compare

What's Changed

Bug fixes

Documentation

New Contributors

Full Changelog: v0.10.2...v0.10.3

v0.10.2

03 Mar 12:50
4d66e94
Compare
Choose a tag to compare

What's Changed

Bug fixes

  • Add type annotations to from_dict, from_tuple and from_msgpack by @yukinarit in #325

Refactoring

Full Changelog: v0.10.1...v0.10.2

v0.10.1

02 Mar 11:47
0a597e5
Compare
Choose a tag to compare

What's Changed

Bug fixes

Full Changelog: v0.10.0...v0.10.1

v0.10.0

24 Feb 09:38
322805f
Compare
Choose a tag to compare

What's Changed

New features

pyserde can (de)serialize dataclasses without @serde since v0.10.0. This feature is convenient when you want to use classes declared in external libraries or a type checker doesn't work with @serde decorator. See this example. Thanks @Kobzol!

@dataclass
class Foo:
    i: int
    s: str
    f: float
    b: bool


f = Foo(i=10, s='foo', f=100.0, b=True)
print(f"Into Json: {to_json(f)}")

s = '{"i": 10, "s": "foo", "f": 100.0, "b": true}'
print(f"From Json: {from_json(Foo, s)}")
  • Generate serialization/deserialization code for dataclasses not marked with @serde by @Kobzol in #312
  • Use default options for unmarked dataclass code generation by @Kobzol in #314
  • Allow serializing and deserializing root dataclasses by @Kobzol in #315

Bug fixes

  • Fix deserialization with NewType and Untagged Union by @yukinarit in #313

CI

  • Set commit author and title for commits in gh-pages by @yukinarit in #316

Documentation

New Contributors

Full Changelog: v0.9.8...v0.10.0

v0.9.8

20 Feb 11:24
6ad29b4
Compare
Choose a tag to compare

What's Changed

New features

CI

Other changes

Full Changelog: v0.9.7...v0.9.8

v0.9.7

15 Dec 08:39
Compare
Choose a tag to compare

A bug for optional unions was fixed, Thanks @soaxelbrooke!

@serde
@dataclass(frozen=True)
class Bar:
    request: Optional[Union[str, int]]
  • docs: add @soaxelbrooke as a contributor (063e705)
  • Add support for optional unions (075949b)
  • Add typing-utils for compatibility with python ver < 3.8 (620b9f6)
  • Rely on compay.get_args instead of adding dependency (d93f894)

v0.9.6

05 Dec 14:15
648471c
Compare
Choose a tag to compare
  • Recursive dataclasses are supported in #290
    @dataclass
    class Recur:
        f: Optional['Recur']
    
    serde(Recur)
  • typing.FrozenSet and typing.DefaultDict are supported in #285,#286
    @serde
    @dataclass
    class Foo:
        a: FrozenSet[int]
        b: DefaultDict[str, List[int]]
  • Pickle serializer and deserializer support is added in #284. Thanks @DoeringChristian!

Full Changelog: v0.9.5...v0.9.6

v0.9.5

26 Nov 13:26
d52d7af
Compare
Choose a tag to compare

alias field attribute was implemented.

@serde
@dataclass
class Foo:
    a: int = field(alias=["b", "c", "d"])
  • feat: Implement alias (36cbc6e)
  • test: Add InitVar and ClassVar examples (f5171fa)
  • build: Add python 3.11 to pyproject.toml (4ea7504)

v0.9.4

20 Nov 11:53
3e6e1ba
Compare
Choose a tag to compare

Variable lengh tuple is supported.

@serde
@dataclass
class Foo:
    v: Tuple[int, ...]
  • feat: Support variable length tuples (74dd3d4)
  • feat: Use tomllib for Python >= 3.11 (b8943b5)

v0.9.3

10 Nov 14:46
889e6ab
Compare
Choose a tag to compare

Thanks to PEP681 @dataclass_transform, @dataclass decorator is no longer mandatory if you use a PEP681 supported type checker such as pyright. If you are a mypy user, you still need @dataclass decorator.

@serde
#@dataclass <= No longer needed.
class Foo:
    i: int
  • ci: Build with python 3.11 on CI (a8def55)
  • feat: pep681 (4ec2bf8)
  • fix: Mypy type errors (3ac1510)
  • fix: Support nested generic dataclasses (3562139)