bulat_tat, своё знакомство с python много лет назад я начал с создания своего велосипедокостыля - генератора именованных переменных… как вспомню, так вздрогну.
Почитайте М.Лутца «Изучаем Python», это прям то что надо.
bulat_tat, без разницы. Можете хоть любые объекты использовать, хоть свои объекты создать:
class MyObject (object):
def __init__(self, text):
self.text = text
examples = [MyObject(str(i)) for i in range(5)]
print(examples[0].text)
print(examples[1].text)
Vitaly, в Python при импорте модулей они выполняются. Как это в flask, я не смотрел, но вероятно точно так же. Если где-то стоит вызов, не спрятанный под if name == main, то там и вызывается.
Vitaly, сделайте проверку imgpath, где-то туда попадает не то, что ожидали. Если, к примеру, где-то в коде туда помещается n-й элемент списка, а там не то, что ожидалось.
Я бы взял на время где-нибудь любой монитор для тестирования так, чтобы исключить переходник.
Ну и, как ни странно, БП вполне может пакостить, особенно если старый и мощность на пределе. Перекосы питания, нехватка реальной мощности в моменты старта и, соответственно, отсутствие/глюк инициализации какой-нибудь железки.
Не совсем понятно, что значит «продолжать разработку внутри контейнера в pycharm».
Как я понимаю - в контейнере лежит Linux с Python. В контейнер проброшена внешняя папка, которая содержит ваш проект. Контейнер вашу папку монтирует как свою и ваш проект сам запускает и выполняет по какому-нибудь условию, в вашем случае начинает взаимодействовать с внешними серверами и ожидать там события. Логи оно должно выкладывать в подмонтированную папку или на другой сервер.
Вы локально меняете свой проект, выкладываете в смонтированную папку, докер в соответствии с настройками перечитывает изменения в смонтированной папке и перезапускает код.
Мне кажется это нормальным способом использования докера. А то, что у вас - какое-то неправильное. Естественно, вы наступаете на множество граблей.
Я бы взял загрузочную флешку с макосью и пустой usb hdd нужного объема.
Грузимся с флешки, скачиваем и запускаем DMDE, в нем делаем образ проблемного диска на usb hdd, отключаемся, идем на любой доступный комп, туда скачиваем DMDE и им ковыряем образ до просветления.
А не может ли быть, что при преобразовании данных с ключом ordered слишком умный pydantic где-то преобразует тип данных и вследствие этого теряет некоторые экземпляры, считая их тип невалидным (не str, например).
Ну других идей сходу нет.
Как это отследить… ну я бы пробовал давать на вход разные комбинации и анализировать результаты.
Или код pydantic читать… вдруг там чо…
pip freeze
и покажите вывод (в виде текста, не надо скриншот)