Fatal1ty / mashumaro

Fast and well tested serialization library
Apache License 2.0
751 stars 44 forks source link

Annotated SerializationStrategy used as a field serialization strategy leads to RecursionError #219

Closed Fatal1ty closed 3 months ago

Fatal1ty commented 3 months ago

Description

Minimap reproducible example:

from typing import Any

from dataclasses import dataclass, field
from mashumaro import DataClassDictMixin, field_options
from mashumaro.types import SerializationStrategy

class MySerializationStrategy(SerializationStrategy, use_annotations=True):
    def serialize(self, value: Any) -> Any:
        return value

    def deserialize(self, value: Any) -> Any:
        return value

@dataclass
class MyClass(DataClassDictMixin):
    x: int = field(
        metadata=field_options(
            serialization_strategy=MySerializationStrategy()
        )
    )