Практическая проверка Python 3.15 RC1: как проверить TOML 1.1 через tomllib Python 3.15 и совместимость конфигурации со старыми runtime. Изолированный fixture, отрицательный контроль, заранее заданный критерий и безопасный пакет диагностики.
Новый parser не обновляет всех consumers
Python 3.15 обновляет tomllib до TOML 1.1: разрешены многострочные inline tables с trailing comma, escape \xHH и \e, а секунды во времени могут отсутствовать. Это подтверждает только границу функции, а не наличие проблемы в конкретном проекте. Практический симптом уже: Новый config проходит в Python 3.15 RC1, но старый worker на 3.14 не стартует; ручной parser или editor дополнительно переписывает значение и скрывает несовместимый syntax. До изменения кода зафиксируйте версию runtime, способ установки, один ожидаемый результат и один отрицательный исход. RC1 остаётся предварительным выпуском: его проверяют в отдельной среде, не ставят поверх рабочего interpreter и не используют один удачный запуск как разрешение на migration.
Пять малых TOML fixtures
Рекомендуемый fixture: создать четыре маленьких TOML fixtures по одному новому правилу и один базовый TOML 1.0 control; читать bytes через tomllib.load в 3.14 и 3.15 RC1. Дайте ему метку T23-24, отдельный temp root и короткий deadline. Входы должны быть синтетическими, повторяемыми и минимальными; каждый новый запуск получает новые объекты и процесс, если cache или global state способны изменить наблюдение. До опыта запишите точную команду и ожидаемый class результата. Не включайте рабочие конфиги, адреса, токены, персональные строки, production PID или полные environment dumps.
Одно правило на файл
Опровергающий маршрут: не смешивать все нововведения в одном файле; для каждого сохранить accepted/rejected, типы значений и точную позицию TOMLDecodeError, затем повторить базовый control. Собирайте строки формата «fixture feature | Python | accepted | parsed value/type | error line/column | downstream serializer принял». Порядок control A, target B, fresh control A2 обнаруживает загрязнение fixture: если A2 расходится с A, итог нельзя помечать passed. Пустое поле не равно нулю, отсутствие exception не доказывает правильную семантику, а изменение двух параметров сразу лишает опыт диагностической силы. Соседние причины получают отдельные строки, а не удобное общее объяснение.
Матрица 3.14 и 3.15
Зелёный критерий сформулирован заранее: 1.0 control одинаков, каждая 1.1 форма имеет ожидаемую отдельную ветку, а deployment gate знает минимальную версию каждого reader. Ветка not reproduced означает только отсутствие симптома в этой версии fixture; blocked означает нехватку capability или источника; failed control возвращает расследование к стенду. Стоп-линия: {item['stop']}. Нельзя добиваться зелёного результата отключением проверки, broad except, ростом лимита, повторением до случайного успеха или подменой предварительного release стабильным обещанием. После теста удаляются только созданные temp-ресурсы.
Deployment gate по минимальной версии
Для maintainer или поддержки подготовьте: пять коротких fixtures, version matrix, value types и ошибки с координатами без настоящих config keys, credentials и путей. Добавьте label T23-24, московский timestamp, точную версию RC и формулировку критерия «1.0 control одинаков, каждая 1.1 форма имеет ожидаемую отдельную ветку, а deployment gate знает минимальную версию каждого reader». Секреты, IP, hostnames, usernames, абсолютные домашние пути и полные логи удалите. Официальные источники подтверждают изменение «Python 3.15 обновляет tomllib до TOML 1.1: разрешены многострочные inline tables с trailing comma, escape \xHH и \e, а секунды во времени могут отсутствовать.», но не подтверждают результат вашего теста, частоту проблемы или необходимость менять production. Такой пакет позволяет воспроизвести одну ветку, не раскрывая данные и не смешивая её с соседними issues.
Материал подготовлен редакцией VOne с помощью ИИ по открытым официальным и первичным источникам; факты, даты и ссылки перепроверены. Реальные пользовательские данные не использовались.
Источники и проверка
- Python 3.15.0rc1 release проверено 2026-08-29
- What’s New in Python 3.15 проверено 2026-08-29
- CPython issue #142956 for TOML 1.1 проверено 2026-08-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.