Вот надуманный пример того, что я пытаюсь сделать.
Код: Выделить всё
class MyModel(BaseModel):
foo: str
bar.baz: str
'bar.baz': str
^ Syntax Error: illegal target for annotation
В моем случае мне нужно установить/получить атрибут, например «bar.baz». Этот атрибут должен взаимодействовать с внешней системой за пределами Python, поэтому он должен оставаться пунктиром. Есть ли способ добиться этого с помощью pydantic и/или классов данных? Атрибут должен быть доступным по подписке, поэтому я хочу иметь возможность делать что-то вроде mymodel['bar.baz'].
Есть идеи о том, как я могу этого добиться?
Спасибо
Я пытался использовать NamedTuple для определения bar и даже универсального класса, но, похоже, не смог обойти проблему того, что это незаконно в мире введите аннотации.
Подробнее здесь:
https://stackoverflow.com/questions/756 ... thin-model