История изменений
Исправление Manhunt, (текущая версия) :
То есть ты собираешься импортировать старые данные после того, как код был существенно изменен, и вместе с кодом могли поменяться состав/структура данных. Это значит, что при импорте тебе придётся преобразовывать старые данные в новый формат (переименовывать и перемещать поля, трансформировать значения полей), рожать откуда-то значения для новых (ранее не существовавших) полей. Тот ещё геморрой. На первое место тогда выходит наличие явной схемы данных и валидация её при каждой загрузке/выгрузке данных. Чтобы во-первых при разработке был стимул эту схему поменьше трогать, и во-вторых когда придёт время писать импорт из старой версии, можно было бы просто сравнивать старую схему с новой. Это marshmallow или pydantic.
Но может, лучше всё-таки не лезть в такую бутылку? Может, хотя бы не пихать в «результаты вычислений» произвольные питоньи объекты, чтобы потом с ними не долбаться как в аду?
Исходная версия Manhunt, :
То есть ты собираешься импортировать старые данные после того, как код был существенно изменен, и вместе с кодом могли поменяться состав/структура данных. Это значит, что при импорте тебе придётся преобразовывать старые данные в новый формат (переименовывать и перемещать поля, трансформировать значения полей), рожать откуда-то значения для новых (ранее не существовавших) полей. Тот ещё геморрой. На первое место тогда выходит наличие явной схемы данных и валидация её при каждой загрузке/выгрузке данных. Чтобы во-первых при разработке был стимул эту схему поменьше трогать, и во-вторых когда придёт время писать импорт из старой версии, можно было бы просто сравнивать старую схему с новой. Это marshmallow или pydantic.
Но может, лучше всё-таки не лезть в такую бутылку? Может, не пихать в «результаты вычислений» произвольные питоньи объекты, чтобы потом с ними не долбаться как в аду?