между двумя приложениями. Когда в приложении А обновляется какая-то запись в таблице, то об этом отправляется ивент в приложение Б и там тоже обновляется запись.
Хочу сделать такую структуру данных на основе датаклассов, которая бы могла одновременно и поспоставлять поля из таблиц, а также хранить значения. Как бы такое реализовать?
Например:
@dataclass
class Company:
title: Mapping[str, "name"] = field()
Где атрибуту 'title' соответсовали бы данные, которые зашли из JSON из приложения A, а атрибуту "name" соответсовала бы колонка в приложении Б. Ну и, естественно, чтобы можно было извлечь значение
Это тебе метакласс надо писать
Нихрена не понятно, но очень интересно. {"title": "AAA"} - это title: Mapping[str, "name"] = field() {"name": "BBB"} - это так же title: Mapping[str, "name"] = field() ?
А ты посмотри как в алхимии это реализовано
Смотри. В двух приложениях у таблиц названия колонок могут отличаться. Например, то, что в одной "title", то в другой - "name". И когда приходят данные на обновление. Например: { "title": "Foo" } То я хотел бы их превратить в свою структуру данных, и на выходе получить: { "name": "Foo" }
pydantic alias или dataclass_factory он же adaptix со Schema name_mapping
Ivan, Вы увеличили карму Vadim до 518.87 (+7.98)
https://adaptix.readthedocs.io/en/latest/extended_usage.html#field-renaming
Как раз это и читаю)
Обсуждают сегодня