Search
Write a publication
Pull to refresh
0
0

Software Developer

Send message

Тот же изначальный пример, но с mashumaro работает. Нужно только добавить миксин (можно для удобства в какой-нибудь базовый класс BaseConfig):


from dataclasses import dataclass
from enum import Enum
from typing import Optional
from mashumaro import DataClassYAMLMixin

class Color(Enum):
    RED = "red"
    GREEN = "green"
    BLUE = "blue"

@dataclass
class BattleStationConfig(DataClassYAMLMixin):
    @dataclass
    class Processor(DataClassYAMLMixin):
        core_count: int
        manufacturer: str

    processor: Processor
    memory_gb: int
    led_color: Optional[Color] = None

yaml = """
processor:
  core_count: 8
  manufacturer: Intel
memory_gb: 8
led_color: red
"""

print(BattleStationConfig.from_yaml(yaml))
# BattleStationConfig(processor=BattleStationConfig.Processor(core_count=8, manufacturer='Intel'), memory_gb=8, led_color=<Color.RED: 'red'>)

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity