Skip to content

Commit

Permalink
Update docs/user_guide/data_types_and_io/dataclass.md
Browse files Browse the repository at this point in the history
Co-authored-by: David Espejo <[email protected]>
Signed-off-by: Han-Ru Chen (Future-Outlier) <[email protected]>
  • Loading branch information
Future-Outlier and davidmirror-ops authored Nov 21, 2024
1 parent 40a100a commit 8ad3f64
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion docs/user_guide/data_types_and_io/dataclass.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@
When you've multiple values that you want to send across Flyte entities, you can use a `dataclass`.

Flytekit uses the [Mashumaro library](https://github.com/Fatal1ty/mashumaro)
to serialize and deserialize dataclasses.
to serialize and deserialize dataclasses. With the 1.14 release, `flytekit` adopted `MessagePack` as the serialization format for dataclasses, overcoming a major limitation of serialization into a JSON string within a Protobuf `struct` datatype, like the previous versions do: to store `int` types, Protobuf's `struct` converts them to `float`, forcing users to write boilerplate code to workaround this issue. By default, `flytekit >= 1.14` will produce `msgpack` bytes literals when serializing dataclasses.

:::{important}

If you're serializing dataclasses using `flytekit` version >= v1.14.0 and you want to produce Protobuf `struct literal` instead, you can set environment variable `FLYTE_USE_OLD_DC_FORMAT` to `true`.

:::{important}
If you're using Flytekit version < v1.11.1, you will need to add `from dataclasses_json import dataclass_json` to your imports and decorate your dataclass with `@dataclass_json`.
Expand Down

0 comments on commit 8ad3f64

Please sign in to comment.