Python 3.14.7: уровень Zstandard со словарём больше не выбирается случайно. Практическая инструкция отделяет симптом от соседних причин: синтетический fixture, отрицательный control, таблица наблюдений, критерий остановки и минимальный пакет для поддержки без production-данных.
Факт, который можно опровергнуть
Начните с вопроса, который можно опровергнуть: «как проверить default compression level с digested ZstdDict в Python 3.14.7». Changelog подтверждает узкую change boundary: В compression.zstd исправлена установка default compression level при передаче digested dictionary. Она связана с конкретной болью — Код передаёт заранее обработанный ZstdDict без явного compression level, и одинаковый input мог получать разные параметры сжатия между вызовами. — но не подтверждает частоту встречаемости. Поэтому ниже есть чистый fixture, противоположный control и стоп-линия; без них отсутствие crash или один удачный запуск остаются слабым наблюдением.
Карточка воспроизведения
Запишите карточку опыта T22-25: точная версия, режим запуска, короткий hash входа и действие «обучить или создать маленький синтетический словарь один раз, digested его штатным API и выполнить серию сжатий одного immutable payload без явного level». Используйте только обратимые ресурсы. До выполнения определите, где появятся stdout, stderr и exit code, а также как будет выполнена очистка. Так диагностический пакет останется повторяемым и не потребует доступа к реальной инфраструктуре.
Control перед выводом
Отрицательный control обязателен: сравнить явный default level, явный другой level и raw dictionary, каждый в новом compressor и с одинаковым payload hash. Заполняйте «dictionary mode | requested level | frame parameters | compressed size | output hash | decompressed hash | repeated outputs equal» до интерпретации вывода. Если результат зависит от порядка, поменяйте порядок и начните заново с чистого fixture. Не объединяйте несколько исправлений в одном опыте: иначе невозможно связать наблюдение с issue boundary.
Формальное условие приёмки
Формальное условие passed: серия с digested dictionary без level воспроизводит одни frame parameters и payload round-trip, согласованные с явным default control. Один позитивный запуск недостаточен — повтор должен сохранить тот же контракт. При расходящихся результатах снизьте вывод до inconclusive и проверьте происхождение бинарника, feature flags и чистоту input. Не повышайте уверенность количеством одинаковых перезапусков одного загрязнённого процесса.
Предел вмешательства
Предел вмешательства: не использовать секретный словарь и не выводить его bytes; остановиться при несовпадении decompressed hash или отсутствии модуля zstd в сборке. Нельзя расширять тест на production, чужие PID или реальные данные. После target удалите fixture, закройте локальные endpoints и повторите маленький baseline control. Только совпавший baseline доказывает, что эксперимент не оставил состояние.
Сокращённый support bundle
Сокращённый support bundle содержит: версия Python, dictionary id и hash без содержимого, payload hash, frame parameters, размеры и hashes повторов. Свяжите его с T22-25, добавьте hash синтетического input и критерий «серия с digested dictionary без level воспроизводит одни frame parameters и payload round-trip, согласованные с явным default control». Абсолютные пути замените ролями, бинарные данные — hashes, сообщения с приватным контекстом — классами исключений.
Материал подготовлен редакцией VOne с помощью ИИ по открытым официальным и первичным источникам; факты, даты и ссылки перепроверены. Реальные пользовательские данные не использовались.
Источники и проверка
- Python 3.14.7 release проверено 2026-08-29
- Python 3.14.7 changelog проверено 2026-08-29
- CPython issue #150583 проверено 2026-08-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.