Python 3.14.7: urlsplit принимает заглавную V в IPvFuture. Практическая проверка отделяет симптом от соседних причин: безопасный fixture, опровергающий control, измеримая развилка, стоп-линия и минимальный пакет для поддержки.
Симптом, а не диагноз
Запрос ограничен формулировкой «как проверить URL с заглавным V в IPvFuture literal через urllib.parse.urlsplit на Python 3.14.7». Наблюдаемый симптом: валидный IPvFuture host с заглавным префиксом V отклоняется парсером, хотя регистр префикса по грамматике не должен менять результат. Официально подтверждена более узкая граница: urllib.parse.urlsplit теперь принимает заглавный префикс V в IPvFuture address. Это не означает, что любой похожий crash, warning, hang или неверный результат вызван именно этой ошибкой. Сначала запишите точную версию Python, режим сборки, платформу и один ожидаемый переход состояния; обновление всей среды не должно быть первым действием.
Минимальный воспроизводимый стенд
Для паспорта T21-13 выполните только такой опыт: разобрать локально пары URL вида http://[v1.fe]/ и http://[V1.fe]/, сравнив scheme, hostname, netloc и round-trip без сетевого соединения. Входы должны быть синтетическими, а рискованный код — жить в отдельном child process, контейнере, pty или temp root. До запуска задайте deadline, лимит памяти и допустимые файлы. Не используйте реальные архивы, токены, адреса, пользовательские документы или production PID. Если нужный backend, libc, compiler или GUI недоступен, зафиксируйте environment blocker: это честнее, чем имитировать результат.
Наблюдения по строкам
Опровергающая ветка: невалидные literals без version или с запрещённым символом и обычный IPv6 literal. Наблюдения пишутся строго как «input label | parse accepted | hostname | netloc | geturl | exception class». Сначала выполните control A, затем проблемный case B, полностью пересоздайте fixture и повторите A2. Если A2 расходится с A, опыт загрязнён cache, locale, descriptor, signal state или environment. Пустая ячейка не равна нулю, а текст exception не заменяет его класс. Такое разделение не позволяет объявить исправление только потому, что один запуск случайно не упал.
Критерий прохождения
Зелёная ветка разрешена только когда строчные и заглавные валидные варианты дают эквивалентные компоненты, а два невалидных control отклоняются. Если оба варианта ведут себя одинаково плохо, чините fixture, а не Python. Если control чист, но симптом не воспроизводится, итог — not reproduced в конкретной конфигурации, не доказательство отсутствия дефекта вообще. Сравнение 3.14.6 и 3.14.7 допустимо лишь с одинаковым input и limits. Результат относится к issue-boundary, а не к скорости, безопасности или совместимости всего приложения.
Обратимость опыта
Стоп-линия: не выполнять DNS или HTTP запрос и не подставлять реальные адреса пользователей. Остановитесь также при записи вне temp root, внешнем сетевом запросе, появлении приватных данных, неконтролируемом descendant process или превышении deadline. Не получайте зелёный статус отключением проверок, catch-all обработчиком, бесконечным retry или повышением лимитов после сбоя. Возврат должен быть проверяемым: очистить только in-memory список parsed results; сетевое состояние отсутствует. После этого ещё раз снимите process/file inventory и убедитесь, что состояние совпало с baseline.
Доказательства без лишних данных
Для issue #105708 достаточно передать: Python version, четыре синтетических URL, компоненты urlsplit и exception classes. Добавьте московский timestamp, labels A/B/A2 и точный критерий «{topic['green']}». Абсолютные пути, PIDs, hostnames, environment dumps, core dumps и содержимое рабочих файлов удалите или замените метками. Официальные источники подтверждают изменение «{topic['boundary']}», но не популярность запроса, позиции в поиске или готовность вашей системы. Такой пакет позволяет повторить один переход без доступа к инфраструктуре.
Материал подготовлен редакцией VOne с помощью ИИ по открытым официальным и первичным источникам; факты, даты и ссылки перепроверены. Реальные пользовательские данные не использовались.
Источники и проверка
- Python 3.14.7 release проверено 2026-08-29
- Python 3.14.7 changelog проверено 2026-08-29
- CPython issue #105708 проверено 2026-08-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.