Python 3.14.7: IDLE не перезапускает занятую Shell через Run Customized. Практическая инструкция отделяет симптом от соседних причин: синтетический fixture, отрицательный control, таблица наблюдений, критерий остановки и минимальный пакет для поддержки без production-данных.
Развилка до обновления
Короткая развилка: изменение действительно вошло в Python 3.14.7 — IDLE теперь сообщает, что Shell выполняет код, вместо принудительного restart при выключенном Restart shell. Но похожий внешний симптом может иметь другую причину. Здесь проверяется только боль «Shell уже выполняет код, пользователь выбирает Run Customized и снимает Restart shell, но IDLE всё равно перезапускает Shell и теряет контекст текущей задачи.» и только запрос «как проверить Run Customized без Restart shell, пока IDLE Shell занята, в Python 3.14.7». Не переносите вывод на производительность, безопасность всего приложения или совместимость всех зависимостей: для этого нужны отдельные тесты и отдельные источники.
Сбор измеримых фактов
Практическая проверка T22-19 строится вокруг одного действия: в отдельном профиле IDLE запустить короткую задачу с Event ожиданием, открыть Run Customized, снять Restart shell и подтвердить запуск второго безопасного файла. Подготовьте новый fixture для каждого повтора и пометьте события монотонным временем. Сначала соберите факт о build/runtime capability, затем — результат API. Не подменяйте недоступную среду похожей ОС или другим устройством: это уже новый вопрос, а не подтверждение текущего.
Матрица A/B/A2
Матрица решения включает три ветки. Первая — сравнить idle Shell, занятую Shell с Restart включённым и занятую Shell с Restart выключенным, используя разные marker-файлы temp. Вторая — target с тем же input, третья — повтор первой в новом процессе. Поля: «shell state | restart checkbox | message shown | Shell PID marker | first task survived | second file started». Сначала сравните capability и вход, потом exception/exit, и лишь затем делайте вывод. Это защищает от ложного зелёного статуса из-за cache, warmed state или случайного timing.
Когда вывод относится к issue
Ветка считается подтверждённой только когда целевая ветка показывает busy message, не меняет Shell marker и не запускает второй файл до освобождения Shell. Если версия ведёт себя иначе, сохраните наблюдение без попытки объяснить его догадкой. Причиной могут быть backport, vendor patch, build option или тестовая ошибка. Отдельно пометьте, какой control отвергнут; это полезнее общего вывода «не работает».
Наблюдаемый rollback
Красный сигнал: не использовать несохранённую рабочую сессию; завершить тест, если profile не изолирован или marker выходит за temp directory. Также завершайте child по watchdog, если он не достиг следующего marker. Возврат должен быть наблюдаемым: temp root пуст, сетевой stub закрыт, terminal/GUI state восстановлен, системный Python и environment не менялись. Такой rollback важнее попытки получить красивый passed.
Что передать сопровождающим
Если нужна помощь сопровождающих, подготовьте: версии Python/IDLE, три состояния checkbox, текст сообщения без screenshot личных файлов, marker continuity и cleanup. Добавьте итоговый статус passed / not reproduced / blocked / failed control и одну строку об очистке. Не выдавайте форумный лид за факт: change boundary подтверждается release, changelog и первичной issue, а не количеством комментариев.
Материал подготовлен редакцией VOne с помощью ИИ по открытым официальным и первичным источникам; факты, даты и ссылки перепроверены. Реальные пользовательские данные не использовались.
Источники и проверка
- Python 3.14.7 release проверено 2026-08-29
- Python 3.14.7 changelog проверено 2026-08-29
- CPython issue #82183 проверено 2026-08-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.