По вашему первому пункту, анализ должен идти в модели, если он является частью класса модели; например, если у вас есть модель конфигурации, то функции для загрузки конфигурации принадлежат модели. Если это скорее служба (например, я собираюсь импортировать этот файл, а затем что-то еще выполнит сопоставления), то он должен быть в контроллере. Трудно сказать, не зная подробностей, но это общее правило, которому я следую.
Я не уверен в вашем втором замечании, так как я не знаком с Python, но типичный подход заключается в разделении структуры вашей папки на Models / Controllers / Views и тому подобное, однако я знаком только с MVC, так как относится к веб-приложениям, поэтому я могу быть не в курсе, поскольку ваша программа выглядит как настольное приложение.
Ваш третий пункт совершенно прав. Модель не должна разговаривать с представлением; контроллер связывается с моделью и извлекает информацию, необходимую представлению, и предоставляет представление именно этому. Я предполагаю, что в сущности представление может работать с моделью, но оно ничего не знает о модели (например, если оно исходит из базы данных, файла конфигурации, xml и т. Д.)