changelog.md
1> **Источник:** https://python-all.ru/3.3/whatsnew/changelog.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# Список изменений89## Python 3.3.7 финальный1011*Дата выпуска: 2017-09-19*1213В версии 3.3.7 нет новых изменений.1415## Python 3.3.7 кандидат в релизы 11617*Дата выпуска: 2017-09-05*1819### Безопасность2021- bpo-30947: Обновление встроенной копии libexpat с версии 2.2.1 до 2.2.3 для получения исправлений безопасности.22- bpo-26657: Исправление уязвимости обхода каталогов в http.server на Windows. Это исправляет регрессию, которая была введена в 3.3.4rc1 и 3.4.0rc1. Основано на исправлении Philipp Hagemeister.23- bpo-30500: Исправлено urllib.parse.splithost() для корректного разбора фрагментов. Например, `splithost('//127.0.0.1#@evil.com/')` теперь правильно возвращает `127.0.0.1` хост, вместо того чтобы считать `@evil.com` хостом в аутентификации (`login@host`).24- bpo-30730: Предотвращено внедрение переменных окружения в подпроцессе на Windows. Предотвращена передача других недопустимых переменных окружения и аргументов команды.25- bpo-30585: Исправление уязвимости TLS stripping в smptlib, CVE-2016-0772. Сообщено командой Oststrom26- bpo-30694: Обновление копии expat с версии 2.2.0 до 2.2.1 для получения исправлений множества уязвимостей безопасности, включая: CVE-2017-9233 (внешняя сущность – бесконечный цикл DoS), CVE-2016-9063 (целочисленное переполнение, повторное исправление), CVE-2016-0718 (исправление регрессионных ошибок из исправления CVE-2016-0718 в версии 2.2.0) и CVE-2012-0876 (хэш-флудинг счётчиков с SipHash). Примечание: CVE-2016-5300 (использование специфичных для ОС источников энтропии, таких как getrandom) не затрагивает Python, поскольку Python уже получает энтропию от ОС для установки секрета expat с помощью `XML_SetHashSalt()`.27- bpo-29591: Обновление копии expat с версии 2.1.0 до 2.2.0 для получения исправлений CVE-2016-0718 и CVE-2016-4472. Подробнее см. [https://sourceforge.net/p/expat/bugs/537/](https://python-all.ru/3.3/whatsnew/changelog.html).2829### Ядро и встроенные модули3031- bpo-27945: Исправлены различные ошибки сегментации со словарём, когда входные коллекции изменяются во время поиска, вставки или сравнения. На основе патчей от Duane Griffin и Tim Mitchell.32- bpo-28648: Исправлено падение в Py\_DecodeLocale() в отладочной сборке на Mac OS X при декодировании астральных символов. Патч от Xiang Zhang.33- bpo-26171: Исправлено возможное целочисленное переполнение и повреждение кучи в zipimporter.get\_data().34- bpo-25709: Исправлена проблема с конкатенацией строк на месте и кешем utf-8.35- bpo-24407: Исправлено аварийное завершение при изменении словаря во время обновления.36- bpo-24097: Исправлено аварийное завершение в object.\_\_reduce\_\_(), если имя слота освобождается внутри \_\_getattr\_\_.37- bpo-24096: Сделать warnings.warn\_explicit более устойчивым к изменению списка warnings.filters.38- bpo-24044: Исправлено возможное разыменование нулевого указателя в list.sort при нехватке памяти.39- bpo-23055: Исправлено переполнение буфера в PyUnicode\_FromFormatV. Анализ и исправление – Guido Vranken.4041### Библиотека4243- bpo-31170: expat: Обновление libexpat с 2.2.3 до 2.2.4. Исправление копирования частичных символов для входных данных UTF-8 (ошибка libexpat 115): [https://github.com/libexpat/libexpat/issues/115](https://python-all.ru/3.3/whatsnew/changelog.html)44- bpo-22928: Отключена инъекция HTTP-заголовков в http.client. Оригинальное исправление от Demian Brecht.45- bpo-30119: ftplib.FTP.putline() теперь вызывает ValueError для команд, содержащих CR или LF. Патч от Dong-hee Na.46- bpo-28563: Исправлена возможная атака типа «отказ в обслуживании» и выполнение произвольного кода при обработке выбора форм множественного числа в модуле gettext. Теперь анализатор выражений поддерживает точный синтаксис, поддерживаемый GNU gettext.47- bpo-27783: Исправлено возможное использование неинициализированной памяти в operator.methodcaller.48- bpo-27774: Исправлен возможный Py\_DECREF на не принадлежащем объекте в \_sre.49- bpo-27760: Исправлено возможное целочисленное переполнение в binascii.b2a\_qp.50- bpo-27758: Исправлено возможное целочисленное переполнение в модуле \_csv для больших длин записей.51- bpo-27568: Предотвращена атака HTTPoxy (CVE-2016-1000110). Игнорируется переменная HTTP\_PROXY, когда установлена переменная окружения REQUEST\_METHOD, что указывает на выполнение скрипта в режиме CGI.52- bpo-24521: Исправлена возможная целочисленная переполнения в модуле pickle.53- bpo-22931: Разрешены символы ‘\[‘ и ‘\]’ в значениях cookie.54- bpo-24094: Исправлена возможная аварийная остановка в json.encode с плохо ведущими себя подклассами dict.55- bpo-23367: Исправлена возможная ошибка переполнения в модуле unicodedata.56- bpo-23361: Исправлена возможная ошибка переполнения в коде создания подпроцесса в Windows.57- bpo-23363: Исправлено возможное переполнение в itertools.permutations.58- bpo-23364: Исправлено возможное переполнение в itertools.product.59- bpo-23369: Исправлено возможное целочисленное переполнение в \_json.encode\_basestring\_ascii.60- bpo-23366: Исправлено возможное целочисленное переполнение в itertools.combinations.61- bpo-23365: Исправлено возможное целочисленное переполнение в itertools.combinations\_with\_replacement.6263### Тесты6465- bpo-27369: В test\_pyexpat прекращена проверка детали сообщения об ошибке, изменившейся в Expat 2.2.0.66- bpo-25940: Изменены test\_ssl и test\_httplib для использования self-signed.pythontest.net. Это позволяет не полагаться на svn.python.org, который недавно сменил корневой сертификат.6768### C API6970- bpo-23998: PyImport\_ReInitLock() теперь проверяет ошибку выделения блокировки7172## Python 3.3.6 финальный7374*Дата выпуска: 11-Oct-2014*7576### Ядро и встроенные модули7778- bpo-22643: Исправлено целочисленное переполнение в операциях регистра Unicode (upper, lower, title, swapcase, casefold).79- bpo-22518: Исправлены проблемы целочисленного переполнения в обработчиках ошибок “backslashreplace”, “xmlcharrefreplace” и “surrogatepass”.80- bpo-22520: Исправлена проверка переполнения при создании repr объекта unicode.81- bpo-22519: Исправлена проверка переполнения в PyBytes\_Repr.82- bpo-22518: Исправлены проблемы целочисленного переполнения в кодировке latin-1.83- bpo-23165: Выполняется проверка переполнения перед выделением памяти в функции \_Py\_char2wchar.8485### Библиотека8687- bpo-16043: Добавлен лимит по умолчанию на объём данных, возвращаемых xmlrpclib.gzip\_decode. Это устраняет CVE-2013-1753.88- bpo-22517: При освобождении объекта io.BufferedRWPair очищать его слабые ссылки.89- bpo-22419: Ограничьте длину входящего HTTP-запроса в сервере wsgiref до 65536 байт и отправляйте код ошибки 414 для большей длины. Патч предоставлен Devin Cook.90- Нестрогий разбор cookie в http.cookies может представлять угрозу безопасности в сочетании с нестандартной обработкой cookie в некоторых веб-браузерах. Сообщил Sergey Bobrov91- bpo-21766: Предотвращена уязвимость в CGIHTTPServer: теперь пути декодируются из URL перед проверкой на наличие CGI-скрипта по этому пути.92- bpo-20633: Замена относительного импорта на абсолютный.93- bpo-21082: В os.makedirs не устанавливается umask процесса. Обратите внимание, это меняет поведение makedirs при exist\_ok=True.94- bpo-20875: Предотвращение возможной ошибки NameError "'read' is not defined" в gzip. Патч от Claudiu Popa.95- bpo-11599: При сбое внешней команды (например, компилятора) distutils теперь выводит всю командную строку (а не только имя команды), если установлена переменная окружения DISTUTILS\_DEBUG.96- bpo-4931: distutils больше не должно выдавать бесполезные сообщения "error: None". distutils.util.grok\_environment\_error сохранён, но считается устаревшим в документации.97- bpo-20283: Методы регулярных выражений теперь принимают именованный параметр string, как описано в документации. Параметры pattern и source оставлены как устаревшие псевдонимы.98- bpo-21323: Исправлена работа http.server со скриптами в подкаталогах CGI, нарушенная исправлением для безопасности [проблемы #19435](https://python-all.ru/3.3/whatsnew/changelog.html). Патч Зака Бёрна (Zach Byrne).99- bpo-21529: Исправлен произвольный доступ к памяти в JSONDecoder.raw\_decode с отрицательным вторым параметром. Ошибка сообщена Guido Vranken. (См. также: CVE-2014-4616)100101### Тесты102103- bpo-17752: Исправление тестов distutils при запуске из установленного расположения.104- bpo-20946: Исправлены предположения о выравнивании в некоторых тестах ctypes.105- bpo-20939: исправить сбой test\_geturl в test\_urllibnet из-за нового перенаправления с [http://www.python.org/](https://python-all.ru/3.3/whatsnew/changelog.html) на [https://www.python.org](https://python-all.ru/3.3/whatsnew/changelog.html).106107## Python 3.3.5 финальный108109*Дата выпуска: 09-Mar-2014*110111Изменений по сравнению с кандидатом в релизы 2 нет.112113## Python 3.3.5 кандидат в релизы 2114115*Дата выпуска: 02-Mar-2014*116117### Ядро и встроенные модули118119- bpo-20731: Корректная позиция в файлах исходного кода, даже если они открыты в текстовом режиме. Патч от Serhiy Storchaka.120- bpo-19619: str.encode, bytes.decode и bytearray.decode теперь используют внутренний API для вызова LookupError для известных нетекстовых кодировок, вместо попытки выполнить операцию кодирования или декодирования и затем вызова TypeError для неожиданного типа вывода. (Последний механизм остаётся для сторонних нетекстовых кодировок)121122### Библиотека123124- bpo-20778: Исправлен modulefinder для работы с модулями, содержащими только байт-код.125- bpo-20791: copy.copy() теперь не создаёт копию, когда входной объект – bytes. Первоначальный патч от Peter Otten.126- bpo-20621: Исправлена ошибка zipimport, появившаяся в версии 3.3.4, которая могла вызывать ложные сбои или SystemErrors при импорте модулей или пакетов из zip-файла. Изменение, вызвавшее проблему, было отменено.127- bpo-20404: io.TextIOWrapper (и, следовательно, встроенная функция open()) теперь использует внутреннюю систему маркировки кодеков, добавленную для [issue #19619](https://python-all.ru/3.3/whatsnew/changelog.html), чтобы выбрасывать LookupError для известных нетекстовых кодировок во время создания потока. Существующие проверки типа выходных данных остаются для обработки немаркированных сторонних кодеков.128129### Тесты130131- bpo-20743: исправить утечку ссылок в test\_tcl.132133### Инструменты/Демонстрации134135- bpo-20535: PYTHONWARNING больше не влияет на скрипт run\_tests.py. Патч от Arfrever Frehtes Taifersar Arahesis.136137## Python 3.3.5 кандидат в релизы 1138139*Дата выпуска: 23-Feb-2014*140141### Ядро и встроенные модули142143- bpo-20588: Приведение Python-ast.c к соответствию стандарту C89.144- bpo-20437: Исправлены 21 потенциальная ошибка при удалении ссылок на объекты.145- bpo-20538: Инкрементальный декодер UTF-7 порождал некорректную строку при усечении входных данных в секции BASE64.146147### Библиотека148149- bpo-20635: Исправлена работа методов grid\_columnconfigure() и grid\_rowconfigure() виджетов Tkinter в режиме wantobjects=True.150- bpo-19612: В Windows subprocess.Popen.communicate() теперь игнорирует OSError(22, ‘Invalid argument’) при записи входных данных в stdin, если процесс уже завершён.151- bpo-6815: os.path.expandvars() теперь поддерживает не-ASCII имена и значения переменных окружения.152- bpo-17671: Исправлено падение при использовании неинициализированного io.BufferedRWPair. Основано на патче от Stephen Tu.153- bpo-8478: Untokenizer.compat обрабатывает первый токен из входного итератора. Патч основан на строках от Georg Brandl, Eric Snow и Gareth Rees.154- bpo-20594: Предотвращение конфликта имён с функцией libc posix\_close.155- bpo-19856: shutil.move() не удавалось переместить каталог в другой каталог в Windows, если имя источника заканчивалось на os.altsep.156- bpo-14983: email.generator теперь всегда добавляет конец строки после каждого маркера границы MIME, а не только при наличии эпилога. Это исправляет ошибку соответствия RFC и решает проблему с подписанными MIME-частями.157- bpo-20540: исправлена регрессия производительности (по сравнению с Python 3.2) при наслоении multiprocessing.Connection поверх TCP-сокета. Для небольших полезных нагрузок алгоритм Нейгла приводил к задержкам простоя перед полной передачей сообщения.158- bpo-16983: новый код разбора заголовков email теперь декодирует закодированные слова, которые (некорректно) окружены кавычками, и регистрирует дефект.159- bpo-19772: email.generator больше не изменяет объект сообщения при преобразовании из 8-битных CTE в 7-битные.160- bpo-18805: разбор netmask/hostmask в ipaddress теперь более надёжно отфильтровывает недопустимые значения и корректно допускает любую допустимую длину префикса.161- bpo-17369: get\_filename вызывал исключение, если кодировка параметра filename по RFC2231 была нарушена определённым образом. Это была регрессия относительно Python 2.162- bpo-20013: некоторые IMAP-серверы отключаются при удалении текущего почтового ящика, и imaplib не обрабатывал эту ситуацию корректно. Теперь он правильно обрабатывает сообщение 'bye'.163- bpo-19920: TarFile.list() больше не завершается ошибкой при выводе списка, содержащего символы, которые невозможно закодировать. Основано на патче Вайраски Кока.164- bpo-20515: исправлено разыменование нулевого указателя, внесённое [issue #20368](https://python-all.ru/3.3/whatsnew/changelog.html).165- bpo-19186: восстановлено пространство имён символов expat внутри модуля pyexpat.166- bpo-20426: при передаче флага re.DEBUG функция re.compile() выводит отладочную информацию при каждом вызове, независимо от кэша компиляции.167- bpo-20368: нулевой символ теперь корректно передаётся из Tcl в Python. Улучшена обработка ошибок в командах, связанных с переменными.168- bpo-20435: исправлен \_pyio.StringIO.getvalue(), теперь учитываются настройки перевода строк.169- bpo-20288: исправлена обработка недопустимых числовых ссылок на символы в HTMLParser.170- bpo-20424: реализация io.StringIO на Python теперь поддерживает одиночные суррогаты.171- bpo-19456: ntpath.join() теперь правильно объединяет относительные пути, когда указан диск.172- bpo-19077: очистка tempfile.TemporaryDirectory теперь выполняется успешно в большинстве случаев при обнулении модулей во время завершения работы. Больше не возникает вводящее в заблуждение исключение при генерации предупреждения о ресурсах во время завершения работы.173- bpo-20367: исправлено поведение concurrent.futures.as\_completed() для повторяющихся аргументов. Патч от Glenn Langford.174- bpo-8260: методы read(), readline() и readlines() в codecs.StreamReader возвращали неполные данные, если вызывались после readline() или read(size). Основано на патче от Amaury Forgeot d’Arc.175176### IDLE177178- bpo-20406: использование значков приложений Python в заголовках окон Idle. Патч в основном от Serhiy Storchaka.179- Обновлена иконка python.gif для classbrowser и pathbowser в Idle: вместо старой зеленой змеи теперь новые синие и желтые змеи.180- bpo-17721: удаление неработающей кнопки справки в диалоге конфигурации до тех пор, пока она не будет действительно давать подсказку при нажатии. Патч от Guilherme Simões.181182### Тесты183184- bpo-20510: Переписан test\_exit в test\_sys в соответствии с существующими комментариями, с использованием современных возможностей unittest и вспомогательных функций из test.script\_helper вместо прямого использования subprocess. Патч от Gareth Rees.185- bpo-20532: Тесты, использующие \_testcapi, теперь помечены как только для CPython.186- bpo-19920: добавлены тесты для TarFile.list(). Основано на патче от Vajrasky Kok.187- bpo-19990: добавлены тесты для модуля imghdr. Основано на патче от Claudiu Popa.188- bpo-20474: исправлены ложные «неожиданные успехи» в test\_socket на OS X 10.7+.189- bpo-20605: Сделан более надежным тест test\_socket getaddrinfo для устранения segfault на OS X.190191### Документация192193- bpo-20488: Importlib больше не является *одной из* реализаций import, теперь это *единственная* реализация.194195### Сборка196197- bpo-20221: Удалено конфликтующее (или циклическое) определение hypot при компиляции с VS 2010 или новее. Первоначальный патч от Табреза Мохаммеда (Tabrez Mohammed).198- bpo-20609: Восстановлена возможность сборки 64-разрядных двоичных файлов Windows на 32-разрядной Windows, которая была нарушена изменением в [issue #19788](https://python-all.ru/3.3/whatsnew/changelog.html).199200## Python 3.3.4 final201202*Дата выпуска: 09-фев-2014*203204### Библиотека205206- bpo-20374: Исправлены предупреждения при сборке модуля readline с libedit на Mac.207208## Python 3.3.4 release candidate 1209210*Дата выпуска: 26-янв-2014*211212### Ядро и встроенные модули213214- bpo-17825: курсор «^» правильно позиционируется для SyntaxError и IndentationError.215- bpo-2382: курсор «^» для SyntaxError теперь выводится в правильной позиции в большинстве случаев, когда в строке есть многобайтовые символы (перед «^»). Это всё ещё не работает корректно с широкими восточноазиатскими символами.216- bpo-18960: первая строка скрипта Python могла выполняться дважды, если кодировка исходного файла была указана во второй строке. Теперь объявление кодировки во второй строке не действует, если первая строка содержит что-то кроме комментария. «python -x» снова работает с файлами, содержащими объявления кодировки, и может использоваться для создания пакетных файлов Python в Windows.217- bpo-17432: Удалить UCS2 из имён функций Unicode в python3.def.218- bpo-19969: PyBytes\_FromFormatV() теперь вызывает OverflowError, если аргумент «%c» выходит за диапазон \[0; 255\].219- bpo-14432: Генератор теперь очищает заимствованную ссылку на состояние потока. Исправлено падение, возникающее при создании генератора в потоке C, который уничтожается, пока генератор еще используется. Проблема заключалась в том, что генератор содержит фрейм, а фрейм хранил ссылку на состояние Python уничтоженного потока C. Падение происходит, если установлена трассировочная функция.220- bpo-19932: Исправлена опечатка в import.h – отсутствовали пробелы в прототипах функций.221- bpo-19729: В str.format() исправлено рекурсивное раскрытие в спецификации формата.222- bpo-19638: Исправлен возможный сбой/неопределённое поведение при обработке огромных (более 2 миллиардов символов) входных строк в \_Py\_dg\_strtod.223224### Библиотека225226- bpo-16042: CVE-2013-1752: smtplib: ограничен объем считываемых данных за счет ограничения вызова readline(). Исходный патч от Christian Heimes.227- bpo-20317: ExitStack.\_\_exit\_\_ мог создавать самоссылающийся цикл, если исключение, вызванное операцией очистки, уже имело правильно установленный контекст (например, декоратором @contextmanager). Теперь бесконечный цикл, который это вызывало, предотвращается проверкой того, установлен ли ожидаемый контекст, перед попыткой его исправить.228- bpo-20374: Исправлена сборка с GNU readline \>= 6.3.229- bpo-20262: Теперь выдаются предупреждения при добавлении дублирующихся имен в ZIP-файл или при усечении слишком длинного комментария ZIP-файла.230- bpo-18574: Добавлен отсутствующий символ новой строки в ответе 100-Continue от http.server.BaseHTTPRequestHandler. Исправление от Nikolaus Rath.231- bpo-20270: urllib.urlparse теперь поддерживает пустые порты.232- bpo-20243: TarFile больше не вызывает ReadError при открытии в режиме записи.233- bpo-20238: TarFile, открытый с внешним файловым объектом и режимом “w:gz”, не записывал полный вывод при закрытии.234- bpo-20245: Функции open в модуле tarfile теперь корректно обрабатывают пустой режим.235- bpo-20242: Исправлены строки форматирования basicConfig() для альтернативных стилей форматирования. Спасибо kespindler за сообщение об ошибке и исправление.236- bpo-20246: Исправлено переполнение буфера в socket.recvfrom\_into.237- bpo-20206: Исправлен крайний случай в email.quoprimime.encode, когда он обрезал строки, заканчивающиеся символом, требующим кодирования, но без перевода строки; исправление выполнено с помощью более эффективного алгоритма, у которого нет этой ошибки. (См. также: bpo-5803)238- bpo-19082: Рабочие примеры xmlrpc.server и xmlrpc.client. Как в модулях, так и в документации. Первоначальное исправление предоставлено Vajrasky Kok.239- bpo-20138: Функции wsgiref.application\_uri() и wsgiref.request\_uri() теперь соответствуют PEP 3333 при обработке не-ASCII URL.240- bpo-19097: Вызывается правильное исключение, когда cgi.FieldStorage передается недопустимый файловый объект.241- bpo-20217: Исправлена сборка, если определено SCHED\_SPORADIC.242- bpo-13107: argparse и optparse больше не вызывают исключение при выводе справки в окружении с слишком маленьким значением COLUMNS. Основано на исправлении Elazar Gershuni.243- bpo-20207: Всегда отключать SSLv2, кроме случаев, когда явно запрошен PROTOCOL\_SSLv2.244- bpo-18960: Модуль tokenize теперь игнорирует объявление кодировки исходного файла на второй строке, если первая строка содержит что-либо, кроме комментария.245- bpo-20078: Чтение поврежденных zip-файлов больше не зависает с потреблением 100% CPU.246- bpo-20113: os.readv() и os.writev() теперь вызывают исключение OSError при ошибке вместо возврата -1.247- bpo-20072: Исправлены множественные ошибки в tkinter при wantobjects = False.248- bpo-20108: Избежать конфликта имён параметров в inspect.getcallargs().249- bpo-12692: Перенесено исправление ResourceWarning в test\_urllib2net. Это также помогает закрывать сокет, если не отправлен заголовок Connection Close.250- bpo-19422: Явно запрещены сокеты, отличные от SOCK\_STREAM, в модуле ssl, вместо того чтобы позволять им незаметно передавать незашифрованные данные.251- bpo-18116: getpass всегда получал ошибку при проверке /dev/tty, поэтому всегда переключался на stdin и затем возбуждал исключение, если stdin нельзя было использовать (например, /dev/null). Также была утечка открытого файла. Все эти проблемы теперь исправлены.252- bpo-20027: Исправлены псевдонимы локали для деванагари.253- bpo-20067: Переменные Tkinter теперь работают, когда wantobjects имеет значение false.254- bpo-19020: Tkinter теперь использует splitlist() вместо split() в методах configure.255- Исправлен TypeError при «setup.py upload –show-response».256- bpo-12226: При подключении к PyPI теперь по умолчанию используется HTTPS.257- bpo-20045: Исправлена команда «setup.py register –list-classifiers».258- bpo-18879: При поиске метода временного файла теперь избегается закрытие файла до возможного вызова этого метода.259- bpo-20034: Обновлено сопоставление псевдонимов в соответствии с последним файлом locale.alias из дистрибутива X.org с помощью makelocalealias.py.260- bpo-5815: Исправлена поддержка локалей с модификаторами. Исправлена поддержка кодировок локалей, содержащих дефисы.261- bpo-20026: Исправлен модуль sqlite для корректной обработки недопустимого уровня изоляции (неверный тип).262- bpo-18829: csv.Dialect() теперь проверяет тип полей delimiter, escapechar и quotechar. Первоначальный патч от Vajrasky Kok.263- bpo-19855: uuid.getnode() в Unix теперь ищет в PATH исполняемые файлы, используемые для поиска MAC-адреса, с резервными каталогами /sbin и /usr/sbin.264- bpo-20007: HTTPResponse.read(0) больше не закрывает соединение преждевременно. Оригинальный патч от Simon Sapin.265- bpo-19912: Исправлены многочисленные ошибки в ntpath.splitunc().266- bpo-19911: ntpath.splitdrive() теперь корректно обрабатывает символ 'İ' (U+0130, LATIN CAPITAL LETTER I WITH DOT ABOVE).267- bpo-19532: python -m compileall без аргументов с именами файлов/каталогов теперь учитывает флаги -f и -q вместо того, чтобы игнорировать их.268- bpo-19623: Исправлена запись в файлы без возможности позиционирования в модуле aifc.269- bpo-17919: select.poll.register() снова работает с poll.POLLNVAL на AIX. Исправлено целочисленное переполнение в параметре eventmask.270- bpo-19063: если для body\_encoding объекта Charset было установлено None, модуль email генерировал сообщение с утверждением, что Content-Transfer-Encoding равен 7bit, и выдавал мусор на выходе для содержимого. Теперь это работает. Также исправлены несколько других некорректных обработок set\_payload с не-ASCII символами.271- bpo-17200: timeout в read\_until и expect в telnetlib был сломан исправлением [Issue #14635](https://python-all.ru/3.3/whatsnew/changelog.html) в Python 3.3.0: значение стало интерпретироваться как миллисекунды вместо секунд на платформах, поддерживающих select.poll (то есть везде). Теперь снова обрабатывается как секунды.272- bpo-17429: platform.linux\_distribution() теперь декодирует файлы из кодировки UTF-8 с обработчиком ошибок surrogateescape, вместо декодирования из кодировки локали в строгом режиме. Это исправляет работу функции на Fedora 19, который, вероятно, является первым крупным дистрибутивом с не-ASCII именем. Патч написан Toshio Kuratomi.273- bpo-19929: В subprocess.Popen.communicate теперь вызывается os.read с размером 32768 вместо 4096 для повышения эффективности. Микро-бенчмарк показывает, что на Linux и OS X использование процессорного времени снижается примерно на 50%.274- bpo-19506: Используется memoryview для избежания копирования данных при передаче данных в stdin в subprocess.Popen.communicate. Потребление процессора снижается на 5–10%.275- bpo-19839: Исправлена регрессия в модуле bz2 при обработке данных, не являющихся bzip2, в конце файла, и аналогичная ошибка в модуле lzma.276- bpo-19138: IGNORE\_EXCEPTION\_DETAIL в doctest теперь позволяет совпадение, когда нет деталей исключения (нет двоеточия после имени исключения, или двоеточие есть, но после него нет текста).277- bpo-19834: Добавлена поддержка распаковки исключений, упакованных Python 2.278- bpo-15798: Исправлено subprocess.Popen() – больше не завершается ошибкой, если файловые дескрипторы 0, 1 или 2 закрыты.279- bpo-19088: Исправлено неверное кеширование модуля copyreg в object.\_\_reduce\_\_() и object.\_\_reduce\_ex\_\_().280- Исправлено: \_pickle.Unpickler больше не выдаёт ошибку при загрузке пустых строк в качестве постоянных идентификаторов.281- bpo-11480: Исправлена copy.copy, чтобы она работала с классами, имеющими пользовательские метаклассы. Патч от Daniel Urban.282- bpo-6477: Добавлена поддержка сериализации (pickle) типов встроенных синглтонов (Ellipsis, NotImplemented, None).283- bpo-11508: Исправлены uuid.getnode() и uuid.uuid1() в окружении с виртуальным интерфейсом. Исходный патч от Kent Frazier.284- bpo-11489: Декодер JSON теперь принимает одиночные суррогаты.285- bpo-19545: Исключены цепочечные исключения при передаче лишнего % в time.strptime(). Начальный патч от Claudiu Popa.286- bpo-19633: Исправлена запись несжатых 16- и 32-битных wave-файлов на платформах с обратным порядком байт.287- bpo-19449: В методе writerow модуля csv теперь обрабатываются нестроковые ключи при формировании сообщения об ошибке о том, что некоторые ключи отсутствуют в списке ‘fieldnames’.288- Исправлена test.support.bind\_port(), чтобы она не вызывала ошибку, если Python был скомпилирован в системе, где SO\_REUSEPORT определён в заголовочных файлах, но запущен на системе с ядром ОС, не поддерживающим эту довольно новую опцию сокетов.289- Исправлена ошибка компиляции встроенной libffi для модуля ctypes под gcc для arm.290- bpo-19523: Устранена утечка FileHandler, возникавшая при установке delay.291- bpo-13674: Предотвращено падение time.strftime в Windows при передаче года до 1900 и формата %y.292- bpo-19544: Восстановлено использование urllib через http, позволяющее использовать http\_proxy для команды загрузки Distutils, – функция, случайно потерянная при откате distutils2. (См. также: bpo-6286.)293- bpo-19544: Восстановлен метод read\_pkg\_file в distutils.dist.DistributionMetadata, случайно удалённый при отмене изменений distutils2. (См. также: bpo-7457.)294- bpo-1575020: Исправлена поддержка 24-битных WAV-файлов на платформах с обратным порядком байт (big-endian).295- bpo-19480: HTMLParser теперь принимает все допустимые имена начальных тегов, как определено стандартом HTML5.296- bpo-6157: Исправлен tkinter.Text.debug(). Исходный патч от Guilherme Polo.297- bpo-6160: Метод bbox() у tkinter.Spinbox теперь возвращает кортеж целых чисел вместо строки. На основе патча от Guilherme Polo.298- bpo-10197: Переработаны subprocess.get\[status\]output для использования функциональности subprocess и, таким образом, работы в Windows. Патч от Nick Coghlan.299- bpo-19286: Каталоги в `package_data` больше не добавляются в список файлов, что предотвращает ошибку, описанную в тикете.300301### IDLE302303- bpo-17390: Добавить версию Python в строку заголовка окна редактора IDLE. Оригинальные исправления от Edmond Burnett и Kent Johnson.304- bpo-18960: IDLE теперь игнорирует объявление кодировки исходного файла на второй строке, если первая строка содержит что-либо, кроме комментария.305- bpo-20058: sys.stdin.readline() в IDLE теперь всегда возвращает только одну строку.306- bpo-19481: print() экземпляра подкласса строки в IDLE больше не зависает.307- bpo-18270: Предотвращена возможная ошибка AttributeError в IDLE на OS X, когда нет начального окна оболочки.308309### Тесты310311- bpo-19804: Тест test\_find\_mac в test\_uuid теперь пропускается, если исполняемый файл ifconfig недоступен.312- bpo-19886: Использовать более точную оценку требуемого объёма памяти для тестов bigmem.313- bpo-20055: Исправлен test\_shutil в Windows при наличии прав на символьные ссылки. Патч от Vajrasky Kok.314- bpo-19938: В test\_dis повторно включён test\_bug\_1333982, который был отключён с версии 3.0 из-за изменений в обработке listcomp.315- bpo-19320: test\_tcl больше не падает, когда wantobjects равен False.316- bpo-19683: Удалены пустые тесты из test\_minidom. Патч от Ajitesh Gupta.317- bpo-19919: Исправлен нестабильный SSL-тест. connect\_ex() иногда возвращает EWOULDBLOCK в Windows или на виртуальных машинах под управлением Windows.318- bpo-19912: Добавлены тесты для ntpath.splitunc().319- bpo-19828: Исправлен test\_site при запуске всего набора тестов с опцией -S.320- bpo-19928: Реализован тест для repr() объектов ячеек.321- bpo-19535: Исправлен test\_docxmlrpc при запуске python с флагом -OO.322- bpo-19926: Удалён ненужный test\_main из test\_abstract\_numbers. Патч от Vajrasky Kok.323- bpo-19595: Вновь включён давно отключённый тест в test\_winsound. (См. также: bpo-19987)324- bpo-19588: Исправлены тесты в test\_random, которые большую часть времени молча пропускались. Патч от Julian Gindi.325- bpo-19596: Нетестируемые тесты в test\_importlib установлены в None, чтобы избежать сообщения об успехе пустых тестов.326- bpo-19440: Очистка test\_capi: удален ненужный импорт \_\_future\_\_, переход от test\_main к unittest.main, тесты модуля \_testcapi запускаются в рамках unittest TestCase.327- bpo-18702: Все пропущенные тесты теперь сообщаются как пропущенные. (См. также: bpo-19572)328- bpo-19085: Добавлены базовые тесты для всех опций виджетов tkinter.329330### Документация331332- bpo-20265: Обновлены некоторые разделы документа Using Windows.333- bpo-20266: Обновлены некоторые разделы Windows FAQ.334- bpo-20255: Обновлены страницы about и bugs.335- bpo-20253: Исправлена опечатка в документации ipaddress, где указывалось недопустимое имя атрибута. Найдено INADA Naoki.336- bpo-19963: Документировано, что importlib.import\_module() больше не требует отдельного импорта родительских пакетов.337- bpo-18840: Введение модуля json в руководство, и уменьшение акцента на модуле pickle.338- bpo-19845: Обновлён раздел Compiling Python on Windows.339- bpo-19795: Улучшена разметка констант True/False.340- bpo-18326: Уточнение, что аргументы list.sort являются только ключевыми. Также попытка уменьшить путаницу в глоссарии, избегая упоминания разных «типов» аргументов и параметров.341342### Сборка343344- bpo-19788: kill\_python(\_d).exe теперь запускается как PreBuildEvent в подпроекте pythoncore. Это должно предотвратить ошибки сборки из-за того, что python(\_d).exe от предыдущей сборки всё ещё работает.345- Добавлен обходной путь для проблемы nmake clean в VS 2010. VS 2010 неправильно настраивает PATH для nmake.exe.346347### Инструменты/Демонстрации348349- bpo-19936: Добавлены биты исполняемости или shebang-строки в сценарии Python, которым они требуются. Отключены биты исполняемости и shebang-строки в тестовых и бенчмарк-файлах, чтобы предотвратить использование случайной системной версии Python, а также в исходных файлах модулей, не предоставляющих интерфейс командной строки. Исправлена shebang-строка для использования исполняемого файла python3 в скрипте unittestgui.350- bpo-18960: 2to3 и скрипт findnocoding.py теперь игнорируют объявление кодировки исходного файла во второй строке, если первая строка содержит что-либо, кроме комментария.351352## Python 3.3.3 final353354*Дата выпуска: 17-ноя-2013*355356Изменений по сравнению с release candidate 2 нет.357358## Python 3.3.3 release candidate 2359360*Дата выпуска: 11 ноября 2013 г.*361362### Библиотека363364- bpo-19227: Удалена повторная инициализация ГСЧ OpenSSL при fork(); это должно обрабатываться самим OpenSSL или приложением.365- bpo-19435: Исправлена уязвимость обхода каталогов в CGIHttpRequestHandler.366367### Тесты368369- bpo-18964: Исправлен test\_tcl при запуске с версиями Tcl/Tk \< 8.5.370371### Сборка372373- bpo-15663: Отмена встроенной поддержки Tcl/Tk в установщике OS X для 3.3.3. Некоторые сторонние проекты, такие как Matplotlib и PIL/Pillow, зависели от возможности сборки с фреймворками Tcl и Tk в /Library/Frameworks.374375## Python 3.3.3, кандидат в релиз 1376377*Дата выпуска: 27 октября 2013 г.*378379### Ядро и встроенные модули380381- bpo-18603: Обеспечено, что PyOS\_mystricmp и PyOS\_mystrnicmp находятся в исполняемом файле Python и не удаляются оптимизатором компоновщика.382- bpo-19279: Декодер UTF-7 больше не порождает недопустимые строки.383- Исправлено раскрытие макроса \_PyErr\_OCCURRED(), и обеспечено его использование хотя бы в одном месте, чтобы избежать регрессий.384- bpo-19014: memoryview.cast() теперь разрешён для представлений нулевой длины.385- bpo-19098: Предотвращение переполнения в компиляторе, когда предел рекурсии установлен абсурдно высоким.386- bpo-18942: Вывод sys.\_debugmallocstats() был повреждён в Windows.387- bpo-18667: Добавлен отсутствующий символ «HAVE\_FCHOWNAT» в posix.\_have\_functions.388- bpo-18368: PyOS\_StdioReadline() больше не вызывает утечку памяти при сбое realloc().389- bpo-16741: Исправлена ошибка при сообщении об ошибке в int().390- bpo-17899: Исправлена редкая утечка файловых дескрипторов в os.listdir().391- bpo-18552: Проверка возвращаемого значения PyArena\_AddPyObject() в obj2ast\_object().392- bpo-18560: Исправлено потенциальное разыменование NULL-указателя в sum().393- bpo-15905: Исправлено теоретическое переполнение буфера при обработке sys.argv\[0\], prefix и exec\_prefix, если операционная система не соблюдает MAXPATHLEN.394- bpo-18344: Исправлены потенциальные утечки ссылок в \_bufferedreader\_read\_all().395- bpo-17872: Исправлен segfault в marshal.load(), когда входной поток возвращает больше байт, чем запрошено.396- bpo-18426: Исправлено разыменование NULL-указателя при импорте C-расширения, когда PyModule\_GetDef() возвращает ошибку.397- bpo-18328: Изменён порядок операций в функциях PyThreadState\_Delete\*(). Теперь tstate сначала удаляется из TLS, а затем освобождается.398- bpo-18184: PyUnicode\_FromFormat() и PyUnicode\_FromFormatV() теперь вызывают OverflowError, когда аргумент формата %c выходит за допустимые пределы.399- bpo-18137: Обнаружение целочисленного переполнения при указании точности в float.\_\_format\_\_() и complex.\_\_format\_\_().400- bpo-18183: Исправлены различные операции с Unicode в строках, содержащих символы с большими кодовыми точками.401- bpo-18180: Исправлена утечка ссылок в \_PyImport\_GetDynLoadWindows().402- bpo-18038: SyntaxError, возникающий при компиляции исходников с недопустимой кодировкой, теперь всегда содержит имя кодировки.403- bpo-17644: Исправлен сбой в str.format при использовании фигурных скобок внутри квадратных скобок.404- bpo-17983: Возбуждается SyntaxError для оператора `global __class__` в теле класса.405- bpo-17927: Объекты фреймов удерживали аргументы в живых, если они были скопированы в ячейку, даже после очистки этой ячейки.406407### Библиотека408409- bpo-19395: Возбуждается исключение при попытке сериализовать объект сжатия/распаковки bz2 или lzma, вместо создания pickle, который вызвал бы segfault при загрузке и использовании.410- bpo-19227: Попытка исправить взаимоблокировки, вызванные повторной инициализацией генератора псевдослучайных чисел OpenSSL при fork().411- bpo-16037: HTTPMessage.readheaders() вызывает HTTPException при чтении более 100 заголовков. Адаптировано из патча Jyrki Pulliainen.412- bpo-16040: CVE-2013-1752: В nntplib ограничена максимальная длина строк до 2048 для предотвращения чрезмерного потребления памяти вызовами readline(). Патч от Jyrki Pulliainen.413- bpo-16041: CVE-2013-1752: В poplib ограничена максимальная длина строк до 2048 для предотвращения чрезмерного потребления памяти вызовами readline(). Патч от Jyrki Pulliainen.414- bpo-17997: Изменено поведение `ssl.match_hostname()` в соответствии с RFC 6125 по соображениям безопасности. Теперь он не соответствует множественным подстановочным знакам, а также подстановочным знакам внутри фрагментов IDN.415- bpo-16039: CVE-2013-1752: Изменено использование readline в модуле imaplib для ограничения длины строки. Патч от Emil Lind.416- bpo-19393: Исправлена функция symtable.symtable, чтобы она не путалась при наличии функций или классов с именем «top».417- bpo-19339: Модуль telnetlib теперь использует time.monotonic(), если доступно, для вычисления тайм-аута.418- bpo-19288: Исправлен оператор «in» для баз данных dbm.gnu при строковом аргументе. Оригинальный патч от Arfrever Frehtes Taifersar Arahesis.419- bpo-19287: Исправлен оператор «in» для баз данных dbm.ndbm при строковом аргументе. Оригинальный патч от Arfrever Frehtes Taifersar Arahesis.420- bpo-19327: Исправлена работа регулярных выражений со слишком большим набором символов.421- bpo-19350: Увеличено тестовое покрытие macurl2path. Патч от Colin Williams.422- bpo-19352: Исправлено обнаружение тестов unittest, когда модуль доступен через несколько путей (например, в Debian/Ubuntu с virtualenv).423- bpo-15207: Исправлено чтение mimetypes из правильного раздела реестра Windows. Оригинальный патч от Dave Chambers.424- bpo-8964: исправлена обработка IronPython 2.6+ в platform.\_sys\_version. Исправление от Martin Matusiak.425- bpo-16038: CVE-2013-1752: ftplib: ограничено количество читаемых данных за счёт ограничения вызова readline(). Оригинальное исправление от Michał Jastrzębski и Giampaolo Rodola.426- bpo-18235: Исправлены переменные sysconfig LDSHARED и BLDSHARED в AIX. Патч от David Edelsohn.427- bpo-19276: Исправлен модуль wave на 64-битных платформах с big-endian.428- bpo-18776: Колбэки atexit теперь выводят полную трассировку при возникновении исключения.429- bpo-17827: Добавлена недостающая документация для `codecs.encode` и `codecs.decode`.430- bpo-18458: Предотвращение сбоев с новыми версиями libedit. Его эмуляция readline изменилась с индексации от 0 на индексацию от 1, как в GNU readline. Оригинальный патч от Ronald Oussoren.431- bpo-18919: Если метод close() writer в модуле sunau или wave завершался сбоем, повторный вызов close() и деструктор больше не возбуждают исключение.432- bpo-19131: Модуль aifc теперь корректно читает и записывает sampwidth сжатых потоков данных.433- bpo-19158: Редкое состояние гонки в BoundedSemaphore могло позволять слишком часто вызывать .release().434- bpo-18037: 2to3 теперь экранирует ‘u’ и ‘U’ в нативных строках.435- bpo-19137: Модуль pprint теперь корректно форматирует экземпляры подклассов set и frozenset.436- bpo-19092: contextlib.ExitStack теперь корректно перевызывает исключения из колбэков \_\_exit\_\_ внутренних контекстных менеджеров (исправление от Hrvoje Nikšić).437- bpo-12641: Избегание передачи -mno-cygwin компилятору mingw32, кроме случаев необходимости. Исправление от Oscar Benjamin.438- bpo-18594: Быстрый путь для collections.Counter() никогда не использовался из-за чрезмерно ограничительной проверки типа. А запасной путь не реализовывал тот же алгоритм, что и чистый код на Python.439- Корректно инициализировать все поля SSL-объекта после выделения памяти.440- bpo-4366: Исправление сборки расширений на всех платформах при использовании –enable-shared.441- bpo-18950: Исправление различных ошибок в модуле sunau. Au\_read.readframes() теперь обновляет текущую позицию в файле и читает правильное количество кадров из многоканального потока. Au\_write.writeframesraw() теперь корректно обновляет текущую позицию в файле. Au\_read.getnframes() теперь возвращает целое число (как в Python 2). Au\_read и Au\_write теперь корректно работают с файловым объектом, если начальная позиция файла не равна нулю.442- bpo-19053: ZipExtFile.read1() с ненулевым аргументом больше не возвращает пустые байты до конца данных.443- bpo-19028: Исправлен tkinter.Tkapp.merge() для нестроковых аргументов.444- bpo-3015: Исправлен tkinter с wantobject=False. Любой вызов команды Tcl возвращал пустую строку.445- bpo-18050: Исправлена несовместимость модуля re с двоичными файлами Python 3.3.0.446- bpo-19037: Модуль mailbox теперь выполняет все изменения в файлах maildir до их перемещения на место, чтобы избежать состояний гонки с другими программами, которые могут обращаться к каталогу maildir.447- bpo-14984: На системах POSIX, когда netrc вызывается без аргумента имени файла (и, следовательно, читает $HOME/.netrc пользователя), теперь применяются те же правила безопасности, что и в типичных ftp-клиентах: файл .netrc должен принадлежать пользователю, владеющему процессом, и не должен быть читаем никаким другим пользователем.448- bpo-18873: Модуль tokenize теперь определяет кодировку исходного кода Python только в строках комментариев.449- bpo-17324: Исправлена обработка запросов http.server для случая с завершающим символом '/'. Патч предоставлен Vajrasky Kok.450- bpo-19018: Функция heapq.merge() больше не подавляет IndexError в нижележащих итерируемых объектах.451- bpo-18784: Модуль uuid больше не пытается загружать libc через ctypes.CDLL, если все необходимые функции уже найдены в libuuid. Патч от Evgeny Sologubov.452- bpo-18672: Исправлены спецификаторы формата для Py\_ssize\_t в отладочном выводе в модуле \_sre.453- bpo-18830: inspect.getclasstree() больше не порождает дублирующиеся записи, даже когда входной список содержит дубликаты.454- bpo-18909: Исправлена \_tkinter.tkapp.interpaddr() на Windows 64-bit, не приводить 64-битный указатель к long (32 бита).455- bpo-18876: Атрибут FileIO.mode теперь лучше отражает реальный режим, в котором был открыт файл. Патч от Erik Bray.456- bpo-18418: После fork() повторно инициализируются состояния всех потоков, а не только активных. Патч от A. Jesse Jiryu Davis.457- bpo-16611: http.cookie теперь корректно разбирает флаги cookie ‘secure’ и ‘httponly’.458- bpo-11973: Исправлена проблема в kevent. Поля flags и fflags теперь корректно обрабатываются как беззнаковые.459- bpo-17702: При ошибке os.environb теперь подавляет контекст исключения при возбуждении нового KeyError с исходным ключом.460- bpo-18755: Исправлен загрузчик, используемый в imp, чтобы разрешить многократный вызов get\_data().461- bpo-16809: Исправлены некоторые несовместимости tkinter с Tcl/Tk 8.6.462- bpo-16809: Методы splitlist() и split() модуля Tkinter теперь принимают аргумент типа Tcl\_Obj.463- bpo-18324: set\_payload теперь корректно обрабатывает двоичные входные данные. Это также заменяет предыдущие исправления для #14360, #1717 и #16564.464- bpo-17119: Исправлены целочисленные переполнения при обработке больших строк и кортежей в модуле tkinter.465- bpo-18747: Повторная инициализация генератора псевдослучайных чисел OpenSSL после fork. Используется обработчик pthread\_atfork() для инициализации PRNG с помощью pid, времени и некоторых данных стека.466- bpo-8865: Одновременный вызов select.poll.poll() теперь возбуждает исключение RuntimeError. Исправление от Christian Schubert.467- bpo-13461: Исправлен сбой в методе TextIOWrapper.tell на 64-разрядных платформах. Патч от Yogesh Chaudhari.468- bpo-18777: Модуль ssl теперь использует новый API CRYPTO\_THREADID из OpenSSL 1.0.0+ вместо устаревшей функции обратного вызова CRYPTO id.469- bpo-18768: Исправлена строка документации RAND\_edg(). Исправление от Vajrasky Kok.470- bpo-18178: Исправлен ctypes на BSD. dlmalloc.c компилировался дважды, что нарушало слабые символы malloc.471- bpo-18709: Исправлен CVE-2013-4238. Модуль SSL теперь корректно обрабатывает нулевые байты внутри subjectAltName. Ранее модуль использовал функцию GENERAL\_NAME\_print() из OpenSSL для получения строкового представления строк ASN.1 для `rfc822Name` (email), `dNSName` (DNS) и `uniformResourceIdentifier` (URI).472- bpo-18756: Улучшено сообщение об ошибке в os.urandom(), когда сбой вызван не отсутствием /dev/urandom, а чем-то другим (например, исчерпанием лимита файловых дескрипторов).473- bpo-18405: Улучшена энтропия crypt.mksalt().474- bpo-19151: Исправлены строка документации и использование \_get\_supported\_file\_loaders() для отражения 2-кортежей.475- bpo-18676: Заменено 'positive' на 'non-negative' в строках документации put и get модуля queue.py и в сообщениях ValueError. Исправление от Zhongyue Luo.476- bpo-18681: Исправлена ошибка NameError в imp.reload() (замечено Weizhao Li).477- bpo-8112: Сервер DocXMLRPCServer из xlmrpc.server больше не возбуждает ошибку, если методы имеют аннотации; теперь он корректно отображает аннотации.478- bpo-17998: Исправлена внутренняя ошибка в движке регулярных выражений.479- bpo-17557: Исправлена работа os.getgroups() с изменённым поведением getgroups(2) на OS X 10.8. Оригинальный патч от Mateusz Lenik.480- bpo-18599: Исправлен атрибут name объекта \_sha1.sha1(). Теперь он возвращает «SHA1» вместо «SHA».481- bpo-18561: В ctypes в \_build\_callargs() пропускается name, если name равен NULL.482- bpo-18559: Исправлена ошибка разыменования нулевого указателя в модуле \_pickle.483- bpo-18556: Проверка возвращаемого значения вызова PyUnicode\_AsWideChar() в U\_set() модуля ctypes.484- bpo-18549: Удалён мёртвый код в socket\_ntohl().485- bpo-18514: Исправлен недостижимый вызов Py\_DECREF() в PyCData\_FromBaseObj().486- bpo-18513: Исправлено поведение cmath.rect в отношении знаковых нулей на OS X 10.8+ с gcc.487- bpo-18480: В расширение \_elementtree добавлен недостающий вызов PyType\_Ready.488- bpo-17778: Исправлено обнаружение тестов для test\_multiprocessing. (Патч от Zachary Ware.)489- bpo-18431: Новый парсер заголовков email теперь декодирует RFC2047-закодированные слова в структурированных заголовках.490- bpo-18432: Метод queue модуля sched некорректно возвращал итератор вместо списка.491- bpo-18044: Новый парсер заголовков email неправильно разбирал закодированные слова, когда закодированный символ следовал сразу за символом «?» после CTE-символа, что приводило к ошибке декодирования. Теперь они декодируются правильно.492- bpo-18101: Tcl.split() теперь обрабатывает строки, вложенные в кортеж, так же, как и байтовые строки.493- bpo-17198: Исправлена NameError в модуле dbm. Патч от Valentina Mukhamedzhanova.494- bpo-18013: Исправлен cgi.FieldStorage для разбора образца формы W3C.495- bpo-18347: HTML-сериализатор ElementTree теперь сохраняет регистр закрывающих тегов.496- bpo-17261: Обеспечено использование правильного адреса прокси-объектами multiprocessing.497- bpo-18343: faulthandler.register() теперь сохраняет предыдущий обработчик сигнала при повторном вызове функции, так что faulthandler.unregister() корректно восстанавливает исходный обработчик сигнала.498- bpo-17097: В multiprocessing добавлена обработка EINTR.499- bpo-18339: Отрицательные целые ключи в словаре unpickler.memo больше не вызывают ошибку сегментации в C-расширении \_pickle.500- bpo-18224: Удалён скрипт pydoc из создаваемого виртуального окружения, так как он вызывает проблемы в Windows и не добавляет ценности по сравнению с python -m pydoc ...501- bpo-18155: Модуль csv теперь корректно обрабатывает CSV-файлы, использующие символ-разделитель, имеющий специальное значение в регулярных выражениях, вместо возбуждения исключения.502- bpo-14360: encode\_quopri теперь можно успешно использовать в качестве кодировщика при создании объекта MIMEApplication.503- bpo-18135: ssl.SSLSocket.write() теперь вызывает OverflowError, если входная строка длиннее 2 гигабайт, а ssl.SSLContext.load\_cert\_chain() вызывает ValueError, если пароль длиннее 2 гигабайт. Модуль ssl не поддерживает частичную запись.504- bpo-18248: Исправлена сборка libffi на AIX.505- bpo-18259: Объявлена sethostname в socketmodule.c для AIX.506- bpo-18167: cgi.FieldStorage больше не выходит из строя при обработке multipart/form-data, когда rn появляется в конце 65535 байт без других символов новой строки.507- подпроцесс: Предотвращено возможное двойное закрытие файловых дескрипторов родительского канала при возникновении ошибки в exec подпроцесса. Предотвращено регулярное многократное закрытие файлового дескриптора /dev/null, когда один из stdin, stdout или stderr был установлен в DEVNULL.508- bpo-16102: Восстановлена работа uuid.\_netbios\_getnode() в Python 3.509- bpo-18109: os.uname() теперь декодирует поля из кодировки локали, а socket.gethostname() декодирует имя хоста из кодировки локали, вместо использования кодировки UTF-8 в строгом режиме.510- bpo-17403: urllib.parse.robotparser нормализует URL перед добавлением в ruleline. Это помогает в обработке некоторых типов недопустимых URL консервативным образом.511- bpo-18025: Исправлен segfault в io.BufferedIOBase.readinto(), когда read() необработанного потока данных возвращает больше байт, чем запрошено.512- bpo-18011: Как и предполагалось изначально, base64.b32decode() теперь вызывает binascii.Error, если во входной строке присутствуют символы, не входящие в алфавит base32, вместо TypeError.513- bpo-13772: Восстановлено определение каталога для целей в `os.symlink` в Windows, которое было временно удалено в Python 3.2.3 из-за неполной реализации. Теперь реализация работает, даже если симлинк создаётся в месте, отличном от текущего каталога.514- bpo-16986: ElementTree теперь корректно разбирает строковый ввод не только когда внутренняя кодировка XML UTF-8 или US-ASCII.515- bpo-17812: Исправлена квадратичная сложность base64.b32encode().516- bpo-17980: Исправлена возможная атака на ssl.match\_hostname() через отказ в обслуживании с использованием сертификатов с большим количеством подстановочных знаков (CVE-2013-2099).517- bpo-17981: Закрытие сокета при ошибке в SysLogHandler.518- Исправлены опечатки в модуле multiprocessing.519- bpo-17754: Сделать ctypes.util.find\_library() независимым от локали.520- bpo-17968: Исправлена утечка памяти в os.listxattr().521- bpo-17269: Обход проблемы с падением socket.getaddrinfo на MacOS X при порте None или "0" и флаге AI\_NUMERICSERV.522- bpo-18698: Обеспечено, что imp.reload() возвращает модуль из sys.modules.523- bpo-18080: При сборке модуля расширения C на OS X, если компилятор переопределён переменной окружения CC, используется новый компилятор по умолчанию для компоновки, если LDSHARED также не переопределён. Это восстанавливает поведение Distutils, введённое в 3.2.3 и случайно утраченное в 3.3.0.524- bpo-18113: Исправлена утечка счётчика ссылок в методе set\_userptr() модуля curses.panel. Сообщено Atsuo Ishimoto.525- bpo-18849: Исправлена ошибка tempfile, специфичная для Windows, когда коллизия с существующим каталогом приводила к сбою mkstemp и связанных API вместо повторной попытки. Сообщение и исправление от Vlad Shcherbina.526- bpo-19400: Предотвращение сбоев сборки модулей расширения с Xcode 5 на OS X 10.8+ при использовании универсальной сборки Python, включающей архитектуру PPC, например, при использовании 32-битного установщика python.org.527528### C API529530- bpo-18351: Исправлены различные проблемы вспомогательной функции в importlib, используемой PyImport\_ExecCodeModuleWithPathnames() (и, как следствие, PyImport\_ExecCodeModule() и PyImport\_ExecCodeModuleEx()).531532### IDLE533534- bpo-18873: IDLE теперь определяет кодировку исходного кода Python только в строках комментариев.535- bpo-18988: Клавиша Tab теперь работает, когда слово уже автодополнено.536- bpo-18489: Добавлены тесты для SearchEngine. Оригинальный патч от Phil Webster.537- bpo-18429: Команды «Форматировать» / «Форматировать абзац» теперь работают, когда выбраны блоки комментариев. Как и с текстовыми блоками, это лучше всего работает, когда выделение включает только полные строки.538- bpo-18226: Добавлены строки документации и модульные тесты для FormatParagraph.py. Оригинальные патчи от Todd Rovito и Phil Webster.539- bpo-18279: Команда «Удалить завершающие пробелы» (Strip trailing whitespace) больше не помечает файл как изменённый, если он не был изменён. Это исправление последовало за добавлением тестового файла, первоначально написанного Phil Webster (основная цель задачи).540- bpo-7136: В меню File в IDLE пункт «New Window» переименован в «New File». Патч от Tal Einat, Roget Serwy и Todd Rovito.541- Удалены неиспользуемые импорты из imp.542- bpo-18196: Избежать вывода ложных трассировок SystemExit.543- bpo-5492: Избежать трассировки при выходе из IDLE из-за состояния гонки.544- bpo-17511: Диалог поиска IDLE теперь остаётся открытым после нажатия «Find Next». Оригинальный патч от Sarah K.545- bpo-18055: IDLE переведён с модуля imp на importlib.546- bpo-15392: Создан фреймворк для модульных тестов IDLE. Первоначальный патч от Rajagopalasarma Jayakrishnan. См. Lib/idlelib/idle\_test/README.txt, чтобы узнать, как запускать тесты IDLE.547- bpo-14146: Подсвечивать строку исходного кода при отладке в Windows.548- bpo-17532: На OS X меню Options (Параметры) в IDLE теперь отображается всегда. Патч от Guilherme Simões.549550### Тесты551552- bpo-14407: Исправлено обнаружение тестов unittest в test\_concurrent\_futures.553- bpo-18919: Объединены и расширены тесты для аудиомодулей: aifc, sunau и wave.554- bpo-18952: Исправление регрессии в загрузке вспомогательных данных, возникшей при преобразовании test.support в пакет. Регрессию заметил Zachary Ware.555- bpo-12037: Исправлен test\_email для настольной версии Windows.556- bpo-15507: test\_send\_signal из test\_subprocess мог завершаться ошибкой, если тестовый раннер запускался в окружении, где процесс наследовал настройку игнорирования SIGINT. Теперь обработчик SIGINT восстанавливается до желаемого, вызывающего KeyboardInterrupt, во время этого теста.557- bpo-18792: По возможности используется «127.0.0.1» или «::1» вместо «localhost», поскольку на последних версиях Windows «localhost» проходит через DNS-запрос.558- bpo-1666318: Добавлен тест, проверяющий, что shutil.copytree() сохраняет права доступа к каталогу. Патч от Catherine Devlin.559- bpo-18357: добавлены тесты для разности множеств dictview. Патч от Fraser Tweedale.560- bpo-18273: переместить тесты из Lib/test/json\_tests в Lib/test/test\_json и сделать их обнаруживаемыми с помощью unittest. Патч от Zachary Ware.561- Исправлен тестовый случай fcntl на KFreeBSD, Debian #708653 (Petr Salinger).562- bpo-18396: Исправлен ложный сбой теста в test\_signal на Windows при включенном faulthandler (Патч от Jeremy Kloth)563- bpo-17046: Исправлен сломанный тест test\_executable\_without\_cwd в test\_subprocess.564- bpo-15415: Добавлены новые контекстные менеджеры temp\_dir() и change\_cwd() в test.support, и выполнен рефакторинг temp\_cwd() для их использования. Патч от Chris Jerdonek.565- bpo-15494: test.support теперь является пакетом, а не модулем (начальный патч от Indra Talip)566- bpo-17944: test\_zipfile теперь обнаруживаем и использует наследование для генерации тестов для разных типов сжатия. Исправлена ошибка с пропуском некоторых тестов из-за использования исчерпанных итераторов.567- bpo-18266: test\_largefile теперь работает с обнаружением тестов unittest и поддерживает запуск только выбранных тестов. Патч от Zachary Ware.568- bpo-17767: test\_locale теперь работает с обнаружением тестов unittest. Оригинальный патч от Zachary Ware.569- bpo-18375: Подразумевать –randomize, когда –randseed используется для запуска тестового набора.570- bpo-11185: Исправлен test\_wait4 в AIX. Патч от Sébastien Sablé.571- bpo-17691: test\_univnewlines теперь работает с обнаружением тестов unittest. Патч от Zachary Ware.572- bpo-18094: test\_uuid больше не сообщает о пропущенных тестах как о пройденных.573- bpo-11995: test\_pydoc больше не импортирует все модули из sys.path.574575### Документация576577- bpo-19392: Документировано, что [`imp.reload()`](https://python-all.ru/3.3/library/imp.html#imp.reload) теперь также требует, чтобы `__loader__` был установлен на перезагружаемом модуле.578- bpo-18758: Исправлены и улучшены перекрёстные ссылки.579- bpo-18743: Исправлены ссылки на несуществующий модуль «StringIO».580- bpo-18783: Удалены упоминания типа long из Python в документирующих строках, сообщениях об ошибках и комментариях.581- bpo-17701: Улучшена документация strftime.582- bpo-18440: Уточнено, что [`hash()`](https://python-all.ru/3.3/library/functions.html#hash) может усекать значение, возвращаемое пользовательским методом `__hash__()` объекта.583- bpo-17953: Упомянуто, что не следует заменять sys.modules, и удаление ключевых элементов вызовет недовольство Python.584- bpo-17844: Добавлены ссылки на кодировщики и декодировщики для кодеков bytes-to-bytes.585- bpo-14097: Улучшена страница «introduction» в руководстве.586- bpo-17977: Исправлена документация значения по умолчанию для аргумента cadefault в urllib.request.urlopen() – теперь она соответствует коду.587588### Инструменты/Демонстрации589590- bpo-18873: 2to3 и скрипт findnocoding.py теперь определяют кодировку исходного кода Python только в строках комментариев.591- bpo-18817: Исправлено предупреждение о ресурсах в демонстрационном файле Lib/aifc.py.592- bpo-18439: Сделать patchcheck работоспособным в Windows для ACKS, NEWS.593- bpo-18448: Исправить опечатку в Tools/demo/eiffel.py.594- bpo-18457: Исправлено сохранение формул и комплексных чисел в Tools/demo/ss1.py.595- bpo-18449: Сделать Tools/demo/ss1.py снова работоспособным на Python 3. Исправление предоставлено Févry Thibault.596- bpo-15239: Сделать mkstringprep.py снова работоспособным на Python 3.597- bpo-12990: «Python Launcher» в OSX не мог запускать скрипты Python, пути к которым содержат широкие символы.598599### Сборка600601- bpo-19356: Избегать использования переменной C с именем «\_self» – это зарезервированное слово в некоторых компиляторах C.602- bpo-19130: Исправлен PCbuild/readme.txt, Python 3.3 и 3.4 требуют VS 2010.603- bpo-16067: Добавлено описание в MSI-файл для замены временного имени установщика.604- bpo-18256: Исправление компиляции для новых выпусков AIX. Патч от David Edelsohn.605- bpo-15172: Документировано требование NASM 2.10+ для сборки OpenSSL 1.0.1 на Windows.606- bpo-1584: Добавлены опции для переопределения путей поиска по умолчанию для Tcl и Tk при сборке \_tkinter.607- bpo-15663: Tcl/Tk 8.5.15 теперь включен в установщик для OS X 10.6+ 64-разрядной/32-разрядной версии для 10.6+. Больше не требуется устанавливать стороннюю версию Tcl/Tk 8.5 для обхода проблем в версии Tcl/Tk 8.5, поставляемой Apple в OS X 10.6 и более поздних выпусках.608- bpo-19019: Изменён сценарий сборки установщика OS X: теперь для специальных параметров сборки используются CFLAGS вместо OPT. При установке OPT некоторые специфичные для компилятора параметры, такие как -fwrapv, переопределялись и не использовались, что могло приводить к сломанным интерпретаторам при сборке с помощью clang.609610## Python 3.3.2 final611612*Дата выпуска: 13 мая 2013 г.*613614### Ядро и встроенные модули615616- bpo-17237: Исправлен сбой в декодере ASCII на архитектуре m68k.617- bpo-17408: Избегать использования устаревшего экземпляра модуля copyreg при завершении работы интерпретатора и его повторном запуске.618- bpo-17863: В интерактивной консоли не зацикливаться, если не удаётся получить кодировку из stdin.619- bpo-17867: Вызывать ImportError, если \_\_import\_\_ не найден в \_\_builtins\_\_.620- bpo-17857: Предотвращение ошибок сборки с версиями sqlite3 ниже 3.5.0, например, поставлявшимися с CentOS 5 и Mac OS X 10.4.621- bpo-17413: В колбэки sys.settrace для элемента 'value' кортежа arg передавалась строка вместо экземпляра исключения, если исключение возникло в коде на C; теперь всегда передаётся экземпляр исключения.622- bpo-17782: Исправлено неопределённое поведение на платформах, где элемент «tv\_nsec» структуры `structtimespec` не является типом C long.623- bpo-17715: Исправлена ошибка сегментации при возбуждении исключения в методе \_\_trunc\_\_.624- bpo-16447: Исправлена потенциальная ошибка сегментации при установке \_\_name\_\_ у класса.625- bpo-17669: Исправлено падение, связанное с финализацией генераторов, использующих yield from.626- bpo-17619: Обеспечена корректная проверка Ctrl-C в функции input() в Windows.627- bpo-17610: Устранена зависимость от нестандартного поведения функции qsort() языка C.628- bpo-17357: Добавлен отсутствующий вывод подробностей при использовании -v/-vv.629630### Библиотека631632- bpo-17606: Исправлена поддержка закодированных байтовых строк в методах XMLGenerator characters() и ignorableWhitespace(). Исходный патч от Sebastian Ortiz Vasquez.633- bpo-17732: Игнорировать параметры distutils.cfg, относящиеся к путям установки, если активна виртуальная среда.634- bpo-1159051: Откат исправления для обработки поврежденных gzip-файлов, которое нарушило обратную совместимость.635- bpo-17915: Исправлена совместимость xml.sax с файловыми объектами, возвращаемыми codecs.open().636- bpo-16601: Повторный запуск итерации по tarfile больше не продолжается с того места, где остановился. Патч от Michael Birtwell.637- bpo-17289: Модуль readline теперь лучше уживается с внешними модулями или приложениями, изменяющими глобальную переменную rl\_completer\_word\_break\_characters. Начальный патч от Bradley Froehle.638- bpo-12181: Модуль select: исправлено определение структуры kevent на 64-битных платформах OpenBSD. Патч от Federico Schwindt.639- bpo-14173: Предотвращение аварийного завершения при чтении обработчика сигнала во время завершения работы интерпретатора.640- bpo-16316: mimetypes теперь распознает расширения .xz и .txz (.tar.xz).641- bpo-15902: Исправление imp.load\_module(), принимающего None в качестве файла при загрузке модуля расширения.642- bpo-17802: Исправлена ошибка UnboundLocalError в html.parser. Начальные тесты от Thomas Barlow.643- bpo-15535: Исправлены сериализации namedtuple, которые захватывали OrderedDict вместо просто базового кортежа.644- bpo-17192: Восстановлен патч для [Issue #11729](https://python-all.ru/3.3/whatsnew/changelog.html), который был пропущен в 3.3.1 при обновлении встроенной версии libffi, используемой ctypes. Обновлены многие файлы libffi, которые были пропущены при обновлении до libffi-3.0.13 в 3.3.1.645- bpo-17358: Модули, загруженные через imp.load\_source() и load\_compiled() (а также через load\_module() для расширений), теперь имеют больше шансов корректно работать при перезагрузке.646- bpo-17353: Plistlib генерировал пустые теги данных при глубоко вложенных структурах данных.647- bpo-11714: для гарантии освобождения переменной условия семафором используются операторы 'with'. Оригинальный патч от Thomas Rachel.648- bpo-17795: отменено изменение, нарушающее обратную совместимость, в SysLogHandler, использовавшем доменные сокеты Unix.649- bpo-17555: исправлен ForkAwareThreadLock, чтобы размер реестра после разветвления не рос экспоненциально в зависимости от поколения процесса.650- bpo-17707: Метод multiprocessing.Queue.get() не блокируется при коротких таймаутах.651- Задача #17720: Исправлена реализация pickle.Unpickler на Python для корректной обработки кода операции APPENDS при его использовании на объектах, не являющихся списками.652- bpo-17012: shutil.which() больше не использует переменную окружения PATH в качестве запасного варианта, если указан пустой аргумент path. Патч от Serhiy Storchaka.653- bpo-17710: исправлен pickle, вызывавший SystemError при некорректном вводе.654- bpo-17341: в сообщения об ошибках re о недопустимых именах групп теперь включается некорректное имя.655- bpo-17702: os.environ теперь возбуждает KeyError с исходным именем переменной окружения (str в UNIX) вместо использования закодированного имени (bytes в UNIX).656- bpo-16163: версия pkgutil.iter\_importers на основе importlib теперь работает с подмодулями. Начальный патч от Berker Peksag.657- bpo-16804: исправлена ошибка в модуле 'site', из-за которой запуск 'python -S\\n-m site' неправильно вызывал исключение.658- bpo-17016: устранены возможные переполнения указателей и целочисленные переполнения в модуле re. Патч от Nickolai Zeldovich.659- bpo-16658: добавлен отсутствующий return в HTTPConnection.send(). Патч от Jeff Knupp.660- bpo-14971: обнаружение тестов unittest больше не путается, когда функция имеет \_\_name\_\_, отличное от имени в словаре класса TestCase.661- bpo-17678: Исправлено DeprecationWarning в http/cookiejar.py путем замены использования get\_origin\_req\_host() на origin\_req\_host.662- bpo-17666: исправлено чтение gzip-файлов с дополнительным полем.663- bpo-17502: Обработка значений DEFAULT в mock side\_effect, который возвращает итератор. Патч от Michael Foord.664- bpo-17572: Предотвращение цепочек исключений при передаче неверных директив в time.strptime(). Первоначальный патч от Claudiu Popa.665- bpo-17435: Метод \_\_init\_\_ класса threading.Timer больше не использует изменяемые значения по умолчанию для параметров args и kwargs.666- bpo-17526: Исправлен IndexError, возникающий при передаче кода без имени файла в inspect.findsource(). Начальный патч от Tyler Doyle.667- bpo-16550: Обновлены описания кодов операций в pickletools для использования беззнаковых целых чисел, где это уместно. Первоначальный патч от Serhiy Storchaka.668669### IDLE670671- bpo-17838: Разрешено переназначение sys.stdin.672- bpo-13495: Избежать двукратной загрузки делегатора цветов в IDLE.673- bpo-17798: Разрешить IDLE редактировать новые файлы, если они указаны в командной строке.674- bpo-14735: Обновлена документация IDLE: убрано упоминание «Control-z on Windows».675- bpo-17585: Исправлена регрессия в IDLE. Теперь IDLE закрывается при вызове exit() или quit().676- bpo-17657: В диалоге «О программе» IDLE теперь отображается полная версия Tk. Патч от Todd Rovito.677- bpo-17613: Предотвращение вывода трассировки при удалении цветовой подсветки синтаксиса в IDLE.678- bpo-1207589: Патч для обеспечения обратной совместимости контекстного меню в IDLE.679- bpo-16887: IDLE теперь корректно обрабатывает нажатие «Отмена» в диалоговом окне «Табуляция/Удаление табуляции».680- bpo-17625: В IDLE диалог замены теперь закрывается после использования.681- bpo-14254: IDLE теперь корректно обрабатывает readline при перезапусках оболочки.682- bpo-17614: IDLE теперь не вызывает исключение при быстром закрытии файла.683- bpo-6698: IDLE теперь открывает только окно редактора, если настроен соответствующим образом.684- bpo-8900: Использование сочетаний клавиш в IDLE для открытия файла больше не вызывает исключение.685- bpo-6649: Исправлено отсутствие кода завершения в IDLE. Патч от Guilherme Polo.686687### Тесты688689- bpo-17833: Исправлены сбои test\_gdb на машинах, где доступны отладочные символы для glibc (наблюдалось на PPC64 Linux).690- bpo-7855: Добавлены тесты для ctypes/winreg для проблем, найденных в IronPython. Начальный патч от Dino Viehland.691- bpo-17712: Исправлены сбои test\_gdb на Ubuntu 13.04.692- bpo-17835: Исправлен test\_io, когда размер буфера канала ОС по умолчанию больше одного миллиона байт.693- bpo-17065: Использовать уникальный для процесса ключ в тестах winreg, чтобы избежать ошибок при параллельном запуске теста несколько раз (например, на хосте buildbot).694- bpo-12820: Добавить тесты для модуля xml.dom.minicompat. Патч от John Chandler и Phil Connell.695- bpo-17790: test\_set теперь работает с обнаружением тестов unittest. Патч от Zachary Ware.696- bpo-17789: test\_random теперь работает с обнаружением тестов unittest. Патч от Zachary Ware.697- bpo-17779: test\_osx\_env теперь работает с обнаружением тестов unittest. Патч от Zachary Ware.698- bpo-17766: test\_iterlen теперь работает с обнаружением тестов unittest. Патч от Zachary Ware.699- bpo-17690: test\_time теперь работает с обнаружением тестов unittest. Патч от Zachary Ware.700- bpo-17692: test\_sqlite теперь работает с обнаружением тестов unittest. Патч от Zachary Ware.701- bpo-17843: Удален тестовый файл данных bz2, который вызывал ложные срабатывания антивирусного предупреждения в некоторых антивирусных программах.702703### Документация704705- bpo-15940: Уточнено влияние локали на функции времени.706- bpo-6696: Добавлена документация для объектов Profile и улучшена документация profile/cProfile. Патч от Tom Pinckney.707- bpo-17915: Исправлена совместимость xml.sax с файловыми объектами, возвращаемыми codecs.open().708709### Сборка710711- bpo-17547: В configure явно передаётся -Wformat для GCC 4.8.712- bpo-17962: Сборка с OpenSSL 1.0.1e в Windows.713714## Python 3.3.1 final715716*Дата выпуска: 07 апреля 2013 г.*717718### Сборка719720- bpo-17550: Исправлен флаг конфигурации –enable-profiling.721722### IDLE723724- bpo-17625: В IDLE диалог замены теперь закрывается после использования.725726## Python 3.3.1 release candidate 1727728*Дата выпуска: 24 марта 2013 г.*729730### Ядро и встроенные модули731732- bpo-17328: Исправлена возможная утечка ссылок в dict.setdefault.733- bpo-17223: Исправлен PyUnicode\_FromUnicode() для строки из 1 символа вне диапазона U+0000-U+10ffff.734- bpo-1692335: Перенесено присваивание начальных аргументов в BaseException.\_\_new\_\_ для упрощения сериализации простых подклассов.735- bpo-17275: Исправлено имя класса в сообщениях об ошибках инициализации C-версии BufferedWriter и BufferedRandom.736- bpo-7963: Исправлено вводящее в заблуждение сообщение об ошибке, которое выдавалось при вызове объекта без аргументов.737- bpo-5308: Возбуждается ValueError при маршалинге слишком большого объекта (последовательность размером \>= 2\*\*31), вместо создания недопустимых данных marshal.738- bpo-12983: Байтовые литералы с недопустимой escape-последовательностью \\x теперь вызывают SyntaxError и полную трассировку, включающую номер строки.739- bpo-17173: Удалено использование зависящих от локали функций C (isalpha() и т.д.) в интерпретаторе.740- bpo-17137: При изменении размера строки Unicode внутренний формат строки широких символов (wstr) теперь очищается.741- bpo-17043: Декодер unicode-internal больше не читает за пределами входного буфера.742- bpo-17098: Все модули теперь имеют установленный атрибут \_\_loader\_\_, даже если они существовали до начальной загрузки importlib.743- bpo-16979: Исправлены ошибки обработки ошибок в декодере unicode-escape-decode.744- bpo-10156: На этапе инициализации интерпретатора глобальные объекты Unicode теперь инициализируются динамически по мере необходимости.745- bpo-16980: Исправлена обработка экранированных не-ASCII байтов в декодере unicode-escape-decode.746- bpo-16975: Исправлена ошибка обработки ошибок в декодере escape-decode для байтов.747- bpo-14850: Теперь декодер charmap обрабатывает U+FFFE как «неопределённое сопоставление» в любом отображении, а не только в строке.748- bpo-16730: importlib.machinery.FileFinder больше не возбуждает исключение при попытке заполнить свой кеш и обнаруживает, что каталог недоступен для чтения или превратился в файл. Сообщено и диагностировано Дэвидом Притчардом.749- bpo-16906: Исправлена логическая ошибка, которая препятствовала очистке большинства статических строк.750- bpo-11461: Исправлен инкрементальный декодер UTF-16. Оригинальный патч от Amaury Forgeot d’Arc.751- bpo-16856: Исправлена ошибка сегментации, возникавшая при вызове repr() для словаря с ключом, repr которого возбуждает исключение.752- bpo-16367: Исправлена работа FileIO.readall() в Windows для файлов размером более 2 ГБ.753- bpo-16455: На FreeBSD и Solaris, если установлена локаль C, для декодирования аргументов командной строки теперь используется кодек ASCII/surrogateescape вместо кодировки локали. Это изменение устраняет несоответствия с os.fsencode() и os.fsdecode(), поскольку эти операционные системы объявляют кодировку локали ASCII, но на практике используется ISO-8859-1.754- bpo-16761: вызов int() с аргументом base теперь вызывает TypeError.755- bpo-16759: при получении значения REG\_DWORD функция Reg2Py теперь поддерживает весь диапазон DWORD (unsigned long). Это исправляет такие функции, как winreg.QueryValueEx, которые могли возвращать усечённые значения.756- bpo-14420: при передаче значения REG\_DWORD функция Py2Reg теперь поддерживает весь диапазон DWORD (unsigned long). Исправляет OverflowError в winreg.SetValueEx.757- bpo-16597: в буферизованном и текстовом вводе-выводе теперь вызывается close() для нижележащего потока данных, если вызов flush() завершается неудачей.758- bpo-16722: в конструкторе bytes() теперь сначала вызывается \_\_bytes\_\_ для аргумента, а только потом \_\_index\_\_.759- bpo-16602: когда цель слабой ссылки была частью длинной цепочки освобождения, объект мог оставаться достижимым через свою слабую ссылку, даже если его счётчик ссылок упал до нуля.760- bpo-16416: на Mac OS X системные данные теперь всегда кодируются/декодируются в/из UTF-8/surrogateescape (вместо кодировки локали, которая может быть ASCII, если не задана переменная окружения локали), чтобы избежать несоответствий с функциями os.fsencode() и os.fsdecode(), которые уже используют UTF-8/surrogateescape.761- bpo-16588: подавление предупреждений unused-but-set в Python/thread\_pthread.762- bpo-16546: исправление: аргумент ast.YieldFrom теперь обязателен.763- bpo-16514: исправление регрессии, приводившей к traceback, когда sys.path\[0\] равен None (и вообще любому типу, не являющемуся строкой или байтами).764- bpo-16306: исправлены множественные сообщения об ошибках при передаче неизвестных параметров командной строки интерпретатору. Патч от Hieu Nguyen.765- bpo-16215: исправление потенциального двойного освобождения памяти в str.replace(). Патч от Serhiy Storchaka.766- bpo-16453: исправлена проверка равенства мёртвых слабых ссылок.767- bpo-9535: исправлено сохранение ожидающих сигналов, которые были получены, но ещё не обработаны Python, чтобы они не сохранялись после os.fork() в дочернем процессе.768- bpo-15001: исправление segfault при «del sys.modules\['\_\_main\_\_'\]». Патч от Victor Stinner.769- bpo-8271: декодер utf-8 теперь выводит правильное количество символов U+FFFD при использовании обработчика ошибок 'replace' на некорректных последовательностях utf-8. Патч от Serhiy Storchaka, тесты от Ezio Melotti.770- bpo-5765: применение жёсткого ограничения рекурсии в компиляторе вместо переполнения стека и аварийного завершения. Первоначальный патч от Andrea Griffini.771- bpo-16402: при взятии среза диапазона исправлено затенение исключений из \_\_index\_\_.772- bpo-16336: исправление проверки входных данных в обработчике ошибок surrogatepass. Патч от Serhiy Storchaka.773- bpo-8401: присваивание целого числа срезу bytearray (например, b\[3:4\] = 5) теперь вызывает ошибку.774- Исправлены сегфолты при установке \_\_qualname\_\_ на встроенных типах и при попытке удалить его на любом типе.775- bpo-16345: Исправлена бесконечная петля, когда `fromkeys` у подкласса dict получал непустой словарь из конструктора.776- bpo-16271: Исправлены странные ошибки, возникавшие из-за появления \_\_qualname\_\_ в \_\_dict\_\_ класса и на type.777- bpo-6074: Гарантируется, что кэшированные файлы байт-кода всегда могут быть обновлены пользователем, который их создал, даже если исходный файл доступен только для чтения.778- bpo-14783: Улучшена строка документации int() и изменены строки документации для str(), range() и slice() на многострочные сигнатуры.779- bpo-16160: Поддержка подклассов теперь работает для types.SimpleNamespace.780- bpo-15379: Исправлена передача символов не из BMP в виде целых чисел для декодера charmap (уже работает как строки Unicode). Патч от Serhiy Storchaka.781- bpo-15144: Исправлено возможное целочисленное переполнение при обработке указателей как целых чисел за счёт использования `Py_uintptr_t` вместо `size_t`. Патч от Serhiy Storchaka.782- bpo-15965: Явное приведение `AT_FDCWD` к (int). Требуется на Solaris 10 (где `AT_FDCWD` определяется как `0xffd19553`), безвредно на других платформах.783- bpo-15839: Преобразование SystemErrors в [`super()`](https://python-all.ru/3.3/library/functions.html#super) в RuntimeErrors.784- bpo-15846: Исправлен SystemError, возникавший при использовании [`ast.parse()`](https://python-all.ru/3.3/library/ast.html#ast.parse) в обработчике исключений для кода с синтаксическими ошибками.785- bpo-15801: Обеспечить, чтобы отображения, передаваемые в форматирование '%', были индексируемыми.786- bpo-15111: Исправлено поведение \_\_import\_\_: теперь исключение ImportError корректно распространяется, когда модуль, импортированный как побочный эффект fromlist, пытается импортировать недоступный модуль.787788### Библиотека789790- bpo-17540: Добавлена поддержка стиля в конфигурацию форматтера через словарь.791- bpo-17536: В список браузеров webbrowser добавлены: www-browser, x-www-browser, iceweasel, iceape.792- bpo-17488: Значение по умолчанию параметра bufsize в subprocess.Popen изменено с небуферизированного (0) на буферизированное (-1), чтобы соответствовать поведению, ожидаемому существующим кодом, и поведению модуля подпроцессов в Python 2, чтобы избежать внесения трудно отслеживаемых ошибок.793- bpo-17521: Исправлена ситуация, когда логгер не включался после двух вызовов fileConfig().794- bpo-17508: Исправлена конфигурация MemoryHandler в dictConfig(), когда целевой обработчик не был настроен первым.795- bpo-17209: curses.window.get\_wch() теперь корректно обрабатывает KeyboardInterrupt (CTRL+c).796- bpo-5713: smtplib теперь обрабатывает коды ошибки 421 (закрытие соединения) при отправке почты, закрывая сокет и сообщая код ошибки 421 через исключение, соответствующее команде, получившей ответ с ошибкой.797- bpo-17192: Обновлена libffi модуля ctypes до версии 3.0.13. Это, в частности, исправляет проблему выравнивания стека на x86 и проблемы на некоторых более новых платформах.798- bpo-8862: Исправлена очистка curses, когда getkey прерывается сигналом.799- bpo-17443: imaplib.IMAP4\_stream использовал небуферизированный ввод-вывод по умолчанию в модуле подпроцессов, но код IMAP предполагает буферизированный ввод-вывод. В Python 2 это работало случайно. Теперь IMAP4\_stream явно использует буферизированный ввод-вывод.800- bpo-17476: Исправлена регрессия относительно Python 2 в недокументированном pydoc 'allmethods'; отсутствовали несвязанные методы класса.801- bpo-16880: Больше не предполагается, что \_imp.load\_dynamic() определён в модуле imp.802- bpo-16389: Исправлена регрессия производительности относительно Python 3.1 в кэшировании скомпилированных регулярных выражений.803- bpo-17431: Исправлен пропущенный импорт BytesFeedParser в email.parser.804- bpo-1285086: Устранён хак с подсчётом ссылок и ускорены urllib.parse.unquote() и urllib.parse.unquote\_to\_bytes().805- bpo-17368: Исправлена ошибка на единицу в декодере JSON Python, которая приводила к сбою при декодировании пустых литералов объектов, когда был указан object\_pairs\_hook.806- bpo-14645: Классы генератора email теперь создают вывод, используя указанный linesep везде. Ранее, если пролог, эпилог или тело были сохранены с другим linesep, использовался именно он. Это исправление устраняет проблему несоответствия RFC в smtplib.send\_message.807- bpo-17278: Исправлен сбой в heapq.heappush() и heapq.heappop(), когда список одновременно изменяет размер.808- bpo-16962: Используется getdents64 вместо устаревшего системного вызова getdents в модуле подпроцесса на Linux.809- bpo-17018: Process.join() теперь повторяет попытку, если os.waitpid() завершается с EINTR.810- bpo-17223: Модуль array: Исправлена ошибка падения при преобразовании массива, содержащего недопустимые символы (вне диапазона \[U+0000; U+10ffff\]), в Unicode: repr(array), str(array) и array.tounicode(). Патч написан Manuel Jacob.811- bpo-14720: sqlite3: Корректное преобразование микросекунд datetime. Патч от Lowe Thiderman.812- bpo-17225: Декодер JSON теперь нумерует столбцы в первой строке, начиная с 1, как и в остальных строках.813- bpo-13700: Исправлена обработка байтов/строк в аутентификации imaplib, когда указан authobject.814- bpo-13153: Функции Tkinter теперь вызывают TclError вместо ValueError, если строковый аргумент содержит символ вне BMP.815- bpo-9669: Защита модуля re от бесконечных циклов при сопоставлении с нулевой длиной в нежадном повторении. Патч от Matthew Barnett.816- bpo-13169: Максимальное число повторений в регулярном выражении увеличено с 65534 до 2147483647 (на 32-разрядной платформе) или 4294967294 (на 64-разрядной).817- bpo-17143: Исправлен пропущенный импорт в модуле trace. Первый патч от Berker Peksag.818- bpo-16743: Исправлена проверка переполнения mmap на 32-разрядной Windows.819- bpo-16800: tempfile.gettempdir() больше не оставляет временные файлы, когда диск переполнен. Оригинальный патч от Amir Szekely.820- bpo-16564: Исправлен регресс относительно Python2 в работе email.encoders.encode\_7or8bit при использовании с бинарными данными.821- bpo-17052: Поиск тестов unittest должен использовать self.testLoader.822- bpo-4591: Теперь поддерживаются значения uid и gid больше 2\*\*31.823- bpo-17141: random.vonmisesvariate() больше не зависает при больших значениях каппы.824- bpo-17149: Исправлена random.vonmisesvariate, чтобы всегда возвращать результаты в \[0, 2\*math.pi\].825- bpo-1470548: XMLGenerator теперь работает с бинарными выходными потоками.826- bpo-6975: os.path.realpath() теперь корректно разрешает множественные вложенные символьные ссылки на платформах POSIX.827- bpo-16564: Исправлена регрессия относительно Python 2 в работе email.encoders.encode\_noop при использовании с бинарными данными.828- bpo-10355: Свойства mode, name, encoding и newlines теперь работают с объектами SpooledTemporaryFile, даже если они ещё не были сброшены на диск. Устаревший метод xreadline (который никогда не работал в Python 3) удалён.829- bpo-16686: Исправлено множество ошибок в модуле audioop. Исправлены падения в avgpp(), maxpp() и ratecv(). Исправлено целочисленное переполнение в add(), bias() и ratecv(). reverse(), lin2lin() и ratecv() больше не теряют точность для 32-битных сэмплов. max() и rms() больше не возвращают отрицательный результат, и различные другие функции теперь корректно работают с 32-битным сэмплом -0x80000000.830- bpo-17073: Исправлены некоторые целочисленные переполнения в модуле sqlite3.831- bpo-16723: httplib.HTTPResponse больше не помечается как закрытый при автоматическом закрытии соединения.832- bpo-16948: Исправлено quoted-printable кодирование тела для наборов символов, отличных от latin1, в пакете email.833- bpo-16811: Исправлен перенос строк в заголовках без значения в предварительных политиках email.834- bpo-17132: Обновлён символ для изменений грамматики “yield from”.835- bpo-17076: Копирование расширенных атрибутов (xattrs) стало более терпимым к отсутствию поддержки в файловой системе. Патч от Thomas Wouters.836- bpo-17089: Парсер Expat теперь корректно работает со строковым вводом не только когда внутренняя кодировка XML – UTF-8 или US-ASCII. Также теперь принимаются байты и строки размером более 2 ГиБ.837- bpo-6083: Исправлены множественные ошибки сегментации, возникающие при разборе вложенной изменяемой последовательности функцией PyArg\_ParseTuple.838- bpo-5289: Исправлена работа ctypes.util.find\_library на Solaris.839- bpo-17106: Исправлена ошибка сегментации в io.TextIOWrapper, когда нижележащий поток или декодер выдают данные неожиданного типа (например, когда io.TextIOWrapper инициализирован текстовым потоком или используется кодек bytes-to-bytes).840- bpo-15633: httplib.HTTPResponse теперь помечается как закрытый, когда сервер отправляет меньше данных, чем указано в Content-Length.841- bpo-12268: Методы записи файловых объектов модуля io больше не завершаются преждевременно при прерывании одного из системных вызовов записи (EINTR).842- bpo-6972: Модуль zipfile больше не перезаписывает файлы за пределами целевого пути при извлечении вредоносных zip-файлов.843- bpo-4844: Теперь ZipFile вызывает BadZipFile при открытии ZIP-файла с неполной записью “End of Central Directory”. Оригинальный патч от Guilherme Polo и Alan McIntyre.844- bpo-17071: Signature.bind() теперь работает, когда один из именованных аргументов называется `self`.845- bpo-12004: Исправлена внутренняя ошибка в PyZipFile при записи некорректного Python-файла. Патч от Ben Morgan.846- bpo-1602133: на Mac OS X сборка общей библиотеки (`--enable-shared`) теперь корректно заполняет переменную `os.environ`.847- bpo-15505: [`unittest.installHandler`](https://python-all.ru/3.3/library/unittest.html#unittest.installHandler) больше не предполагает, что обработчик SIGINT является вызываемым объектом.848- bpo-13454: Исправлен сбой при удалении итератора, созданного itertools.tee(), если все остальные итераторы были сильно продвинуты ранее.849- bpo-12411: Исправлена работа cgi.parse\_multipart для корректного использования байтовых границ и байтовых данных. Патч от Jonas Wagner.850- bpo-16957: shutil.which() больше не ищет простое имя файла в текущем каталоге на Unix и не ищет относительный путь с частью каталога в каталогах PATH. Патч от Thomas Kluyver.851- bpo-16993: shutil.which() теперь сохраняет регистр пути и расширения в Windows.852- bpo-16992: В Windows в signal.set\_wakeup\_fd проверяется аргумент файлового дескриптора.853- bpo-16422: Для совместимости с версией Python, C-версия decimal теперь использует строки вместо целых чисел для констант режима округления.854- bpo-15861: tkinter теперь корректно работает со списками и кортежами, содержащими строки с пробелами, обратной косой чертой или несбалансированными фигурными скобками.855- bpo-10527: Для каналов multiprocessing теперь используется poll() вместо select().856- bpo-9720: zipfile теперь записывает корректные локальные заголовки для файлов размером более 4 ГиБ.857- bpo-16955: Исправлен метод poll() для сокетных соединений multiprocessing в Windows.858- SSLContext.load\_dh\_params() теперь корректно закрывает входной файл.859- bpo-16900: Выводится ResourceWarning, если ssl-сокет остаётся незакрытым.860- bpo-13899: A, Z и B теперь корректно соответствуют литералам A, Z и B при использовании внутри символьных классов (например, «\[A\]»). Патч от Matthew Barnett.861- bpo-15545: Исправлен регресс в iterdump sqlite3, из-за которого метод не работал, если соединение использовало фабрику строк (например, sqlite3.Row), создающую несортируемые объекты. (Регресс был внесён исправлением для 9750).862- bpo-15972: Исправлены сообщения об ошибках, когда функции os, ожидающие имя файла или файловый дескриптор, получают объект неверного типа.863- bpo-16828: Исправлена ошибочно возбуждаемая ошибка при вызове bz2.compress(b'') и bz2.BZ2Compressor.compress(b''). Первоначальный патч от Martin Packman.864- bpo-16541: tk\_setPalette() теперь работает с именованными аргументами.865- bpo-16820: В configparser `parser.popitem()` больше не вызывает ValueError. Это обеспечивает корректную работу `parser.clean()`.866- bpo-16820: В configparser `parser['section'] = {}` теперь сохраняет порядок разделов внутри парсера. Это также обеспечивает сохранение порядка разделов `parser.update()`.867- bpo-16820: В configparser `parser['DEFAULT'] = {}` теперь корректно очищает предыдущие значения, хранящиеся в разделе по умолчанию. То же самое относится к `parser.update({'DEFAULT': {}})`.868- bpo-9586: Переопределение SEM\_FAILED на MacOSX для устранения предупреждений компилятора.869- bpo-10527: multiprocessing теперь использует poll() вместо select(), если доступно.870- bpo-16688: Теперь регулярные выражения, содержащие обратные ссылки, корректно работают с не-ASCII строками. Патч от Matthew Barnett.871- bpo-16485: Файловые дескрипторы теперь закрываются, если при закрытии aifc-файла не удалось исправить заголовок.872- bpo-16165: sched.scheduler.run() больше не блокирует планировщик для других потоков.873- bpo-16641: Значения по умолчанию sched.scheduler.enter() больше нельзя изменить.874- bpo-16618: Функция glob.glob теперь последовательно сопоставляет строки и байты в отношении ведущих точек. Патч от Serhiy Storchaka.875- bpo-16713: При разборе URL-адресов вида 'tel' с помощью urlparse параметры теперь отделяются от пути.876- bpo-16443: Добавлены строки документации к объектам регулярных выражений. Патч от Anton Kasyanov.877- bpo-15701: Исправлен вызов метода info в HTTPError, чтобы он возвращал информацию из заголовков.878- bpo-16752: Добавлен недостающий импорт в modulefinder. Патч от Berker Peksag.879- bpo-16646: ftplib.FTP.makeport() мог терять подробности ошибки сокета. Патч от Serhiy Storchaka.880- bpo-16626: Исправлена бесконечная рекурсия в glob.glob() на Windows, когда шаблон содержит подстановочный знак в пути диска или UNC. Патч от Serhiy Storchaka.881- bpo-15783: За исключением методов чисел, версия decimal на C теперь поддерживает все значения по умолчанию None, присутствующие в decimal.py. Эти значения были в значительной степени недокументированы.882- bpo-16298: В HTTPResponse.read() закрывайте сокет, когда нет Content-Length и входящий поток завершён. Патч от Eran Rundstein.883- bpo-15872: Исправлен регресс в версии 3.3, вызванный новой реализацией shutil.rmtree на основе файловых дескрипторов, из-за которого не игнорировались некоторые ошибки при установленном ignore\_errors. Патч от Alessandro Moura и Serhiy Storchaka.884- bpo-16248: Отключено выполнение кода из домашнего каталога пользователя в tkinter при передаче флага -E интерпретатору Python. Патч от Zachary Ware.885- bpo-16628: Исправлена утечка памяти в ctypes.resize().886- bpo-13614: Исправлена ошибка регистрации setup.py при некорректном rst в описании. Патч от Julien Courteau и Pierre Paul Lefebvre.887- bpo-13512: Создание ~/.pypirc теперь безопасно (CVE-2011-4944). Первоначальный патч от Филипа Дженви, протестирован командами Mageia и Debian.888- bpo-7719: distutils теперь игнорирует файлы `.nfs*`, а не выдаёт ошибку позже. Первоначальный патч от SilentGhost и Jeff Ramnani.889- bpo-13120: Разрешён вызов pdb.set\_trace() из потока. Патч от Ilya Sandler.890- bpo-16585: Кодировщики CJK теперь поддерживают обработчики ошибок, возвращающие байты в соответствии с PEP 383.891- bpo-10182: Модуль re больше не усекает индексы до 32 бит. Патч от Serhiy Storchaka.892- bpo-16573: В 2to3 функция enumerate() теперь считается потребляющим вызовом, поэтому излишние вызовы list() не добавляются к filter(), map() и zip(), которые напрямую получают enumerate().893- bpo-12848: Реализация pickle на чистом Python теперь обрабатывает длины объектов как 32-битные целые числа без знака, как и реализация на C. Патч от Serhiy Storchaka.894- bpo-16408: исправлена проблема, при которой файловые дескрипторы не закрывались при ошибках в модуле zipfile. Патч от Serhiy Storchaka.895- bpo-16481: multiprocessing больше не допускает утечки дескрипторов процессов в Windows.896- bpo-16140: модуль подпроцесс больше не закрывает дважды родительские файловые дескрипторы подпроцесс.PIPE при ошибке дочернего процесса до вызова exec().897- Удалён вызов print в stdout из модуля подпроцесса, который мог произойти, если дочерний процесс записывал мусор в свой канал ошибок перед exec.898- bpo-16327: модуль подпроцесс больше не допускает утечки файловых дескрипторов, используемых для каналов stdin/stdout/stderr, в дочерний процесс при сбое fork().899- bpo-14396: обрабатывается редкий случай, когда waitpid возвращает 0 при неожиданных обстоятельствах в subprocess.Popen.wait().900- bpo-16411: исправлена ошибка, при которой zlib.decompressobj().flush() могла пытаться обратиться к ранее освобождённой памяти. Патч от Serhiy Storchaka.901- bpo-16357: исправлен вызов accept() на SSLSocket, созданном через SSLContext.wrap\_socket(). Оригинальный патч от Jeff McNeil.902- bpo-16409: колбэк reporthook от устаревшего API urllib.request.urlretrieve теперь корректно передаёт постоянный ненулевой block\_size, как это было в Python 3.2 и 2.7. Это соответствует поведению urllib.request.URLopener.retrieve.903- bpo-16431: используется информация о типе при создании подтипа Decimal из аргумента Decimal.904- bpo-16350: zlib.decompressobj().decompress() теперь накапливает данные из последовательных вызовов после EOF в unused\_data, вместо сохранения только аргумента последнего вызова. decompressobj().flush() теперь корректно устанавливает unused\_data и unconsumed\_tail. Также исправлена ошибка в обработке MemoryError при установке атрибута unconsumed\_tail. Патч от Serhiy Storchaka.905- bpo-12759: sre\_parse теперь генерирует корректную ошибку, если имя группы отсутствует. Первоначальный патч от Serhiy Storchaka.906- bpo-16152: исправлен tokenize для игнорирования пробелов в конце кода, если нет символа новой строки. Патч от Ned Batchelder.907- bpo-16230: исправлен сбой в select.select(), когда один из списков меняет размер во время итерации. Патч от Serhiy Storchaka.908- bpo-16228: исправлен сбой в модуле json, когда список меняет размер во время кодирования. Патч от Serhiy Storchaka.909- bpo-14897: улучшены сообщения об ошибках struct.pack и struct.pack\_into. Патч от Matti Mäki.910- bpo-12890: cgitb больше не выводит ложные теги \<p\> в текстовом режиме, если указана опция logdir.911- bpo-16307: исправлена проблема, при которой multiprocessing.Pool.map\_async не вызывал свои колбэки. Патч от Janne Karila.912- bpo-16250: Исправлен вызов URLError с правильными аргументами.913- bpo-16116: исправлены пути include и library для корректной сборки C-расширений в виртуальных окружениях.914- bpo-16245: исправлены значения нескольких сущностей в html.entities.html5.915- bpo-14398: Исправлены ошибки усечения размера и переполнения в модуле bz2.916- bpo-16220: wsgiref теперь всегда вызывает close() для итерируемого ответа. Патч от Brent Tubbs.917- bpo-16270: urllib может зависать при использовании контекстного менеджера для получения файлов по FTP. Патч от Giampaolo Rodola’.918- bpo-16461: Библиотека wave теперь должна работать с WAV-файлами размером до 4 ГБ и частотой дискретизации 44100 Гц.919- bpo-16176: Правильное определение Windows 8 через platform.platform()920- bpo-16114: Модуль subprocess больше не выдает вводящее в заблуждение сообщение об ошибке о том, что args\[0\] не существует, если аргументы cwd или executable указывали на несуществующий путь.921- bpo-16169: Исправлена путаница между errno и winerror в ctypes.WinError().922- bpo-16076: \_elementtree.Element теперь можно сериализовать способом, совместимым с Python Element. Сериализация/десериализация xml.etree.ElementTree.Element снова работает – это было временным регрессом начиная с 3.2, где импортируемый по умолчанию \_elementtree не имел возможности сериализации.923- bpo-16089: ElementTree.TreeBuilder снова может работать с element\_factory, не являющимся Element (исправление регрессии в SimpleTAL).924- bpo-16913: Исправлена обработка текста с XML-сущностями в Element.itertext().925- bpo-16034: Исправлены регрессии производительности в новой реализации [`bz2.BZ2File`](https://python-all.ru/3.3/library/bz2.html#bz2.BZ2File). Начальный патч от Serhiy Storchaka.926- bpo-16112: platform.architecture неправильно экранирует аргумент для /usr/bin/file. Патч от David Benjamin.927- bpo-15756: `subprocess.poll()` теперь корректно обрабатывает [`errno.ECHILD`](https://python-all.ru/3.3/library/errno.html#errno.ECHILD), возвращая код возврата 0, когда дочерний процесс уже завершился или его нельзя ждать.928- bpo-15323: Улучшено сообщение об ошибке для `Mock.assert_called_once_with()`.929- bpo-16064: `unittest -m` утверждает, что исполняемый файл – «python», а не «python3».930- bpo-12376: Передача параметров в вызове super в `TextTestResult.__init__()`.931- bpo-15222: Вставка пустой строки после каждого сообщения в почтовых ящиках mbox.932- bpo-16013: Исправлена проблема синтаксического анализа `csv.Reader` с закрывающими кавычками. Патч от Serhiy Storchaka.933- bpo-15421: Исправлен OverflowError в `Calendar.itermonthdates()` после [`datetime.MAXYEAR`](https://python-all.ru/3.3/library/datetime.html#datetime.MAXYEAR). Патч от Cédric Krier.934- bpo-15970: [`xml.etree.ElementTree`](https://python-all.ru/3.3/library/xml.etree.elementtree.html#module-xml.etree.ElementTree) теперь корректно сериализует пустые HTML-элементы 'meta' и 'param'.935- bpo-15842: Методы `SocketIO.{readable,writable,seekable}` теперь возбуждают ValueError, когда файлоподобный объект закрыт. Патч от Alessandro Moura.936- bpo-15876: Исправлена утечка ссылок в модуле [`curses`](https://python-all.ru/3.3/library/curses.html#module-curses): window.encoding.937- bpo-15881: Исправлен hook [`atexit`](https://python-all.ru/3.3/library/atexit.html#module-atexit) в [`multiprocessing`](https://python-all.ru/3.3/library/multiprocessing.html#module-multiprocessing). Оригинальный патч от Chris McDonough.938- bpo-15841: Методы readable(), writable() и seekable() объектов [`io.BytesIO`](https://python-all.ru/3.3/library/io.html#io.BytesIO) и [`io.StringIO`](https://python-all.ru/3.3/library/io.html#io.StringIO) теперь возбуждают ValueError, когда объект закрыт. Патч от Alessandro Moura.939- bpo-15447: В модуле webbrowser теперь используется [`subprocess.DEVNULL`](https://python-all.ru/3.3/library/subprocess.html#subprocess.DEVNULL) вместо явного открытия [`os.devnull`](https://python-all.ru/3.3/library/os.html#os.devnull) и последующего его не закрытия.940- bpo-15509: `webbrowser.UnixBrowser` больше не передаёт пустые аргументы Popen, когда подстановки `%action` дают пустые строки.941- bpo-12776: Функция типа [`argparse`](https://python-all.ru/3.3/library/argparse.html#module-argparse) (указанная в add\_argument) теперь вызывается только один раз. Раньше она вызывалась дважды, когда было указано значение по умолчанию и аргумент тоже передавался. Это было особенно проблематично для типа FileType, так как файл по умолчанию всегда открывался, даже если в командной строке был указан аргумент-файл. (См. также: bpo-11839)942- bpo-15906: Исправлен регресс в [`argparse`](https://python-all.ru/3.3/library/argparse.html#module-argparse), вызванный предыдущим изменением, когда `action='append'`, `type='str'` и `default=[]`.943944### IDLE945946- bpo-17114: IDLE теперь использует нестрогий парсер конфигурации.947- bpo-9290: В IDLE потоки sys.std\* теперь реализуют интерфейс io.TextIOBase и поддерживают все обязательные методы и свойства.948- bpo-16829: Печать в IDLE больше не завершается ошибкой, если в пути к файлу есть пробелы или другие специальные символы.949- bpo-16491: IDLE теперь выводит трассировку цепочки исключений.950- bpo-16819: Автодополнение методов в IDLE теперь корректно работает для литералов bytes.951- bpo-16504: IDLE теперь перехватывает синтаксические ошибки (SyntaxError), возникающие в токенизаторе. Патч от Roger Serwy.952- bpo-16511: Использовать ширину и высоту IDLE по умолчанию, если параметр конфигурации недействителен. Патч от Serhiy Storchaka.953- bpo-1207589: Добавлены пункты Вырезать/Копировать/Вставить в контекстное меню правой кнопки мыши IDLE. Патч от Todd Rovito.954955### Тесты956957- bpo-17448: test\_sax теперь пропускается, если нет доступных парсеров xml, вместо того чтобы вызывать ImportError.958- bpo-11420: Обеспечить прохождение набора тестов при установленном -B/DONTWRITEBYTECODE. Первоначальный патч от Thomas Wouters.959- bpo-10652: Запускать тесты tcl/tk после теста \_\_all\_\_, патч от Zachary Ware.960- bpo-11963: Убрать человеческую проверку из test\_parser и test\_subprocess.961- bpo-11732: Добавить новый менеджер контекста suppress\_crash\_popup() в test.support, который отключает всплывающие окна с ошибками в Windows, и использовать его в test\_faulthandler и test\_capi.962- bpo-13898: test\_ssl больше не выводит ложную трассировку стека в Ubuntu.963- bpo-17249: Преобразовать тест в test\_capi для использования unittest и завершения потоков.964- bpo-17041: Исправлено тестирование, когда Python сконфигурирован с опцией --without-doc-strings.965- bpo-16923: Исправить ResourceWarnings в test\_ssl.966- bpo-15539: Добавлены регрессионные тесты для Tools/scripts/pindent.py.967- bpo-17479: test\_io теперь работает с обнаружением тестов unittest. Патч от Zachary Ware.968- bpo-17066: test\_robotparser теперь работает с обнаружением тестов unittest. Патч от Zachary Ware.969- bpo-17334: test\_index теперь работает с обнаружением тестов unittest. Патч от Zachary Ware.970- bpo-17333: test\_imaplib теперь работает с обнаружением тестов unittest. Патч от Zachary Ware.971- bpo-17082: test\_dbm\* теперь работают с обнаружением тестов unittest. Патч от Zachary Ware.972- bpo-17079: test\_ctypes теперь работает с обнаружением тестов unittest. Патч от Zachary Ware.973- bpo-17304: test\_hash теперь работает с обнаружением тестов unittest. Патч от Zachary Ware.974- bpo-17303: test\_future\* теперь работают с обнаружением тестов unittest. Патч от Zachary Ware.975- bpo-17163: test\_file теперь работает с обнаружением тестов unittest. Патч от Zachary Ware.976- bpo-16925: test\_configparser теперь работает с обнаружением тестов unittest. Патч от Zachary Ware.977- bpo-16918: test\_codecs теперь работает с обнаружением тестов unittest. Патч от Zachary Ware.978- bpo-16919: test\_crypt теперь работает с обнаружением тестов unittest. Патч от Zachary Ware.979- bpo-16910: test\_bytes, test\_unicode и test\_userstring теперь работают с обнаружением тестов unittest. Патч от Zachary Ware.980- bpo-16905: test\_warnings теперь работает с обнаружением тестов unittest. Первоначальный патч от Berker Peksag.981- bpo-16898: test\_bufio теперь работает с обнаружением тестов unittest. Патч от Zachary Ware.982- bpo-16888: test\_array теперь работает с обнаружением тестов unittest. Патч от Zachary Ware.983- bpo-16896: test\_asyncore теперь работает с обнаружением тестов unittest. Патч от Zachary Ware.984- bpo-16897: test\_bisect теперь работает с обнаружением тестов unittest. Первоначальный патч от Zachary Ware.985- bpo-16852: test\_genericpath, test\_posixpath, test\_ntpath и test\_macpath теперь работают с обнаружением тестов unittest. Патч от Zachary Ware.986- bpo-16748: test\_heapq теперь работает с обнаружением тестов unittest.987- bpo-15324: Исправлен разбор regrtest опций –fromfile, –match и –randomize.988- bpo-16702: Тесты test\_urllib2\_localnet теперь корректно игнорируют прокси для тестов localhost.989- bpo-16664: Добавлены регрессионные тесты для поведения glob в отношении записей, начинающихся с ”.”. Патч от Sebastian Kreft.990- bpo-16559: Добавлено больше тестов для модуля json, включая некоторые из официального набора тестов на json.org. Патч от Serhiy Storchaka.991- bpo-16661: Исправлен тест [`os.getgrouplist()`](https://python-all.ru/3.3/library/os.html#os.getgrouplist): больше не предполагается, что он даёт такой же вывод, как **id -G**.992- bpo-16115: Добавлены некоторые тесты для аргумента executable в subprocess.Popen(). Первоначальный патч от Kushal Das.993- bpo-16126: Несоответствие формата PyErr\_Format в \_testcapimodule.c. Патч от Serhiy Storchaka.994- bpo-15304: Исправлено сообщение предупреждения при сбое [`os.chdir()`](https://python-all.ru/3.3/library/os.html#os.chdir) внутри [`test.support.temp_cwd()`](https://python-all.ru/3.3/library/test.html#test.support.temp_cwd). Патч от Chris Jerdonek.995- bpo-15802: Исправлена логика теста в `TestMaildir.test_create_tmp()`. Патч от Serhiy Storchaka.996- bpo-15557: Добавлен набор тестов для модуля [`webbrowser`](https://python-all.ru/3.3/library/webbrowser.html#module-webbrowser), спасибо Anton Barkovsky.997- bpo-16698: Пропускать posix test\_getgroups при сборке с целью развёртывания OS X до 10.6.998999### Сборка10001001- bpo-17550: Исправлен флаг конфигурации –enable-profiling.1002- bpo-17425: Сборка с openssl 1.0.1d на Windows.1003- bpo-16754: Исправлено некорректное расширение разделяемой библиотеки в Linux. Добавлены два макроса makefile: SHLIB\_SUFFIX и EXT\_SUFFIX. Теперь SO снова принимает значение SHLIB\_SUFFIX (как в 2.x и 3.1). Макрос SO удалён в версии 3.4.1004- bpo-5033: Исправлена сборка модуля расширения sqlite3, если в версии библиотеки SQLite встречается «beta». Патч от Andreas Pelme.1005- bpo-17228: Исправлена сборка без pymalloc.1006- bpo-3718: Использование AC\_ARG\_VAR для установки MACHDEP в configure.ac.1007- bpo-17031: Исправлен запуск regen в кросс-сборках.1008- bpo-3754: Исправлена опечатка в pthread AC\_CACHE\_VAL.1009- bpo-15484: Исправлен \_PYTHON\_PROJECT\_BASE для сборок, где srcdir != builddir; используется \_PYTHON\_PROJECT\_BASE в distutils/sysconfig.py.1010- bpo-17029: Разрешён поиск h2py в multiarch системном каталоге include.1011- bpo-16953: Исправлена компиляция модуля socket на платформах с HAVE\_BROKEN\_POLL. Патч от Jeffrey Armstrong.1012- bpo-16836: Включена поддержка IPv6, даже если IPv6 отключён на сборочном хосте.1013- Кросс-компиляция требует настроек хост-системы и сборки. configure больше не создаёт сломанную переменную PYTHON\_FOR\_BUILD, если отсутствует --build.1014- Исправлена проблема кросс-компиляции в setup.py: теперь lib\_dirs и inc\_dirs определены и в режиме кросс-компиляции.1015- bpo-16593: Исправлено поведение BSD «make -s» благодаря Daniel Shahaf1016- bpo-16262: Исправлены сборки вне дерева исходников, если mercurial не установлен.1017- bpo-15298: Обеспечена генерация \_sysconfigdata в каталоге сборки, а не в каталоге исходников.1018- bpo-15833: Исправлен регресс в версии 3.3, из-за которого возникали исключения, если importlib не удавалось записать байт-скомпилированные файлы. Это затрагивало попытки сборки Python вне дерева исходников из каталога, доступного только для чтения.1019- bpo-15923: Исправлена ошибка в `asdl_c.py`, которая приводила к TypeError после коммита 2801bf875a24 (см. #15801).1020- bpo-15819: Обеспечена возможность сборки Python вне дерева исходников из каталога, доступного только для чтения. (Отчасти связано с [issue #9860](https://python-all.ru/3.3/whatsnew/changelog.html).)1021- bpo-15587: Включён высококачественный рендеринг текста Tk на Mac с Retina-дисплеями. Применяется к приложениям Tkinter, таким как IDLE, в сборках OS X framework, связанных с Cocoa Tk 8.5.1022- bpo-17161: make install теперь также устанавливает man-страницу python3.10231024### C API10251026- bpo-16881: Исправлен макрос Py\_ARRAY\_LENGTH для GCC \< 3.1.10271028### Документация10291030- bpo-17538: Документированы уязвимости XML.1031- bpo-16642: Начальное значение по умолчанию timefunc в sched.scheduler – time.monotonic. Патч от Ramchandra Apte.1032- bpo-17047: Удалены повторяющиеся слова в документации и докстрингах, о которых сообщили Serhiy Storchaka и Matthew Barnett.1033- bpo-15465: Документированы макросы версионирования в документации C API, а не в документации стандартной библиотеки. Патч от Kushal Das.1034- bpo-16406: Объединены страницы загрузки и регистрации на PyPI.1035- bpo-16403: Документировано, как distutils использует поле maintainer в PKG-INFO. Патч от Jyrki Pulliainen.1036- bpo-16695: Документировано, как glob обрабатывает имена файлов, начинающиеся с точки. Первоначальный патч от Jyrki Pulliainen.1037- bpo-8890: Прекращена реклама небезопасной практики: в документации использование каталога /tmp заменено на более безопасные альтернативы. Патч от Geoff Wilson.1038- bpo-17203: Добавлены длинные имена опций в документацию unittest discovery.1039- bpo-13094: Добавлен вопрос в раздел «Часто задаваемые вопросы по программированию»: «Почему лямбды, определенные в цикле с разными значениями, все возвращают один и тот же результат?»1040- bpo-14901: Обновлены части раздела Windows FAQ. Патч от Ashish Nitin Patil.1041- bpo-16267: Улучшена документация подхода (начиная с 3.3) к сочетанию @abstractmethod с @staticmethod, @classmethod и @property.1042- bpo-15209: Уточнено описание цепочек исключений в документации модуля exceptions.1043- bpo-15990: Улучшена документация аргументов/параметров.1044- bpo-16209: Документация встроенной функции str перемещена в новую запись класса str в разделе «Text Sequence Type».1045- bpo-13538: Улучшена документация str() и object.\_\_str\_\_().1046- bpo-16489: Сделано более ясным, что importlib.find\_loader() требует отдельного импорта всех пакетов.1047- bpo-16400: Обновлено описание того, какие версии данного пакета отображает PyPI.1048- bpo-15677: Документировано, что zlib и gzip принимают уровень сжатия 0 как «без сжатия». Патч от Brian Brazil.1049- bpo-16197: Обновлены докстринги и документация winreg в соответствии с кодом. Патч от Zachary Ware.1050- bpo-8040: Добавлен переключатель версий в документацию. Патч от Yury Selivanov.1051- bpo-16241: Документирована опция командной строки -X faulthandler. Патч от Marek Šuppa.1052- Дополнительные комментарии и некоторые изменения стиля в примере получения URL с помощью concurrent.futures1053- bpo-16115: Улучшена документация subprocess.Popen() касательно аргументов args, shell и executable.1054- bpo-15533: Уточнить документацию и добавить тесты для аргумента cwd метода [`subprocess.Popen()`](https://python-all.ru/3.3/library/subprocess.html#subprocess.Popen).1055- bpo-15979: Улучшить документацию timeit.1056- bpo-16036: Улучшить документацию сигнатуры и аргументов встроенной функции [`int()`](https://python-all.ru/3.3/library/functions.html#int).1057- bpo-15935: Уточнение документации [`argparse`](https://python-all.ru/3.3/library/argparse.html#module-argparse) относительно аргументов type и default функции add\_argument(). Исправление предоставлено Chris Jerdonek.1058- bpo-11964: Задокументировать изменение поведения параметра indent операций кодирования JSON в версии 3.2.1059- bpo-15116: Удалить упоминания appscript, так как он больше не поддерживается.10601061### Инструменты/Демонстрации10621063- bpo-17156: pygettext.py теперь использует кодировку исходного файла и корректно записывает и экранирует не-ASCII символы.1064- bpo-15539: Исправить ряд ошибок в Tools/scripts/pindent.py. Теперь pindent.py работает с оператором «with». pindent.py больше не создаёт некорректные отступы. Теперь pindent.py корректно обрабатывает строки, разорванные после ключевых слов «class» или «def», а также продолжения в начале строки.1065- bpo-15378: Исправить Tools/unicode/comparecodecs.py. Исправление предоставлено Serhiy Storchaka.1066- bpo-16476: Исправлен json.tool, чтобы избежать включения завершающих пробелов.1067- bpo-16549: Сделать json.tool снова работоспособным на Python 3 и добавить тесты. Первая версия исправления предоставлена Berker Peksag и Serhiy Storchaka.1068- bpo-13301: Использование ast.literal\_eval() вместо eval() в Tools/i18n/msgfmt.py. Патч от Serhiy Storchaka.10691070## Python 3.3.0 финальная10711072*Дата выпуска: 29 сентября 2012*10731074### Ядро и встроенные модули10751076- bpo-16046: Исправить загрузку устаревших .pyo-файлов без исходного кода.1077- bpo-16060: Исправить ошибку подсчёта ссылок, когда `__trunc__()` возвращает объект, чей `__int__()` даёт нецелое число. Исправление предоставлено Serhiy Storchaka.10781079### Библиотека10801081- bpo-16012: Исправить регрессию в pyexpat. Метод парсера `UseForeignDTD()` снова не требует аргумента.10821083## Python 3.3.0 кандидат в релизы 310841085*Дата выпуска: 23 сентября 2012*10861087### Ядро и встроенные модули10881089- bpo-15900: Исправить утечку ссылок в `PyUnicode_TranslateCharmap()`.1090- bpo-15926: Исправлен сбой при многократной повторной инициализации интерпретатора.1091- bpo-15895: Fix FILE pointer leak in one error branch of `PyRun_SimpleFileExFlags()` when filename points to a pyc/pyo file, closeit is false an and set\_main\_loader() fails.1092- Исправления для нескольких регрессий сбоев и утечек памяти, найденных Coverity.10931094### Библиотека10951096- bpo-15882: Изменён модуль `_decimal`: теперь он принимает любой кортеж коэффициентов при построении бесконечностей. Это сделано для обратной совместимости с decimal.py: коэффициенты бесконечностей не определены в \_decimal (в соответствии со спецификацией).1097- bpo-15925: Исправлена регрессия в модуле `email.util`, из-за которой функции `parsedate()` и `parsedate_tz()` перестали возвращать None, когда аргумент не удавалось разобрать.1098- bpo-15973: Исправлена ошибка сегментации при сравнении объектов часовых поясов datetime.1099- bpo-15977: Исправлена утечка памяти в Modules/\_ssl.c при многократном вызове функции \_set\_npn\_protocols(). Спасибо Daniel Sommermann.1100- bpo-15969: Модуль [`faulthandler`](https://python-all.ru/3.3/library/faulthandler.html#module-faulthandler): переименованы dump\_tracebacks\_later() в dump\_traceback\_later() и cancel\_dump\_tracebacks\_later() в cancel\_dump\_traceback\_later().1101- Модуль \_decimal: использует только комментарии в стиле C89.11021103## Python 3.3.0 кандидат в релизы 211041105*Дата выпуска: 09-сен-2012*11061107### Ядро и встроенные модули11081109- bpo-13992: Механизм trashcan теперь потокобезопасен. Это устраняет периодические сбои в многопоточных программах, когда несколько длинных цепочек деаллокаторов выполнялись одновременно и затрагивали подклассы встроенных типов-контейнеров.1110- bpo-15784: Изменён метод [`OSError`](https://python-all.ru/3.3/library/exceptions.html#OSError).\_\_str\_\_() для лучшего различения номеров ошибок errno и номеров ошибок Windows.1111- bpo-15781: Исправлены две небольшие гонки (race conditions) в блокировке модулей при импорте.11121113### Библиотека11141115- bpo-15847: Исправлена регрессия в argparse, которая больше не принимала кортежи в качестве списков аргументов.1116- bpo-15828: Восстановлена поддержка C-расширений в [`imp.load_module()`](https://python-all.ru/3.3/library/imp.html#imp.load_module).1117- bpo-15340: Исправлен импорт модуля random, когда `/dev/urandom` не может быть открыт. Это была регрессия, вызванная патчем рандомизации хэшей.1118- bpo-10650: Помечен устаревшим параметр watchexp метода `Decimal.quantize()`.1119- bpo-15785: Изменён API `window.get_wch()` модуля curses: теперь для большинства клавиш возвращается символ, а для специальных клавиш – целое число, вместо того чтобы всегда возвращать целое. Теперь можно различать специальные клавиши, например клавиши цифровой клавиатуры.1120- bpo-14223: Исправлена `window.addch()` модуля curses для специальных символов, таких как curses.ACS\_HLINE: теперь Python-функции addch(int) и addch(bytes) вызывают C-функции waddch()/mvwaddch() (как это было в Python 3.2), вместо wadd\_wch()/mvwadd\_wch(). Python-функция addch(str) по-прежнему вызывает C-функции wadd\_wch()/mvwadd\_wch(), если curses в Python слинкован с libncursesw.11211122### Сборка11231124- bpo-15822: Действительно гарантировать, что pickles-грамматики 2to3 установлены правильно (заменяет исправления для [Issue #15645](https://python-all.ru/3.3/whatsnew/changelog.html)).11251126### Документация11271128- bpo-15814: Улучшения memoryview в версии 3.3.0 случайно разрешили хеширование многомерных объектов memoryview и memoryview с многобайтовыми форматами элементов. Предполагаемые ограничения теперь задокументированы – они будут правильно применяться в версии 3.3.1.11291130## Python 3.3.0 кандидат в релизы 111311132*Дата выпуска: 25-авг-2012*11331134### Ядро и встроенные модули11351136- bpo-15573: Сравнения memoryview теперь выполняются по значению с полной поддержкой любого допустимого определения формата модуля struct.1137- bpo-15316: Если элемент из fromlist для [`__import__()`](https://python-all.ru/3.3/library/functions.html#__import__) не существует, не вызывать ошибку, но если исключение было вызвано в процессе импорта, позволить ему распространиться.1138- bpo-15778: Обеспечить, чтобы `str(ImportError(msg))` возвращала строку (str), даже если msg не является строкой.1139- bpo-2051: Права доступа к исходным файлам снова правильно копируются в кэшированный байткод. (Миграция на importlib повторно ввела эту проблему, поскольку не было регрессионного теста. В рамках этого патча добавлен тест.)1140- bpo-15761: Исправлен сбой при установке `PYTHONEXECUTABLE` на Mac OS X.1141- bpo-15726: Исправлена неверная проверка границ в PyState\_FindModule. Патч от Robin Schreiber.1142- bpo-15604: Обновлены использования `PyObject_IsTrue()` для правильной проверки и обработки ошибок. Патч от Serhiy Storchaka.1143- bpo-14846: `importlib.FileFinder` теперь корректно обрабатывает случай, когда каталог, в котором ведётся поиск, удалён после предыдущей попытки импорта.11441145### Библиотека11461147- bpo-13370: Обеспечена работоспособность ctypes на Mac OS X при компиляции Python с помощью компилятора clang.1148- bpo-13072: Код формата ‘u’ модуля array теперь считается устаревшим и будет удалён в Python 4.0.1149- bpo-15544: Исправлена работа Decimal.\_\_float\_\_ с NaN, несущими полезную нагрузку.1150- bpo-15776: Разрешена работа pyvenv в существующем каталоге с флагом --clean.1151- bpo-15249: BytesGenerator в модуле email теперь корректно обрабатывает строки From (по запросу), даже если тело содержит нераскодируемые байты.1152- bpo-15777: Исправлена утечка ссылок в \_posixsubprocess.1153- bpo-665194: Обновлена функция [`email.utils.localtime`](https://python-all.ru/3.3/library/email.util.html#email.utils.localtime) для использования datetime.astimezone и корректной обработки исторических изменений смещений UTC.1154- bpo-15199: Исправлен MIME-тип JavaScript по умолчанию на application/javascript. Исправление от Богуслава Кабрды.1155- bpo-12643: [`code.InteractiveConsole`](https://python-all.ru/3.3/library/code.html#code.InteractiveConsole) теперь учитывает [`sys.excepthook`](https://python-all.ru/3.3/library/sys.html#sys.excepthook) при отображении исключений. Исправление от Aaron Iles.1156- bpo-13579: [`string.Formatter`](https://python-all.ru/3.3/library/string.html#string.Formatter) теперь понимает спецификатор преобразования ‘a’.1157- bpo-15595: Исправлена работа `subprocess.Popen(universal_newlines=True)` для некоторых локалей (семейства utf-16 и utf-32). Исправление от Chris Jerdonek.1158- bpo-15477: В модули cmath и math добавлен обходной код для платформ, чья системная функция log1p не учитывает знаки нуля.1159- bpo-15715: [`importlib.__import__()`](https://python-all.ru/3.3/library/importlib.html#importlib.__import__) будет подавлять ImportError, когда использование fromlist приводит к неудачному импорту.1160- bpo-14669: Исправлена сериализация (pickling) соединений и сокетов на Mac OS X путём отправки/приёма подтверждения после передачи файлового дескриптора. TestPicklingConnection вновь включён для Mac OS X.1161- bpo-11062: Исправлено добавление сообщения из файла в почтовый ящик Babyl.1162- bpo-15646: Предотвращение аналога fork bomb при использовании [`multiprocessing`](https://python-all.ru/3.3/library/multiprocessing.html#module-multiprocessing) в Windows без идиомы `if __name__ == '__main__'`.11631164### IDLE11651166- bpo-15678: Исправлены меню IDLE при запуске из командной строки OS X (регрессия 3.3.0b2).11671168### Документация11691170- Доработано руководство по переносу кода с Python 2 на 3.1171- bpo-14674: Добавлено обсуждение соответствия стандарту модуля [`json`](https://python-all.ru/3.3/library/json.html#module-json). Исправление от Chris Rebert.1172- Создан раздел «Concurrent Execution» в документации, а раздел «Optional Operating System Services» разбит с использованием более удобной для пользователя схемы классификации (материалы распределены по новому разделу CE, IPC и обработке текста). Ограничения операционной системы могут быть отражены с помощью тега Sphinx `:platform:` – его размещение в оглавлении не имеет смысла.1173- bpo-4966: Обновлена документация по последовательностям с учётом перехода на Python 3 и многочисленных улучшений языка с момента её первоначального написания.1174- Некорректный термин «path importer» заменён на предложенное Эриком Сноу – более неудобное, но, по крайней мере, не ошибочное – «path based finder» в справочной документации по системе импорта.1175- bpo-15640: Функция [`importlib.abc.Finder`](https://python-all.ru/3.3/library/importlib.html#importlib.abc.Finder) задокументирована как устаревшая.1176- bpo-15630: Добавлен пример для оператора continue в руководстве. Исправление от Daniel Ellis.11771178### Тесты11791180- bpo-15747: ZFS всегда возвращает EOPNOTSUPP при попытке установить флаг UF\_IMMUTABLE (через chflags или lchflags); изменены соответствующие тесты в test\_posix.py для учёта этого.1181- bpo-15285: Изменён подход к тестированию тайм-аутов соединения с использованием двух внешних хостов, настроенных специально для такого теста.1182- bpo-15743: Удалено использование устаревших методов в тестах [`urllib`](https://python-all.ru/3.3/library/urllib.html#module-urllib). Исправление от Jeff Knupp.1183- bpo-15615: Добавлены тесты для обработки недопустимых входных данных модулем [`json`](https://python-all.ru/3.3/library/json.html#module-json). Исправление от Kushal Das.11841185### Сборка11861187- Файлы библиотек для сборки PGO теперь выводятся в каталог PGO.1188- Загрузчик для 32-битной версии теперь берётся из каталога PGO при 64-битной сборке PGO.1189- Удалён файл `PC\python_nt.h` как неиспользуемый. Добавлена зависимость входных данных для пользовательского этапа сборки.1190- bpo-15511: Удалена явная зависимость от pythonxy.lib из конфигурации \_decimal amd64.1191- Добавлены отсутствующие конфигурации PGI/PGO для pywlauncher.1192- bpo-15645: Обеспечена корректная установка файлов pickle грамматики 2to3.11931194## Python 3.3.0 бета 211951196*Дата выпуска: 12 августа 2012*11971198### Ядро и встроенные модули11991200- bpo-15568: Исправлено возвращаемое значение `yield from` при возбуждении StopIteration пользовательским итератором.1201- bpo-13119: [`sys.stdout`](https://python-all.ru/3.3/library/sys.html#sys.stdout) и [`sys.stderr`](https://python-all.ru/3.3/library/sys.html#sys.stderr) теперь используют символ новой строки “rn” в Windows, как и Python 2.1202- bpo-15534: Исправлена функция быстрого поиска для не-ASCII строк Unicode.1203- bpo-15508: Исправлена строка документации для [`__import__()`](https://python-all.ru/3.3/library/functions.html#__import__), чтобы она содержала правильное значение по умолчанию 0 для ‘level’ и не упоминала отрицательные уровни, так как они не поддерживаются.1204- bpo-15425: Устранён лишний вывод трассировки в большем количестве ситуаций, связанных с importlib.1205- bpo-14578: Снова добавлена поддержка модулей, зарегистрированных в реестре Windows.1206- bpo-15466: Прекращено использование TYPE\_INT64 в marshal, чтобы сделать importlib.h (и другие файлы байт-кода) одинаковыми для 32-битных и 64-битных систем.1207- bpo-1692335: Перенесено начальное присваивание аргументов исключения в `BaseException.__new__()` для упрощения сериализации простых подклассов.1208- bpo-12834: Исправлена `PyBuffer_ToContiguous()` для несплошных массивов.1209- bpo-15456: Исправлен код `__sizeof__()` после изменений #12399. Автор: Serhiy Storchaka.1210- bpo-15404: Утечка ссылок в repr объекта PyMethodObject.1211- bpo-15394: Исправлена проблема в `PyModule_Create()`, которая приводила к утечке ссылок на некоторых путях обработки ошибок. Автор: Julia Lawall.1212- bpo-15368: Исправлена проблема, из-за которой генерация байт-кода была недетерминированной.1213- bpo-15202: Теперь везде используется имя “follow\_symlinks” для новых параметров в функциях os и shutil.1214- bpo-15314: `__main__.__loader__` теперь корректно устанавливается во время запуска интерпретатора.1215- bpo-15111: Если модуль, импортированный с помощью ‘from import’, содержит внутри себя исключение ImportError, не маскировать это общим ImportError для самого модуля.1216- bpo-15293: Добавлена поддержка сборки мусора для базового типа узлов AST.1217- bpo-15291: Исправлена утечка памяти, при которой узлы AST не освобождались должным образом.1218- bpo-15110: Исправлена трассировка, генерируемая при “import xxx”, чтобы не показывать кадры стека importlib.1219- bpo-16369: Глобальные объекты PyTypeObject не инициализированы вызовом PyType\_Ready(...).1220- bpo-15020: Имя программы, используемое для поиска пути Python, теперь “python3” в Unix, а не “python”.1221- bpo-15897: zipimport.c не проверяет возвращаемое значение fseek(). Автор: Felipe Cruz.1222- bpo-15033: Исправлена ошибка с кодом возврата при запуске модулей с ключом -m, теперь возвращается правильное значение ошибки (1). Автор: Jeff Knupp.1223- bpo-15229: Подкласс [`OSError`](https://python-all.ru/3.3/library/exceptions.html#OSError), чей \_\_init\_\_ не вызывает OSError.\_\_init\_\_, мог создавать неполные экземпляры, что приводило к аварийному завершению при вызове str() для них.1224- bpo-15307: Виртуальные окружения теперь используют символические ссылки в сборках framework на Mac OS X, как и другие сборки POSIX.12251226### Библиотека12271228- bpo-14590: configparser теперь корректно удаляет встроенные комментарии, когда разделитель встречается раньше без предшествующего пробела.1229- bpo-15424: Добавлена реализация `__sizeof__()` для объектов array. Автор: Ludwig Hähne.1230- bpo-15576: Разрешить модулям расширений выступать в качестве модуля \_\_init\_\_ пакета.1231- bpo-15502: Функция [`importlib.invalidate_caches()`](https://python-all.ru/3.3/library/importlib.html#importlib.invalidate_caches) теперь работает с [`sys.meta_path`](https://python-all.ru/3.3/library/sys.html#sys.meta_path) вместо [`sys.path_importer_cache`](https://python-all.ru/3.3/library/sys.html#sys.path_importer_cache).1232- bpo-15163: Pydoc не должен выводить \_\_loader\_\_ как данные модуля.1233- bpo-15471: Не используйте изменяемые объекты в качестве значений по умолчанию для [`importlib.__import__()`](https://python-all.ru/3.3/library/importlib.html#importlib.__import__).1234- bpo-15559: Чтобы избежать проблемного режима отказа при передаче в конструктор bytes, объекты модуля ipaddress больше не реализуют `__index__()` (но по-прежнему реализуют `__int__()`, где это уместно).1235- bpo-15546: Исправлена обработка патологических входных данных в методах peek() и read1() классов BZ2File, GzipFile и LZMAFile.1236- bpo-12655: Вместо требования пользовательского типа [`os.sched_getaffinity()`](https://python-all.ru/3.3/library/os.html#os.sched_getaffinity) и [`os.sched_setaffinity()`](https://python-all.ru/3.3/library/os.html#os.sched_setaffinity) теперь используют обычные множества целых чисел для представления процессоров, к которым ограничен процесс.1237- bpo-15538: Исправлена компиляция кода эмуляции [`socket.getnameinfo()`](https://python-all.ru/3.3/library/socket.html#socket.getnameinfo) / [`socket.getaddrinfo()`](https://python-all.ru/3.3/library/socket.html#socket.getaddrinfo). Патч от Philipp Hagemeister.1238- bpo-15519: Обеспечить корректную видимость WindowsRegistryFinder в importlib (и использовать для него правильный термин). Оригинальный патч от Eric Snow.1239- bpo-15502: Привести абстрактные базовые классы importlib в соответствие с текущим состоянием протоколов импорта, заданных в PEP 420. Оригинальный патч от Eric Snow.1240- bpo-15499: Запуск веб-браузера в Unix ранее вызывал задержку в несколько секунд. Оригинальный патч от Anton Barkovsky.1241- bpo-15463: Модуль faulthandler обрезает строки до 500 символов, вместо 100, чтобы иметь возможность отображать длинные пути к файлам.1242- bpo-6056: Обеспечить использование [`multiprocessing`](https://python-all.ru/3.3/library/multiprocessing.html#module-multiprocessing) метода setblocking(True) на используемых им сокетах. Оригинальный патч от J Derek Wilson.1243- bpo-15364: Исправлено, чтобы sysconfig.get\_config\_var('srcdir') возвращал абсолютный путь.1244- bpo-15413: Функция [`os.times()`](https://python-all.ru/3.3/library/os.html#os.times) пропала в Windows.1245- bpo-15402: Исправлена проблема в модуле struct, из-за которой [`sys.getsizeof()`](https://python-all.ru/3.3/library/sys.html#sys.getsizeof) возвращал неверные результаты для экземпляров struct.Struct. Начальный патч от Serhiy Storchaka.1246- bpo-15232: Когда mangle\_from равно True, `email.Generator` теперь правильно искажает строки, начинающиеся с 'From ', которые встречаются в преамбуле или постамбуле MIME.1247- bpo-15094: Неправильно размещенный #endif в \_tkinter.c. Патч от Serhiy Storchaka.1248- bpo-13922: [`argparse`](https://python-all.ru/3.3/library/argparse.html#module-argparse) больше не удаляет некорректно тире, идущие после первого.1249- bpo-12353: [`argparse`](https://python-all.ru/3.3/library/argparse.html#module-argparse) теперь корректно обрабатывает пустые значения аргументов.1250- bpo-10017: Исправлен TypeError при использовании pprint на словарях с пользовательскими типами в качестве ключей или другими неупорядочиваемыми ключами. (См. также: bpo-14998)1251- bpo-15397: [`inspect.getmodulename()`](https://python-all.ru/3.3/library/inspect.html#inspect.getmodulename) теперь напрямую основан на importlib через новый API [`importlib.machinery.all_suffixes()`](https://python-all.ru/3.3/library/importlib.html#importlib.machinery.all_suffixes).1252- bpo-14635: [`telnetlib`](https://python-all.ru/3.3/library/telnetlib.html#module-telnetlib) будет использовать poll() вместо select(), когда возможно, чтобы избежать сбоев из-за ограничения на количество файловых дескрипторов в select().1253- bpo-15180: Уточнить сообщение об ошибке в posixpath.join() при смешивании str и bytes.1254- bpo-15343: pkgutil теперь включает реализацию iter\_importer\_modules для importlib.machinery.FileFinder (аналогично тому, как он уже обрабатывал zipimport.zipimporter).1255- bpo-15314: runpy теперь правильно устанавливает \_\_main\_\_.\_\_loader\_\_.1256- bpo-15357: Эмуляция импорта в pkgutil теперь устарела. pkgutil использует importlib внутренне вместо эмуляции.1257- bpo-15233: Python теперь гарантирует, что вызываемые объекты, зарегистрированные с помощью модуля atexit, будут вызваны в детерминированном порядке.1258- bpo-15238: [`shutil.copystat()`](https://python-all.ru/3.3/library/shutil.html#shutil.copystat) теперь копирует «расширенные атрибуты» Linux.1259- bpo-15230: runpy.run\_path теперь правильно устанавливает \_\_package\_\_, как описано в документации.1260- bpo-15315: Поддержка VS 2010 в distutils cygwincompiler.1261- bpo-15294: Исправлена регрессия в обработке вложенных пакетов пространств имён в pkgutil.extend\_path().1262- bpo-15056: [`imp.cache_from_source()`](https://python-all.ru/3.3/library/imp.html#imp.cache_from_source) и [`imp.source_from_cache()`](https://python-all.ru/3.3/library/imp.html#imp.source_from_cache) теперь вызывают NotImplementedError, если `sys.implementation.cache_tag` равен None.1263- bpo-15256: Грамматическая ошибка в исключении, которое поднимает [`imp.find_module()`](https://python-all.ru/3.3/library/imp.html#imp.find_module).1264- bpo-5931: Переменная окружения [`wsgiref`](https://python-all.ru/3.3/library/wsgiref.html#module-wsgiref) SERVER\_SOFTWARE теперь будет содержать специфичное для реализации название (например, CPython, Jython) вместо общего «Python».1265- bpo-13248: Удалён устаревший аргумент «max\_buffer\_size» из BufferedWriter и BufferedRWPair модуля io.1266- bpo-13248: Удалён устаревший аргумент «version» из [`argparse.ArgumentParser`](https://python-all.ru/3.3/library/argparse.html#argparse.ArgumentParser).1267- bpo-14814: Реализовано более согласованное упорядочивание и сортировка объектов ipaddress.1268- bpo-14814: Сетевые объекты [`ipaddress`](https://python-all.ru/3.3/library/ipaddress.html#module-ipaddress) теперь корректно возвращают NotImplemented при сравнении с произвольными объектами, а не вызывают TypeError.1269- bpo-14990: Исправлена ошибка: при неверном объявлении кодировки теперь корректно вызывается SyntaxError.1270- bpo-14814: [`ipaddress`](https://python-all.ru/3.3/library/ipaddress.html#module-ipaddress) теперь выдаёт более информативные сообщения об ошибках при прямом создании экземпляров (изменения разрешены на стадии бета-тестирования из-за статуса временного API).1271- bpo-15247: [`io.FileIO`](https://python-all.ru/3.3/library/io.html#io.FileIO) теперь вызывает ошибку, если ему передан файловый дескриптор, указывающий на каталог.1272- bpo-15261: Исправлен сбой os.stat(fd) в Windows, когда fd не открыт.1273- bpo-15166: Реализована [`imp.get_tag()`](https://python-all.ru/3.3/library/imp.html#imp.get_tag) с использованием `sys.implementation.cache_tag`.1274- bpo-15210: Перехватывать KeyError, когда `importlib.__init__()` не может найти \_frozen\_importlib в sys.modules, а не ImportError.1275- bpo-15030: [`importlib.abc.PyPycLoader`](https://python-all.ru/3.3/library/importlib.html#importlib.abc.PyPycLoader) теперь поддерживает новое поле заголовка размера исходного кода в .pyc файлах.1276- bpo-5346: Сохранять права доступа файлов почтовых ящиков mbox, MMDF и Babyl при flush().1277- bpo-10571: Исправлена опция «–sign» команды upload в distutils. Патч от Jakub Wilk.1278- bpo-9559: Если сообщения только добавлялись, при вызове flush() для mbox, MMDF или Babyl больше не создаётся новый файл, переименовываемый поверх старого.1279- bpo-10924: Исправлено [`crypt.mksalt()`](https://python-all.ru/3.3/library/crypt.html#crypt.mksalt): теперь используется ГСЧ, подходящий для криптографических целей.1280- bpo-15184: Обеспечена согласованность результатов настройки конфигурации OS X для универсальных сборок. Для этого общие для OS X настройки из sysconfig, distutils.sysconfig, distutils.util и distutils.unixccompiler вынесены в новый модуль \_osx\_support.12811282### C API12831284- bpo-15610: `PyImport_ImportModuleEx()` теперь использует уровень 0 вместо -1.1285- bpo-15169: Удалена C-реализация [`imp.source_from_cache()`](https://python-all.ru/3.3/library/imp.html#imp.source_from_cache), используемая PyImport\_ExecCodeModuleWithPathnames(), вместо неё теперь применяется код на Python. Это приводит к тому, что PyImport\_ExecCodeModuleObject() не пытается определить путь к исходному коду по пути к байт-коду, как это делает PyImport\_ExecCodeModuleWithPathnames(). (См. также bpo-14599)12861287### Библиотека12881289- bpo-6493: Исправлена проблема в ctypes в Windows, из-за которой битовые поля структур типа [`ctypes.c_uint32`](https://python-all.ru/3.3/library/ctypes.html#ctypes.c_uint32) шириной 32 могли устанавливаться некорректно.1290- bpo-15194: Обновлена libffi до версии 3.0.11.12911292### IDLE12931294- bpo-13052: Исправлен сбой IDLE при замене строки в диалоге поиска/замены, если строка замены заканчивалась на `\`. Патч от Roger Serwy.12951296### Инструменты/Демонстрации12971298- bpo-15458: python-config получил новую опцию –configdir для вывода значения $LIBPL.1299- Перенесён importlib.test.benchmark в Tools/importbench.1300- bpo-12605: Отладочные хуки gdb для CPython (в Tools/gdb) расширены: теперь в командах «py-bt» и «py-bt-full» показывается информация о большем числе C-фреймов, имеющих отношение к CPython:13011302 - C-фреймы, ожидающие GIL1303 - C-фреймы, выполняющие сборку мусора1304 - C-фреймы, возникшие из-за вызова PyCFunction13051306### Документация13071308- bpo-15041: Обновлён список «см. также» в документации tkinter.1309- bpo-15444: Исправлено написание имён участников, содержащих символы не из ASCII. Патч от Serhiy Storchaka.1310- bpo-15295: Реорганизована и переписана документация по системе импорта.1311- bpo-15230: Четкое описание некоторых ограничений модуля runpy, с рекомендацией в пользу importlib там, где это уместно.1312- bpo-15053: Уведомление об изменении блокировки импорта в Python 3.3 скопировано во все соответствующие функции модуля imp, а не только в начало раздела.1313- bpo-15288: В примечаниях pkgutil добавлена ссылка на термин «загрузчик» с пояснением, что в Python 3.3 поведение изменится; соответствующие функции помечены как «измененные», так как они больше не работают с модулями, импортируемыми напрямую.1314- bpo-13557: Уточнен эффект передачи двух разных пространств имен в [`exec()`](https://python-all.ru/3.3/library/functions.html#exec) или `execfile()`.1315- bpo-15250: Задокументировано, что [`filecmp.dircmp()`](https://python-all.ru/3.3/library/filecmp.html#filecmp.dircmp) сравнивает файлы поверхностно. Патч от Криса Джердонека.13161317### Тесты13181319- bpo-15467: Вспомогательные функции для тестов `__sizeof__()` перенесены в test\_support. Патч от Serhiy Storchaka.1320- bpo-15320: Сделать итерацию по списку тестов потокобезопасной при запуске тестов в многопроцессном режиме. Патч от Криса Джердонека.1321- bpo-15168: Перенести `importlib.test` в `test.test_importlib`.1322- bpo-15091: Повторно активирован тест в UNIX, который завершался с ошибкой из-за забытого вызова [`importlib.invalidate_caches()`](https://python-all.ru/3.3/library/importlib.html#importlib.invalidate_caches).1323- bpo-15230: В тестах runpy применен более систематический подход.1324- bpo-15300: Обеспечить, чтобы временные рабочие каталоги тестов находились в одной родительской папке при запуске тестов в многопроцессном режиме из сборки Python. Патч от Криса Джердонека.1325- bpo-15284: Пропускать тесты {send,recv}msg в test\_socket, если IPv6 не включен. Патч от Брайана Бразила.1326- bpo-15277: Исправлена утечка ресурсов в support.py при отключенном IPv6. Патч от Брайана Бразила.13271328### Сборка13291330- bpo-11715: Исправлено обнаружение мультиархитектурности без установленных инструментов разработки Debian (dpkg-dev).1331- bpo-15037: Установщики OS X теперь собираются с локальной копией библиотек ncurses 5.9, чтобы избежать ошибки curses.unget\_wch, присутствующей в старых версиях ncurses, например, поставляемых с OS X.1332- bpo-15560: Исправлена сборка расширения \_sqlite3 на OS X с SDK. Кроме того, для установщиков OS X обеспечена согласованность поведения sqlite3 и доступность функций за счет сборки локальной копии libsqlite3 вместо зависимости от широкого спектра версий, поставляемых с различными выпусками OS X.1333- bpo-8847: Отключено свертывание COMDAT в PGO-сборках Windows.1334- bpo-14018: Исправлена проверка фреймворка Tcl/Tk на OS X при использовании SDK OS X.1335- bpo-16256: Установщик OS X теперь устанавливает правильные права доступа для каталога doc.1336- bpo-15431: Добавлен проект \_freeze\_importlib для перегенерации importlib.h в Windows. Патч от Kristján Valur Jónsson.1337- bpo-14197: Для сборок фреймворка OS X обеспечить создание ссылок на разделяемую библиотеку с правильным суффиксом ABI.1338- bpo-14330: Для кросс-сборок не использовать хост-питон, а использовать пути поиска хоста для хост-компилятора.1339- bpo-15235: Разрешены версии Berkeley DB до 5.3 для сборки модуля dbm.1340- bpo-15268: Поиск curses.h в /usr/include/ncursesw.13411342## Python 3.3.0 бета 113431344*Дата релиза: 27 июня 2012*13451346### Ядро и встроенные модули13471348- Исправлена (вероятнее всего) очень редкая утечка памяти при вызове main() и невозможности декодировать аргумент командной строки.1349- bpo-14815: Использовать Py\_ssize\_t вместо long для хэша объекта, чтобы сохранить все 64 бита хэша на Win64.1350- bpo-12268: Методы readline, readlines, read() и readall() больше не теряют данные при прерывании лежащего в основе системного вызова read. IOError больше не возникает из-за системного вызова read, возвращающего EINTR внутри этих методов.1351- bpo-11626: Добавлены функции \_SizeT в стабильный ABI.1352- bpo-15142: Исправлена утечка ссылок при освобождении экземпляров типов, созданных с помощью PyType\_FromSpec().1353- bpo-10053: Не закрывать файловые дескрипторы, если FileIO.\_\_init\_\_ завершился ошибкой. Основано на работе Хирокодзу Ямамото.1354- bpo-15096: Удалена поддержка ur'', так как сырая нотация несовместима с сырыми строками Unicode в Python 2.x.1355- bpo-13783: Объекты-генераторы теперь используют API идентификаторов внутри.1356- bpo-14874: Восстановлена скорость декодирования charmap до уровней, существовавших до PEP 393. Патч от Серхия Сторчаки.1357- bpo-15026: Кодировка utf-16 стала значительно быстрее (до 10 раз). Патч от Серхия Сторчаки.1358- bpo-11022: open() и io.TextIOWrapper теперь вызывают locale.getpreferredencoding(False) вместо locale.getpreferredencoding() в текстовом режиме, если кодировка не указана. Временное изменение кодировки локали через locale.setlocale() не меняет текущую кодировку локали; используется текущая кодировка локали, а не предпочитаемая пользователем.1359- bpo-14673: Добавлена реализация sys.implementation от Эрика Сноу.1360- bpo-15038: Оптимизация блокировок Python на Windows.13611362### Библиотека13631364- bpo-16305: исправлена ошибка сегментации, возникающая при прерывании math.factorial.1365- bpo-12288: Считать '0' и '0.0' допустимыми initialvalue для tkinter SimpleDialog.1366- bpo-15512: Добавлена реализация \_\_sizeof\_\_ для парсера. Патч от Серхия Сторчаки.1367- bpo-15469: Добавлена реализация \_\_sizeof\_\_ для объектов deque. Патч от Серхия Сторчаки.1368- bpo-15489: Добавлена реализация \_\_sizeof\_\_ для объектов BytesIO. Патч от Серхия Сторчаки.1369- bpo-15487: Добавлена реализация \_\_sizeof\_\_ для буферизованных объектов ввода-вывода. Патч от Серхия Сторчаки.1370- bpo-15514: Исправлена поддержка \_\_sizeof\_\_ для cpu\_set. Патч от Серхия Сторчаки.1371- bpo-15177: Добавлен параметр dir\_fd в os.fwalk().1372- bpo-15061: Переписана hmac.compare\_digest() на C для предотвращения дальнейшего анализа времени выполнения и обеспечения безопасной поддержки всех объектов, поддерживающих буферный протокол, а также строк, содержащих только ASCII.1373- bpo-15164: Изменено возвращаемое значение platform.uname() с обычного кортежа на collections.namedtuple.1374- Добавлена поддержка Mageia Linux в модуль platform.1375- bpo-11678: Добавлена поддержка Arch Linux в модуль platform.1376- bpo-15118: Изменено возвращаемое значение os.uname() и os.times() с обычных кортежей на неизменяемые итерируемые объекты с именованными атрибутами (объекты structseq).1377- Ускорение \_decimal ещё на 10–15% за счёт кэширования последнего использованного контекста потока. В тесте pi (64-разрядная платформа, prec=9) \_decimal теперь лишь в 1,5 раза медленнее float.1378- Удалён модуль packaging, который не готов к широкому использованию.1379- bpo-15154: Добавлен параметр «dir\_fd» в os.rmdir, удалён параметр «rmdir» из os.remove / os.unlink.1380- bpo-4489: Добавлен shutil.rmtree, не подверженный атакам через символические ссылки. Он используется автоматически на платформах, поддерживающих необходимые функции os.openat() и os.unlinkat(). Основной код – Мартина фон Лёвиса.1381- bpo-15156: HTMLParser теперь использует новый словарь «html.entities.html5».1382- bpo-11113: Добавлен новый словарь «html5», содержащий именованные символьные ссылки, определённые стандартом HTML5, и эквивалентные символы Unicode, в модуль html.entities.1383- bpo-15114: Строгий режим HTMLParser и исключение HTMLParseError объявлены устаревшими, так как парсер теперь может обрабатывать некорректную разметку.1384- bpo-3665: Экранирования u и U теперь поддерживаются в регулярных выражениях Unicode. Патч от Серхия Сторчаки.1385- bpo-15153: Добавлен inspect.getgeneratorlocals для упрощения тестирования белого ящика обновлений состояния генератора.1386- bpo-13062: Добавлен inspect.getclosurevars для упрощения тестирования замыканий с состоянием.1387- bpo-11024: Исправления и дополнительные тесты для Time2Internaldate.1388- bpo-14626: Крупный рефакторинг функций/параметров в модуле os. Многие функции теперь поддерживают параметры «dir\_fd» и «follow\_symlinks»; некоторые также поддерживают приём открытого файлового дескриптора вместо строки пути. Добавлены коллекции os.support\_\* в качестве вспомогательных средств LBYL. Удалены многие функции, ранее доступные только в альфа-версиях 3.3 (часто начинающиеся с «f» или «l», или заканчивающиеся на «at»). Исходно предложено Serhiy Storchaka; реализовано Larry Hastings.1389- bpo-15008: Реализация PEP 362 «Signature Objects». Патч от Yury Selivanov.1390- bpo-15138: base64.urlsafe\_{en,de}code() теперь работают в 3-4 раза быстрее.1391- bpo-444582: Добавлена функция shutil.which для поиска программ в системном пути. Исходный патч от Erik Demaine, с последующими доработками от Jan Killian и Brian Curtin.1392- bpo-14837: Ошибки SSL теперь имеют атрибуты `library` и `reason`, точно описывающие, что произошло и в каком подмодуле OpenSSL. str() SSLError также улучшена соответствующим образом.1393- bpo-9527: Метод datetime.astimezone() теперь будет возвращать экземпляр класса timezone, соответствующий системному локальному часовому поясу, при вызове без аргументов.1394- bpo-14653: email.utils.mktime\_tz() больше не полагается на системную mktime(), когда указано смещение часового пояса.1395- bpo-14684: zlib.compressobj() и zlib.decompressobj() теперь поддерживают использование предопределённых словарей сжатия. Исходный патч от Sam Rushing.1396- Исправлена обработка GzipFile имён файлов, заданных как объекты bytes.1397- bpo-14772: Возврат значений назначения из некоторых функций shutil.1398- bpo-15064: Реализация протокола контекстного менеджера для типов multiprocessing.1399- bpo-15101: Финализатор пула теперь избегает присоединения текущего потока.1400- bpo-14657: Замороженный экземпляр importlib, используемый для начальной загрузки, теперь также является модулем, импортируемым как importlib.\_bootstrap.1401- bpo-14055: Добавлена поддержка \_\_sizeof\_\_ для \_elementtree.1402- bpo-15054: Исправлена ошибка в tokenize.tokenize, из-за которой строковые литералы с префиксом 'b' токенизировались неправильно. Патч от Serhiy Storchaka.1403- bpo-15006: Разрешено сравнение на равенство между наивными и осведомлёнными объектами time или datetime.1404- bpo-15036: Mailbox больше не вызывает ошибку, если между операциями при удалении или изменении нескольких элементов в почтовых ящиках mbox, MMDF или Babyl выполняется сброс (flush).1405- bpo-14059: Реализация multiprocessing.Barrier.1406- bpo-15061: Неудачно названная функция hmac.secure\_compare переименована в hmac.compare\_digest, ограничена работой только с входными данными bytes, и её документация обновлена, чтобы более точно отражать как её назначение, так и её ограничения.1407- bpo-13841: Дочерние процессы теперь завершаются с помощью sys.exit() в Windows.1408- bpo-14936: curses\_panel преобразован в API PEP 3121 и PEP 384. Патч от Robin Schreiber.1409- bpo-1667546: На платформах, поддерживающих поля tm\_zone и tm\_gmtoff в struct tm, объекты time.struct\_time, возвращаемые функциями time.gmtime(), time.localtime() и time.strptime(), теперь имеют атрибуты tm\_zone и tm\_gmtoff. Исходный патч от Paul Boddie.1410- Переименование атрибута adjusted в adjustable в результате time.get\_clock\_info().1411- bpo-3518: Удалены ссылки на несуществующий метод BaseManager.from\_address().1412- bpo-13857: Добавлена функция textwrap.indent() (исходный патч от Ezra Berch).1413- bpo-2736: Добавлен метод datetime.timestamp().1414- bpo-13854: Обработка multiprocessing нецелых и нестроковых аргументов SystemExit теперь корректна.1415- bpo-12157: pool.map() теперь корректно обрабатывает пустые итерируемые объекты. Исходный патч от mouad.1416- bpo-11823: Дизассемблирование теперь показывает количество аргументов при вызовах с именованными аргументами.1417- bpo-14711: os.stat\_float\_times() объявлена устаревшей.1418- LZMAFile теперь принимает режимы «rb»/«wb»/«ab» как синонимы «r»/«w»/«a».1419- Модули bz2 и lzma теперь содержат функцию open(), позволяющую легко открывать сжатые файлы как в текстовом, так и в двоичном режиме.1420- BZ2File.\_\_init\_\_() и LZMAFile.\_\_init\_\_() теперь принимают файловый объект в качестве первого аргумента, вместо того чтобы требовать отдельный аргумент «fileobj».1421- gzip.open() теперь принимает как файловые объекты, так и имена файлов.1422- bpo-14992: os.makedirs(path, exist\_ok=True) вызывал OSError, если путь существовал и у него был установлен бит режима S\_ISGID, хотя этого явно не запрашивалось. Теперь это исключение не возникает, так как mkdir не может контролировать, установит ли ОС этот бит или нет.1423- bpo-14989: Опция включения CGI для http.server теперь доступна из командной строки.1424- bpo-14987: Добавлен отсутствующий оператор import в модуль inspect.1425- bpo-1079: email.header.decode\_header теперь корректно разбирает все примеры из RFC2047. Есть необходимое заметное изменение поведения: начальные и/или конечные пробелы в ASCII-частях теперь сохраняются.1426- bpo-14969: Улучшена обработка цепочек исключений в contextlib.ExitStack1427- bpo-14963: Переписан contextlib.ExitStack.\_\_exit\_\_ на итеративный алгоритм (патч от Alon Horev)1428- bpo-14785: Добавлена функция sys.\_debugmallocstats(), помогающая отлаживать проблемы низкоуровневого распределения памяти1429- bpo-14443: Обеспечена компиляция .py-файлов в байт-код с правильным исполняемым файлом Python в bdist\_rpm даже на старых версиях RPM14301431### C API14321433- bpo-15146: Добавлена PyType\_FromSpecWithBases. Патч от Robin Schreiber.1434- bpo-15042: Добавлены PyState\_AddModule и PyState\_RemoveModule. Добавлена защита по версии для дополнений Py\_LIMITED\_API. Патч от Robin Schreiber.1435- bpo-13783: Случайные дополнения к публичному C API в реализации PEP 380 были либо удалены, либо помечены как частные интерфейсы.14361437### Библиотека14381439- bpo-15000: Поддержка архитектуры x32 (unique) в \_posixsubprocess.c.14401441### IDLE14421443- bpo-9803: Не закрывать IDLE при сохранении, если открыта точка останова. Патч от Roger Serwy.1444- bpo-14962: Обновление цвета текста в окне оболочки IDLE после изменения параметров. Патч от Roger Serwy.14451446### Документация14471448- bpo-15176: Уточнено поведение, документация и реализация os.listdir().1449- bpo-14982: Документировано, что функции итерации pkgutil требуют, чтобы импортёр определял нестандартный метод iter\_modules() (чего импортёры importlib не делают).1450- bpo-15081: Документирована PyState\_FindModule. Патч от Robin Schreiber.1451- bpo-14814: Добавлен первый черновик справочника по API модуля ipaddress14521453### Тесты14541455- bpo-15187: Исправление ошибки: удаление временных каталогов, которые оставлял test\_shutil.1456- bpo-14769: test\_capi теперь содержит SkipitemTest, который умно проверяет «чётность» между PyArg\_ParseTuple() и статической функцией skipitem() в Python/getargs.c для всех возможных «форматных единиц».1457- test\_nntplib теперь терпимо относится к запуску через NNTP-шлюзы, которые добавляют заголовки «X-Antivirus» к статьям1458- bpo-15043: test\_gdb теперь полностью пропускается, если настройки безопасности gdb блокируют загрузку хуков gdb1459- bpo-14963: Добавлены тестовые примеры для обработки исключений в contextlib.ExitStack (первоначальный патч от Alon Horev)14601461### Сборка14621463- bpo-13590: Улучшена поддержка OS X Xcode 4: \* Попытка избежать сборки Python или модулей расширения проблемным компилятором llvm-gcc. \* Поскольку Xcode 4 удаляет поддержку ppc, сборка модулей расширения теперь проверяет поддержку компилятором ppc и автоматически удаляет архитектуры ppc и ppc64, если они недоступны. \* Поскольку Xcode 4 больше не устанавливает SDK в стандартные расположения, сборка модулей расширения теперь возвращается к использованию установленных заголовков и библиотек, если SDK, использованный для сборки интерпретатора, недоступен. \* Обновлён ./configure для использования более подходящих значений по умолчанию для универсальных сборок; в частности, –enable-universalsdk=yes использует SDK по умолчанию из Xcode, а –with-universal-archs теперь по умолчанию имеет значение «intel», если ppc недоступен.1464- bpo-14225: Исправлена поддержка Unicode для curses (#12567) на OS X1465- bpo-14928: Исправлены проблемы начальной загрузки importlib с помощью пользовательского исполняемого файла (Modules/\_freeze\_importlib) для сборки Python/importlib.h.14661467## Python 3.3.0 альфа 414681469*Дата выпуска: 31 мая 2012*14701471### Ядро и встроенные модули14721473- bpo-14835: Изменить вывод plistlib пустых массивов и словарей, как в OS X. Патч от Sidney San Martín.1474- bpo-14744: Использовать новый внутренний API \_PyUnicodeWriter для ускорения str%args и str.format(args).1475- bpo-14930: Сделать объекты memoryview допускающими слабые ссылки.1476- bpo-14775: Исправлена потенциальная квадратичная сложность сборки словаря из-за повторных попыток сборщика мусора отменить отслеживание словарей.1477- bpo-14857: Исправлен регресс в ссылках на неявную переменную замыкания \_\_class\_\_ из PEP 3135 (Возобновлено [issue #12370](https://python-all.ru/3.3/whatsnew/changelog.html))1478- bpo-14712: Виртуальные окружения. Реализовано Винаем Саджипом. (См. также: PEP 405)1479- bpo-14660: Пакеты пространств имён. Реализовано Эриком Смитом. (См. также: PEP 420)1480- bpo-14494: Исправлено \_\_future\_\_.py и его документация, чтобы указать, что абсолютные импорты являются поведением по умолчанию в 3.0, а не в 2.7. Патч от Свена Марнаха.1481- bpo-9260: Более детальная блокировка импорта. Теперь большая часть последовательности импорта использует блокировки на модуль вместо глобальной блокировки импорта, устраняя известные проблемы с потоками и импортом.1482- bpo-14624: Декодирование UTF-16 теперь в 3–4 раза быстрее на различных входных данных. Патч от Серхия Сторчаки.1483- asdl\_seq и asdl\_int\_seq теперь имеют размер Py\_ssize\_t.1484- bpo-14133: Реализовано подавление отображения \_\_context\_\_ с помощью атрибута BaseException. Это заменяет исходный механизм из PEP 409. (См. также: PEP 415)1485- bpo-14417: Изменение словаря во время поиска теперь перезапускает поиск вместо возникновения RuntimeError (отменяет [issue #14205](https://python-all.ru/3.3/whatsnew/changelog.html)).1486- bpo-14738: Ускорение декодирования UTF-8 на не-ASCII данных. Патч от Серхия Сторчаки.1487- bpo-14700: Исправлены две сломанные проверки переполнения, приводящие к неопределённому поведению, в форматировании строк старого стиля.14881489### Библиотека14901491- bpo-14690: Использование монотонных часов вместо системных в модулях sched, подпроцесс и trace.1492- bpo-14443: Указание rpmbuild использовать правильную версию Python в bdist\_rpm. Первичный патч от Росса Лагервалла.1493- bpo-12515: Модуль email теперь регистрирует дефект, если при разборе MIME-части достигается конец файла без закрывающей MIME-границы.1494- bpo-1672568: Модуль email теперь всегда декодирует полезные данные base64, добавляя заполнение и игнорируя символы, не входящие в алфавит base64, при необходимости, и регистрируя дефекты для любых подобных проблем.1495- bpo-14925: Модуль email теперь регистрирует дефект, когда парсер решает, что отсутствует строка-разделитель заголовка и тела. MalformedHeaderDefect, который существующий код никогда фактически не генерировал, объявлен устаревшим.1496- bpo-10365: Диалог открытия файла теперь работает вместо аварийного завершения, даже если родительское окно закрыто до диалога. Патч от Роджера Серви.1497- bpo-8739: Обновлён smtpd для поддержки RFC 5321, добавлена поддержка расширения SIZE из RFC 1870.1498- bpo-665194: Добавлена функция localtime в email.utils для предоставления осведомлённого местного времени для использования при установке заголовков Date.1499- bpo-12586: Добавлены новые временные политики, реализующие удобную поддержку Юникода для заголовков email. Подробности см. в What’s New.1500- bpo-14731: Рефакторинг фреймворка Policy в email для поддержки полной обратной совместимости с Python 3.2 по умолчанию, но при этом допускающего внедрение новых функций через новые политики. Обратите внимание, что Policy.must\_be\_7bit переименован в cte\_type.1501- bpo-14876: Использование выбранного пользователем шрифта для конфигурации подсветки.1502- bpo-14920: Исправлена ошибка help(urllib.parse) в локали C на терминалах. В справке используются только ASCII-символы.1503- bpo-14548: Сделать финализаторы multiprocessing проверяющими pid перед выполнением, чтобы справиться с возможностью запуска gc сразу после fork.1504- bpo-14036: Добавлена дополнительная проверка для валидации того, что порт в urlparse не выходит за недопустимый диапазон, и возвращает None.1505- bpo-14862: Добавлены недостающие имена в os.\_\_all\_\_1506- bpo-14875: Использование float('inf') вместо float('1e66666') в модуле json.1507- bpo-13585: Добавлен contextlib.ExitStack1508- PEP 3144, [Issue #14814](https://python-all.ru/3.3/whatsnew/changelog.html): Добавлен модуль ipaddress1509- bpo-14426: Исправлен формат Date в атрибуте Expires заголовка Set-Cookie в Cookie.py.1510- bpo-14588: Модуль types теперь содержит функции new\_class() и prepare\_class() для поддержки динамического создания классов в соответствии с PEP 3115. Патч от Daniel Urban и Nick Coghlan.1511- bpo-13152: Разрешено указывать собственный размер табуляции для раскрытия табуляции в textwrap. Патч от John Feuerstein.1512- bpo-14721: При пустой строке тела запроса теперь отправляется корректный заголовок ‘Content-length: 0’. Первый патч от Arve Knudsen.1513- bpo-14072: Исправлен разбор URI ‘tel’ в urlparse за счёт ужесточения проверки портов.1514- bpo-9374: Универсальный разбор частей запроса и фрагмента URL для любой схемы. Поддерживается как RFC3986, так и RFC2396.1515- bpo-14798: Исправлены функции в pyclbr: теперь они вызывают ImportError, если первая часть составного имени не является пакетом. Патч от Xavier de Gaye.1516- bpo-12098: Теперь multiprocessing в Windows запускает дочерние процессы с теми же sys.flags, что и текущий процесс. Первый патч от Sergey Mezentsev.1517- bpo-13031: Небольшое ускорение tarfile при распаковке tar-файлов. Патч от Justin Peel.1518- bpo-14780: urllib.request.urlopen() теперь имеет аргумент `cadefault` для использования хранилища сертификатов по умолчанию. Первый патч от James Oakley.1519- bpo-14829: Исправлена индексация bisect и range() с большими индексами (\>= 2 \*\* 32) в 64-разрядной Windows.1520- bpo-14732: Модуль \_csv теперь использует инициализацию модуля в соответствии с PEP 3121. Патч от Robin Schreiber.1521- bpo-14809: В http.server и http.client добавлены коды состояния HTTP, введённые RFC 6585. Патч от EungJun Yi.1522- bpo-14777: При обращении к буферу обмена Tk tkinter может возвращать нераскодированные байты UTF-8 в виде строки. Изменена функция clipboad\_get(): теперь в окружении X11 при отсутствии запроса конкретного типа сначала запрашивается тип UTF8\_STRING, а в случае неудачи используется текущий тип STRING по умолчанию. Оригинальный патч от Thomas Kluyver.1523- bpo-14773: Исправлена ошибка os.fwalk() при обходе сломанных символьных ссылок.1524- bpo-12541: Снижены требования к кавычкам вокруг поля «Область» в HTTP-базовой аутентификации в urllib2.1525- bpo-14807: Незадокументированная функция tarfile.filemode() перенесена в stat.filemode() с добавлением документации. Добавлен псевдоним tarfile.filemode() с предупреждением об устаревании.1526- bpo-13815: TarFile.extractfile() теперь возвращает объекты io.BufferedReader.1527- bpo-14532: В модуль hmac добавлена вспомогательная функция secure\_compare() для снижения риска атак по времени. Патч от Jon Oberheide.1528- Добавлена importlib.util.resolve\_name().1529- bpo-14366: Поддержка сжатия lzma в zip-файлах. Патч от Serhiy Storchaka.1530- bpo-13959: Введена importlib.find\_loader(), а imp.find\_module/load\_module задокументированы как устаревшие.1531- bpo-14082: shutil.copy2() теперь копирует расширенные атрибуты, если это возможно. Патч от Hynek Schlawack.1532- bpo-13959: Единственный аргумент методов importlib.abc.FileLoader.load\_module()/get\_filename() и importlib.machinery.ExtensionFileLoader.load\_module() сделан необязательным. Это позволяет заменить (и тем самым объявить устаревшими) imp.load\_source()/load\_package()/load\_compiled().1533- bpo-13959: imp.get\_suffixes() устарела в пользу новых атрибутов importlib.machinery: SOURCE\_SUFFIXES, DEBUG\_BYTECODE\_SUFFIXES, OPTIMIZED\_BYTECODE\_SUFFIXES, BYTECODE\_SUFFIXES и EXTENSION\_SUFFIXES. Это косвенно привело к устареванию inspect.getmoduleinfo().1534- bpo-14662: Предотвращение сбоев shutil в OS X, когда целевой объект не поддерживает операции chflag. Патч от Hynek Schlawack.1535- bpo-14157: Исправлена ошибка time.strptime, когда без указания года на 29 февраля. Патч от Hynek Schlawack.1536- bpo-14753: Обработка отрицательных тайм-аутов в multiprocessing приведена к поведению Python 3.2.1537- bpo-14583: Исправлена ошибка importlib, когда \_\_init\_\_.py пакета сначала импортировал один из своих модулей, а затем вызывал ошибку.1538- bpo-14741: Исправлена отсутствующая поддержка многоточия (‘...’) в модуле parser.1539- bpo-14697: Исправлена отсутствующая поддержка литералов множеств и генераторов множеств в модуле parser.1540- bpo-14701: Исправлена отсутствующая поддержка ‘raise ... from’ в модуле parser.1541- Добавлена поддержка тайм-аутов в методы acquire() прокси-объектов блокировок, семафоров и условий модуля multiprocessing.1542- bpo-13989: Добавлена поддержка текстового режима в gzip.open().1543- bpo-14127: Объект результата os.stat() теперь предоставляет три дополнительных поля: st\_ctime\_ns, st\_mtime\_ns и st\_atime\_ns, которые возвращают эти времена в виде целого числа с точностью до наносекунд. Функции os.utime(), os.lutimes() и os.futimes() теперь принимают новый параметр ns, который принимает mtime и atime как целые числа с точностью до наносекунд.1544- bpo-14127: shutil.copystat теперь сохраняет точные значения mtime и atime в файловых системах, поддерживающих наносекундную точность. (См. также: bpo-10148)15451546### IDLE15471548- bpo-14958: Изменена подсветка синтаксиса IDLE для распознавания всех строковых и байтовых литералов, поддерживаемых в Python 3.3.1549- bpo-10997: Предотвращение появления дублирующейся записи в меню «Недавние файлы» IDLE.1550- bpo-14929: Исправлено закрытие IDLE 3.x при ошибках декодирования Unicode во время поиска. Исправление от Roger Serwy.1551- bpo-12510: Попытка получить недопустимую подсказку больше не приводит к закрытию IDLE. Другие подсказки исправлены или улучшены, количество тестов увеличено втрое. Оригинальный патч от Roger Serwy.15521553### Инструменты/Демонстрации15541555- bpo-14695: Обновление поддержки Tools/parser/unparse.py в соответствии с грамматикой Python 3.3.15561557### Сборка15581559- bpo-14472: Обновлён .gitignore. Исправление от Matej Cepl.1560- Обновлены версии библиотек Windows: bzip 1.0.6, OpenSSL 1.0.1c.1561- bpo-14693: На платформах, отличных от Windows, резервные модули hashlib всегда компилируются, даже если OpenSSL присутствует во время сборки.1562- bpo-13210: Сборка Windows теперь использует VS2010, перенесённая с VS2008.15631564### C API15651566- bpo-14705: Семейство функций PyArg\_Parse() теперь поддерживает единицу формата 'p', которая принимает аргумент «логический предикат». Она преобразует любое значение Python в целое число: 0, если оно «ложно», и 1 в противном случае.15671568### Документация15691570- bpo-14863: Обновлена документация os.fdopen(), чтобы отразить тот факт, что теперь это лишь тонкая обёртка вокруг open().1571- bpo-14588: Справочник по языку теперь точно документирует процесс определения класса в Python 3. Исправление от Nick Coghlan.1572- bpo-14943: Исправлено значение аргумента по умолчанию для winreg.OpenKey и корректно перечислены имена аргументов в описании функции.15731574## Python 3.3.0 альфа 315751576*Дата выпуска: 01-May-2012*15771578### Ядро и встроенные модули15791580- bpo-14699: Исправлен вызов дескриптора classmethod напрямую.1581- bpo-14433: Предотвращение краха msvcrt в интерактивной подсказке при закрытом stdin.1582- bpo-14521: Сделать результат float('nan') и float('-nan') более согласованным на разных платформах.1583- bpo-14646: \_\_import\_\_() устанавливает \_\_loader\_\_, если загрузчик этого не сделал.1584- bpo-14605: Больше нет неявных записей в sys.meta\_path. Если sys.meta\_path оказывается пустым, вызывается ImportWarning.1585- bpo-14605: Больше нет неявных записей в sys.path\_hooks. Если sys.path\_hooks оказывается пустым, будет выдано предупреждение. Теперь None вставляется в sys.path\_importer\_cache, если не найден ни один искатель. Это также означает, что imp.NullImporter больше не используется неявно.1586- bpo-13903: Реализация PEP 412. Отдельные экземпляры словарей теперь могут совместно использовать свои ключи с другими словарями. Классы используют это для совместного использования ключей своих словарей экземпляров для улучшения памяти и производительности.1587- bpo-11603: Установка \_\_repr\_\_ равным \_\_str\_\_ теперь вызывает RuntimeError при вызове repr() или str() для такого объекта.1588- bpo-14658: Исправлено связывание специального метода со встроенной реализацией специального метода с другим именем.1589- bpo-14630: Исправлена ошибка доступа к памяти для экземпляров подкласса int со значением 0.1590- bpo-14339: Улучшение скорости функций bin, oct и hex. Исправление от Serhiy Storchaka.1591- bpo-14385: Теперь можно использовать пользовательский тип для пространства имён \_\_builtins\_\_ вместо словаря. Это может быть использовано, например, для изоляции (sandboxing). Также теперь вызывается NameError вместо ImportError, если имя \_\_build\_class\_\_ не найдено в \_\_builtins\_\_.1592- bpo-12599: Ужесточение проверки при принятии None по сравнению с объектом, подобным false, для importlib.util.module\_for\_loader и importlib.machinery.PathFinder.1593- bpo-14612: Исправлено перескакивание между блоками при установке f\_lineno.1594- bpo-14592: Попытка выполнить относительный импорт без установленных \_\_package\_\_ или \_\_name\_\_ в globals вызывает KeyError.1595- bpo-14607: Исправлена ошибка с keyword-only аргументами, начинавшимися с `__`.1596- bpo-10854: ImportError, возникающий при неудачном импорте модуля расширения в Windows, теперь использует новые атрибуты path и name из задачи #1559549.1597- bpo-13889: Перед вызовом любой из функций преобразования строки в число с плавающей запятой и обратно из dtoa.c в сборках Python для MSVC проверяется и (при необходимости) устанавливается управляющее слово FPU. Это исправляет проблемы при встраивании Python в приложение на Delphi.1598- \_\_import\_\_() теперь соответствует PEP 328 и документации: значение по умолчанию для 'index' равно 0 вместо -1, удалена поддержка отрицательных значений.1599- bpo-2377: Сделать importlib реализацией \_\_import\_\_().1600- bpo-1559549: ImportError теперь имеет атрибуты 'name' и 'path', которые устанавливаются через именованные аргументы конструктора. В настоящее время они не устанавливаются при импорте, так как предназначены для использования в importlib.1601- bpo-14474: Сохранение и восстановление состояния исключения в thread.start\_new\_thread() при записи сообщения об ошибке, если поток порождает необработанное исключение.1602- bpo-13019: Исправлена потенциальная утечка ссылок в bytearray.extend(). Патч от Suman Saha.16031604### Библиотека16051606- bpo-14768: os.path.expanduser('~/a') работает некорректно, когда HOME равен '/'.1607- bpo-14371: Поддержка bzip2 в модуле zipfile. Патч от Serhiy Storchaka.1608- bpo-13183: Исправлена ошибка, из-за которой pdb пропускал фреймы после срабатывания точки останова и выполнения шага. Патч от Xavier de Gaye.1609- bpo-14696: Исправлена работа модуля parser: теперь он корректно обрабатывает объявления 'nonlocal'.1610- bpo-10941: Исправлена функция imaplib.Internaldate2tuple, чтобы она выдавала корректный результат вблизи перехода на летнее время. Патч от Joe Peterson.1611- bpo-9154: Исправлен модуль parser, теперь он корректно обрабатывает аннотации функций.1612- bpo-6085: В http.server.py SimpleHTTPServer.address\_string возвращает IP-адрес клиента вместо его имени хоста. Патч от Charles-François Natali.1613- bpo-14309: Функция time.clock() объявлена устаревшей, вместо неё используйте time.perf\_counter() или time.process\_time().1614- bpo-14428: Реализация PEP 418. Добавлены функции time.get\_clock\_info(), time.perf\_counter() и time.process\_time(), а также time.steady() переименована в time.monotonic().1615- bpo-14646: importlib.util.module\_for\_loader() теперь устанавливает \_\_loader\_\_ и \_\_package\_\_ (когда это возможно).1616- bpo-14664: Теперь можно использовать @unittest.skip{If,Unless} для тестового класса, который не наследуется от TestCase (то есть миксина).1617- bpo-4892: Объекты соединений модуля multiprocessing теперь можно передавать через другие соединения того же модуля. Патч от Richard Oudkerk (sbt).1618- bpo-14160: TarFile.extractfile() не мог разрешить символические ссылки, если они находились не в подкаталоге архива.1619- bpo-14638: pydoc теперь обрабатывает нестроковые значения \_\_name\_\_ так, как если бы они отсутствовали, вместо того чтобы вызывать ошибку.1620- bpo-13684: Исправлена проблема с туннелированием в httplib, приводившая к бесконечным циклам для некоторых сайтов, отправляющих EOF без завершающих rn.1621- bpo-14605: Добавлены importlib.abc.FileLoader, importlib.machinery.(FileFinder, SourceFileLoader, SourcelessFileLoader, ExtensionFileLoader).1622- bpo-13959: imp.cache\_from\_source()/source\_from\_cache() теперь следуют семантике os.path.join()/split() для манипуляций с путями, вместо своей предыдущей пользовательской семантики, которая переносила самый правый разделитель пути вперёд при объединении.1623- bpo-2193: Разрешён символ ':' в значениях NAME куки.1624- bpo-14629: tokenizer.detect\_encoding теперь указывает имя файла в исключении SyntaxError, если оно найдено в readline.\_\_self\_\_.name.1625- bpo-14629: В tokenizer.detect\_encoding теперь возбуждается SyntaxError, если первые две строки содержат символы, не являющиеся UTF-8, без объявления кодировки.1626- bpo-14308: Исправлено исключение, возникающее, когда в списке активных потоков модуля threading после fork() присутствует «фиктивный» поток.1627- bpo-11750: Функции Windows API, разбросанные по модулям \_subprocess и \_multiprocessing.win32, теперь находятся в одном модуле «\_winapi». Патч от sbt.1628- bpo-14087: multiprocessing: добавлен Condition.wait\_for(). Патч от sbt.1629- bpo-14538: HTMLParser теперь корректно разбирает начальные теги, содержащие одиночный символ '/'.1630- bpo-14452: SysLogHandler больше не вставляет BOM UTF-8 в сообщение.1631- bpo-14386: Внутренний тип dict\_proxy теперь доступен как types.MappingProxyType.1632- bpo-13959: Теперь imp.reload() всегда использует \_\_loader\_\_ модуля для выполнения перезагрузки.1633- bpo-13959: Добавлен imp.py, а встроенный модуль переименован в \_imp, что позволяет перереализовать части модуля на чистом Python.1634- bpo-13496: Исправлено потенциальное переполнение в алгоритме bisect.bisect при применении к коллекции размером \> sys.maxsize / 2.1635- Importlib теперь использует новые атрибуты 'name' и 'path' исключения ImportError.1636- bpo-14399: zipfile теперь определяет, что архив изменён, даже если изменён только комментарий. Кроме того, TypeError, возникающий при попытке установить недвоичное значение в качестве комментария, теперь вызывается в момент установки комментария, а не при записи zip-файла.1637- trace.CoverageResults.is\_ignored\_filename() теперь игнорирует любое имя, начинающееся с '\<' и заканчивающееся на '\>', вместо специальной обработки '\<string\>' и '\<doctest '.1638- bpo-12537: Модуль mailbox больше не зависит от знания внутренних деталей реализации объекта Message пакета email.1639- bpo-7978: socketserver теперь перезапускает вызов select(), когда возвращается EINTR. Это предотвращает аварийное завершение цикла сервера при получении сигнала. Патч от Jerzy Kozera.1640- bpo-14522: Устранено дублирование дескрипторов сокетов в multiprocessing.connection. Патч от sbt.1641- Не выполнять Py\_DECREF для NULL-переменной в io.IncrementalNewlineDecoder.1642- bpo-3033: Добавлен параметр displayof в tkinter.font. Патч от Guilherme Polo.1643- bpo-14482: Возбуждается ValueError, а не NameError, при попытке создать Client или Listener multiprocessing с адресом типа AF\_UNIX в Windows. Патч от Popa Claudiu.1644- bpo-802310: Имена шрифтов tkinter всегда генерируются уникальными, если не переданы явно.1645- bpo-14151: Возбуждается ValueError, а не NameError, при попытке создать Client или Listener модуля multiprocessing с адресом типа AF\_PIPE на не-Windows платформах. Патч от Popa Claudiu.1646- bpo-14493: В webbrowser используется gvfs-open или xdg-open.16471648### Сборка16491650- Цель 'make touch' теперь будет обновлять временные метки сгенерированных файлов, зафиксированных в Mercurial, после 'hg update', который не смог правильно установить временные метки.16511652### Тесты16531654- bpo-14026: В test\_cmd\_line\_script проверяется, что sys.argv заполняется корректно для различных способов вызова (патч от Jason Yeo)1655- bpo-14032: Исправлено неверное имя переменной в отладочном сообщении test\_cmd\_line\_script (патч от Jason Yeo)1656- bpo-14589: Обновлена цепочка сертификатов для sha256.tbs-internet.com, что исправляет ошибку теста в test\_ssl.1657- bpo-14355: Regrtest теперь поддерживает стандартную загрузку тестов unittest и использует её, если тестовый файл не содержит метода `test_main`.16581659### IDLE16601661- bpo-8515: Устанавливать \_\_file\_\_ при запуске файла в IDLE. Первоначальный патч от Bruce Frederiksen.1662- bpo-14496: Исправлено неверное имя в idlelib/tabbedpages.py. Патч от Popa Claudiu.16631664### Инструменты/Демонстрации16651666- bpo-3561: Установщик Windows теперь имеет опцию (по умолчанию выключена) для добавления каталога Python в системную переменную среды Path.1667- bpo-13165: stringbench теперь доступен в папке Tools/stringbench. Ранее он находился в собственном проекте SVN.16681669### C API16701671- bpo-14098: Новые функции PyErr\_GetExcInfo и PyErr\_SetExcInfo. Патч от Stefan Behnel.16721673## Python 3.3.0 альфа 216741675*Дата выпуска: 01-Apr-2012*16761677### Ядро и встроенные модули16781679- bpo-1683368: object.\_\_new\_\_ и object.\_\_init\_\_ возбуждают TypeError, если им переданы аргументы, а соответствующий дополнительный метод не переопределён.1680- bpo-14378: Исправлена компиляция узлов ast.ImportFrom со строкой '\_\_future\_\_' в качестве имени модуля, которая не была интернирована.1681- bpo-14331: Значительно уменьшено использование стекового пространства при импорте модулей за счет выделения буферов путей в куче вместо стека.1682- bpo-14334: Предотвращение segfault в type.\_\_getattribute\_\_, когда ему передаются не строки.1683- bpo-1469629: Разрешить сборку циклических ссылок через слот \_\_dict\_\_ объекта. (Например, если `x.__dict__ равно x`).1684- bpo-14205: Поиск в словаре вызывает RuntimeError, если словарь изменяется во время поиска.1685- bpo-14220: Когда генератор делегирует управление другому итератору с помощью синтаксиса yield from, его флаг `gi_running` должен быть установлен в True.1686- bpo-14435: Удален выделенный блочный аллокатор из floatobject.c; теперь используется API PyObject\_Malloc(), как и для всех остальных объектов.1687- bpo-14471: Исправлена возможная проблема переполнения буфера в модуле winreg.1688- bpo-14288: Разрешена сериализация встроенных итераторов.16891690### Библиотека16911692- bpo-14300: В Windows сокеты, созданные с помощью socket.dup(), теперь поддерживают перекрывающийся ввод-вывод. Патч от sbt.1693- bpo-13872: socket.detach() теперь помечает сокет как закрытый (это отражается в repr() сокета). Патч от Matt Joiner.1694- bpo-14406: Исправлено состояние гонки при использовании `concurrent.futures.wait( return_when=ALL_COMPLETED)`. Патч от Matt Joiner.1695- bpo-5136: объявлены устаревшими старые неиспользуемые функции из tkinter.1696- bpo-14416: syslog теперь определяет константы LOG\_ODELAY и LOG\_AUTHPRIV, если они определены в \<syslog.h\>.1697- bpo-14295: Добавлен модуль unittest.mock.1698- bpo-7652: Добавлена опция –with-system-libmpdec для configure, позволяющая связывать модуль \_decimal с установленной библиотекой libmpdec.1699- bpo-14380: MIMEText теперь по умолчанию использует utf-8, если ему передан не-ASCII юникод без указания кодировки.1700- bpo-10340: asyncore – корректная обработка EINVAL в конструкторе диспетчера на OSX; избегать вызова handle\_connect для разъединенного сокета, который не предназначался для подключения.1701- bpo-14204: Модуль ssl теперь поддерживает расширение согласования следующего протокола (Next Protocol Negotiation), если оно доступно в используемой библиотеке OpenSSL. Патч от Colin Marc.1702- bpo-3035: Неиспользуемые функции из tkinter помечены как ожидающие устаревания.1703- bpo-12757: Исправлен пропуск доктестов при запуске Python с флагом -OO; теперь они работают как в подробном, так и в обычном режиме unittest.1704- bpo-7652: Интегрирована библиотека десятичных чисел с плавающей точкой libmpdec для ускорения модуля decimal. Производительность новой реализации на C повышается в 10–100 раз в зависимости от приложения.1705- bpo-14269: SMTPD теперь соответствует RFC и требует команды HELO перед MAIL, RCPT или DATA.1706- bpo-13694: Асинхронное подключение в asyncore.dispatcher не устанавливает атрибут addr.1707- bpo-14344: исправлено представление (repr) объектов email.policy.1708- bpo-11686: Добавлены недостающие записи в списки \_\_all\_\_ пакета email (в основном новые классы Bytes).1709- bpo-14335: Пользовательский подкласс Pickler в multiprocessing теперь наследуется от реализации на C. Патч от sbt.1710- bpo-10484: Исправлена проблема обработки PATH\_INFO в CGIHTTPServer.1711- bpo-11199: Исправлено зависание urllib на некоторых FTP-URL.1712- Улучшено использование памяти и скорость работы functools.lru\_cache.1713- bpo-14222: Использовать новую функцию time.steady() вместо time.time() для тайм-аутов в модулях queue и threading, чтобы избежать влияния обновлений системного времени.1714- bpo-13248: Удалены методы get\_prefix/set\_prefix из lib2to3.pytree.Base.1715- bpo-14234: CVE-2012-0876: Рандомизация хэшей XML-атрибутов во внутренней хэш-таблице копии библиотеки expat в модуле pyexpat для предотвращения отказа в обслуживании из-за коллизий хэшей. Патч от David Malcolm с изменениями от проекта expat.1716- bpo-12818: форматирование адреса больше не экранирует без необходимости скобки () в именах, если имя оказывается в кавычках.1717- bpo-14062: BytesGenerator теперь правильно переносит объекты Header, в том числе использует linesep при переносе.1718- bpo-13839: при запуске из командной строки модуль pstats теперь принимает несколько имен файлов со статистикой профилирования и объединяет их. Исправление от Matt Joiner.1719- bpo-14291: модуль email теперь по умолчанию использует utf-8 для не-ASCII заголовков Unicode, вместо того чтобы вызывать ошибку. Это исправляет регрессию относительно версии 2.7.1720- bpo-989712: добавлена поддержка использования Tk без основного цикла.1721- bpo-3835: запрещено использование непоточного Tcl в многопоточном Python.1722- bpo-2843: добавлен новый Tk API в Tkinter.1723- bpo-14184: увеличен размер стека по умолчанию для вторичных потоков в Mac OS X, чтобы предотвратить аварийное завершение интерпретатора при использовании потоков в версии 10.7.1724- bpo-14180: методы datetime.date.fromtimestamp(), datetime.datetime.fromtimestamp() и datetime.datetime.utcfromtimestamp() теперь вызывают OSError вместо ValueError, если localtime() или gmtime() завершились неудачей.1725- bpo-14180: функции time.ctime(), gmtime(), time.localtime(), datetime.date.fromtimestamp(), datetime.datetime.fromtimestamp() и datetime.datetime.utcfromtimestamp() теперь вызывают OverflowError вместо ValueError, если метка времени не помещается в time\_t.1726- bpo-14180: методы datetime.datetime.fromtimestamp() и datetime.datetime.utcfromtimestamp() теперь округляют микросекунды в сторону нуля, а не до ближайшего с отбрасыванием чисел, равноудаленных от нуля.1727- bpo-10543: исправлено обнаружение тестов в unittest для файлов байт-кода Jython.1728- bpo-1178863: разделение инициализации и установки значения при инициализации Tkinter.Variables; унификация исключений до ValueError; удаление только тех переменных, которые не были удалены ранее; утверждение, что имена переменных являются строками.1729- bpo-14104: реализована функция time.monotonic() в Mac OS X; исправление написано Nicholas Riley.1730- bpo-13394: модуль aifc теперь использует warnings.warn() для вывода предупреждений.1731- bpo-14252: исправлен метод subprocess.Popen.terminate(), чтобы он не вызывал ошибку в Windows, если дочерний процесс уже завершился.1732- bpo-14223: функция curses.addch() больше не ограничена диапазоном 0–255, когда модуль curses в Python не слинкован с libncursesw. Это была регрессия, появившаяся в Python 3.3a1.1733- bpo-14168: добавлена проверка наличия Element.\_attrs в minidom перед обращением к нему.1734- bpo-12328: исправлено использование перекрывающегося ввода-вывода (overlapped I/O) в multiprocessing на Windows. Также добавлена функция multiprocessing.connection.wait(rlist, timeout=None) для одновременного опроса нескольких объектов. Исправление от sbt.1735- bpo-14007: теперь принимаются неполные объекты TreeBuilder (отсутствуют методы start, end, data или close) и для реализации на Python. Удалён не выполняющий никаких действий метод TreeBuilder().xml() из реализации на C.1736- bpo-14210: pdb теперь поддерживает автодополнение по табуляции не только для имён команд, но и, где возможно, для их аргументов.1737- bpo-14310: сокеты теперь можно передавать другим процессам в Windows с помощью методов socket.socket.share() и socket.fromshare().1738- bpo-10576: модуль gc теперь содержит член callbacks, который будет вызываться при сборке мусора.17391740### Сборка17411742- bpo-14557: исправлена сборка расширений на HP-UX. Исправление от Adi Roiban.1743- bpo-14387: accu.h больше не включается из Python.h.1744- bpo-14359: O\_CLOEXEC теперь используется в \_posixmodule.c только если он определён. Основано на исправлении от Hervé Coatanhay.1745- bpo-14321: pgen не запускается во время сборки, если файлы не изменялись.17461747### Документация17481749- bpo-14034: добавлено руководство по argparse.1750- bpo-14324: исправлены тесты configure для кросс-компиляции.1751- bpo-14327: добавлен вызов AC\_CANONICAL\_HOST в configure.ac и проверка в config.{guess,sub}. Не использовать вызовы uname для кросс-сборок.17521753### Библиотека17541755- bpo-9041: исправлена проблема в ctypes.c\_longdouble, ctypes.c\_double и ctypes.c\_float, из-за которой в случае переполнения возвращалось некорректное исключение.1756- bpo-14212: модуль re не сохранял ссылку на буферы, которые сканировал, что приводило к ошибкам сегментации.1757- bpo-14259: Метод finditer() объектов re не принимал именованных аргументов, вопреки документации.1758- bpo-10142: Поддержка SEEK\_HOLE/SEEK\_DATA (например, в ZFS).17591760### Тесты17611762- bpo-14442: Добавлен отсутствующий импорт errno в test\_smtplib.1763- bpo-8315: (частичное исправление) python -m unittest test.test\_email теперь работает.17641765## Python 3.3.0 альфа 117661767*Дата выпуска: 05-Mar-2012*17681769### Ядро и встроенные модули17701771- bpo-14172: Исправлена утечка ссылки при маршалинге объекта, похожего на буфер (кроме объекта bytes).1772- bpo-13521: dict.setdefault() теперь выполняет только один поиск по заданному ключу, что делает его «атомарным» для многих целей. Патч от Filip Gruszczyński.1773- PEP 409, [Issue #6210](https://python-all.ru/3.3/whatsnew/changelog.html): теперь поддерживается «raise X from None» как средство подавления отображения связанного контекста исключения. Связанный контекст по-прежнему доступен как атрибут \_\_context\_\_.1774- bpo-10181: Новая реализация memoryview исправляет множественные проблемы владения и времени жизни динамически выделяемых членов Py\_buffer (#9990), а также сбои (#8305, #7433). Добавлено много новых возможностей (см. whatsnew/3.3), документация существенно обновлена. Тестовый объект ndarray из \_testbuffer.c реализует все аспекты PEP-3118, поэтому дальнейшая разработка в направлении полной реализации PEP может продолжаться в стиле, управляемом тестами.17751776 Спасибо Nick Coghlan, Antoine Pitrou и Pauli Virtanen за рецензирование и многие идеи.1777- bpo-12834: Исправлены некорректные результаты memoryview.tobytes() для несплошных массивов.1778- bpo-5231: Представлен метод memoryview.cast(), позволяющий изменять формат и форму без копирования базовой памяти.1779- bpo-14084: Исправлена утечка файлового дескриптора при импорте модуля с неправильной кодировкой.1780- Обновление данных Unicode до версии 6.1.1781- bpo-14040: Удалены редко используемые суффиксы имён файлов для расширений C (в основном под POSIX).1782- bpo-14051: Разрешена установка произвольных атрибутов для classmethod и staticmethod.1783- bpo-13703: oCERT-2011-003: Рандомизация хешей str и bytes для защиты от атак типа «отказ в обслуживании» из-за коллизий хешей в типах dict и set. Патч от David Malcolm на основе работы Victor Stinner.1784- bpo-13020: Исправлена утечка ссылки при сбое выделения объекта structsequence. Патч от Suman Saha.1785- bpo-13908: Типы, возвращаемые PyType\_FromSpec, теперь готовы к использованию.1786- bpo-11235: Исправлен OverflowError при попытке импортировать исходный файл, чьё время изменения не помещается в 32-битную метку времени.1787- bpo-12705: Теперь возникает исключение SyntaxError при попытке скомпилировать несколько операторов как один интерактивный оператор.1788- Исправлен код инициализации встроенных модулей для сохранения функции init для будущей реинициализации.1789- bpo-8052: Модуль подпроцесса posix тратил много времени на закрытие всех возможных файловых дескрипторов в дочернем процессе, а не только открытых. Теперь при поведении close\_fds=True по умолчанию он закрывает только открытые файловые дескрипторы, если это возможно.1790- bpo-13629: Перенумерованы токены в token.h, чтобы они соответствовали индексам в \_PyParser\_TokenNames.1791- bpo-13752: Добавлен метод casefold() для str.1792- bpo-13761: Добавлен именованный аргумент «flush» в функцию print(), используемый для принудительного сброса выходного потока.1793- bpo-13645: Файлы pyc теперь содержат размер соответствующего исходного кода, чтобы избежать коллизий временных меток (особенно в файловых системах с низким разрешением временных меток) при проверке актуальности байт-кода.1794- PEP 380, [Issue #11682](https://python-all.ru/3.3/whatsnew/changelog.html): Добавлен «yield from \<x\>» для поддержки лёгкого делегирования подгенераторам (первоначальный патч от Greg Ewing, интеграция в 3.3 от Renaud Blanch, Ryan Kelly, Zbigniew Jędrzejewski-Szmek и Nick Coghlan)1795- bpo-13748: Литералы сырых байтов теперь можно записывать с префиксом `rb`, а также `br`.1796- bpo-12736: Использование полных отображений регистра Unicode для верхнего, нижнего и заглавного регистров.1797- bpo-12760: Добавлен режим create в open(). Патч от David Townshend.1798- bpo-13738: Упрощена реализация bytes.lower() и bytes.upper().1799- bpo-13577: Встроенные методы и функции теперь имеют \_\_qualname\_\_. Исправление от sbt.1800- bpo-6695: Полные сборки мусора теперь очищают список свободных объектов set. Начальное исправление от Matthias Troffaes.1801- Исправлены OSError.\_\_init\_\_ и OSError.\_\_new\_\_ так, чтобы каждый из них можно было переопределить и передавать дополнительные аргументы (дополнение к [issue #12555](https://python-all.ru/3.3/whatsnew/changelog.html)).1802- Исправлено исправление для [issue #12149](https://python-all.ru/3.3/whatsnew/changelog.html): оно было некорректным, хотя и создавало видимость решения проблемы. Спасибо Марку Шеннону (Mark Shannon) за замечание.1803- bpo-13505: Объекты bytes теперь упаковываются (pickle) способом, совместимым с Python 2 при использовании протоколов \<= 2.1804- bpo-11147: Исправлен неиспользуемый аргумент в \_Py\_ANNOTATE\_MEMORY\_ORDER. (Исправление предоставлено Campbell Barton).1805- bpo-13503: Для bytearray используется более эффективный формат свёртки с протоколом pickle \>= 3. Старый формат сохранён для более старых протоколов, чтобы обеспечить возможность распаковки в Python 2. Исправление от Irmen de Jong.1806- bpo-7111: Python теперь может работать без потоков stdin, stdout или stderr. В Python 2 это уже было возможно. Однако соответствующие записи модуля sys теперь устанавливаются в None (вместо непригодного файлового объекта).1807- bpo-11849: Обеспечено, что освобождённые области памяти действительно освобождаются в POSIX-системах, поддерживающих анонимные отображения памяти. Исправление от Charles-François Natali.1808- PEP 3155 / [issue #13448](https://python-all.ru/3.3/whatsnew/changelog.html): Квалифицированное имя (qualified name) для классов и функций.1809- bpo-13436: Исправлено ложное сообщение об ошибке, когда объекту AST передавалось недопустимое целое значение.1810- bpo-13411: Объекты memoryview теперь могут быть хешируемыми, если хешируемым является базовый объект.1811- bpo-13338: Обрабатываются все перечисления в \_Py\_ANNOTATE\_MEMORY\_ORDER, чтобы разрешить компиляцию модулей расширения с -Wswitch-enum в gcc. Начальное исправление от Floris Bruynooghe.1812- bpo-10227: Добавлен кэш выделения для одного объекта среза (slice). Исправление от Stefan Behnel.1813- bpo-13393: BufferedReader.read1() теперь запрашивает у необработанного потока данных полный запрошенный размер, а не ограничивается размером буфера.1814- bpo-13392: Запись pyc-файла теперь должна быть атомарной и в Windows.1815- bpo-13333: Декодер UTF-7 теперь принимает одиночные суррогаты (кодировщик уже принимает их).1816- bpo-13389: Полные проходы сборки мусора теперь очищают списки свободных объектов для list и dict. Ранее уже очищались другие списки свободных объектов в интерпретаторе.1817- bpo-13327: Устранена необходимость явного указания None вторым аргументом в os.utime, os.lutimes, os.futimes, os.futimens, os.futimesat для обновления до текущего времени. Также добавлена обработка именованных аргументов в os.utimensat, чтобы убрать необходимость явного None.1818- bpo-13350: Упрощён некоторый код на C путём замены большинства использований PyUnicode\_Format на PyUnicode\_FromFormat.1819- bpo-13342: input() ранее игнорировал обработчик ошибок Unicode sys.stdin и sys.stdout в интерактивном режиме (при вызове PyOS\_Readline()).1820- bpo-9896: Добавлены атрибуты start, stop и step для объектов range.1821- bpo-13343: Fix a SystemError when a lambda expression uses a global variable in the default value of a keyword-only argument: `lambda *, arg=GLOBAL_NAME: None`1822- bpo-12797: Добавлен параметр opener для встроенной open() и FileIO.open().1823- bpo-10519: Избегаются ненужные рекурсивные вызовы функций в setobject.c.1824- bpo-10363: Освобождение глобальных блокировок в Py\_Finalize().1825- bpo-13018: Исправлены утечки ссылок в путях ошибок в dictobject.c. Исправление от Suman Saha.1826- bpo-13201: Определены операции ‘==’ и ‘!=’ для сравнения объектов range на основе последовательности значений, которые они задают (вместо сравнения по идентичности объектов).1827- bpo-1294232: В нескольких случаях, связанных с наследованием метаклассов, интерпретатор иногда вызывал неправильный метакласс при создании нового объекта класса. Теперь эти случаи работают корректно. Исправление от Daniel Urban.1828- bpo-12753: Добавлена поддержка псевдонимов имён Unicode и именованных последовательностей. Как `unicodedata.lookup()`, так и ‘N{...}’ теперь разрешают псевдонимы, а `unicodedata.lookup()` также разрешает именованные последовательности.1829- bpo-12170: Методы count(), find(), rfind(), index() и rindex() объектов bytes и bytearray теперь принимают целое число от 0 до 255 в качестве первого аргумента. Исправление от Petri Lehtinen.1830- bpo-12604: макрос VTRACE разворачивается в пустую операцию (no-op) в \_sre.c, чтобы избежать предупреждений компилятора. Патч от Josh Triplett и Petri Lehtinen.1831- bpo-12281: переписан кодек MBCS для корректной обработки обработчиков ошибок replace и ignore на всех версиях Windows. Теперь кодек MBCS поддерживает все обработчики ошибок, а не только replace при кодировании и ignore при декодировании.1832- bpo-13188: при вызове без явного аргумента traceback generator.throw() теперь получает traceback из атрибута `__traceback__` переданного исключения. Патч от Petri Lehtinen.1833- bpo-13146: запись pyc-файла теперь атомарна в POSIX.1834- bpo-7833: модули расширения, собранные с помощью distutils в Windows, больше не будут включать «манифест», чтобы предотвратить их сбой при импорте в некоторых встроенных сценариях.1835- PEP 3151 / [issue #12555](https://python-all.ru/3.3/whatsnew/changelog.html): переработка иерархии исключений ОС и ввода-вывода.1836- Добавлен внутренний API для статических строк (\_Py\_identifier и др.).1837- bpo-13063: ошибка Windows ERROR\_NO\_DATA (номер 232, описание «The pipe is being closed») теперь отображается на POSIX errno EPIPE (ранее EINVAL).1838- bpo-12911: исправлено потребление памяти при вычислении repr() больших кортежей или списков.1839- PEP 393: гибкое представление строк. Спасибо Torsten Becker за начальную реализацию и Victor Stinner за различные исправления ошибок.1840- bpo-14081: параметры 'sep' и 'maxsplit' методов str.split, bytes.split и bytearray.split теперь можно передавать как именованные аргументы.1841- bpo-13012: Параметр ‘keepends’ метода str.splitlines теперь можно передавать как именованный аргумент: “my\_string.splitlines(keepends=True)”. То же самое изменение также применяется к bytes.splitlines и bytearray.splitlines.1842- bpo-7732: больше не открывается каталог как файл при импорте модуля. Каталог игнорируется, если его имя совпадает с именем модуля (например, «\_\_init\_\_.py»), и вместо этого вызывается ImportError.1843- bpo-13021: отсутствовал decref на одном из путей обработки ошибок. Спасибо Suman Saha за обнаружение ошибки и предоставление патча.1844- bpo-12973: исправлены проверки переполнения, которые полагались на неопределённое поведение в list\_repeat (listobject.c) и islice\_next (itertoolsmodule.c). Эти ошибки вызывали сбои тестов в последних версиях Clang.1845- bpo-12904: os.utime, os.futimes, os.lutimes и os.futimesat теперь записывают atime и mtime с наносекундной точностью на современных POSIX-платформах.1846- bpo-12802: ошибка Windows ERROR\_DIRECTORY (номер 267) теперь отображается на POSIX errno ENOTDIR (ранее EINVAL).1847- bpo-9200: методы str.is\* теперь работают со строками, содержащими символы вне BMP, даже в узких сборках Unicode.1848- bpo-12791: циклы ссылок разрываются раньше при выходе генератора с исключением.1849- bpo-12773: сделать \_\_doc\_\_ изменяемым для пользовательских классов.1850- bpo-12766: вызывать ValueError при создании класса с переменной класса, которая конфликтует с именем в \_\_slots\_\_.1851- bpo-12266: исправлено str.capitalize() для корректного приведения к верхнему/нижнему регистру символов в заголовочном регистре и небуквенных символов, имеющих регистр.1852- bpo-12732: в узких сборках Unicode разрешены идентификаторы Unicode, находящиеся за пределами BMP.1853- bpo-12575: проверка пользовательского AST перед компиляцией.1854- Сделать type(None), type(Ellipsis) и type(NotImplemented) вызываемыми. Они возвращают соответствующие экземпляры-одиночки.1855- Запрещено суммировать bytes с помощью sum().1856- Проверять типы строк AST и идентификаторов, предоставленных пользователем, перед их компиляцией.1857- bpo-12647: объект None теперь имеет метод \_\_bool\_\_(), возвращающий False. Ранее bool(None) возвращал False только из-за специальной логики в PyObject\_IsTrue().1858- bpo-12579: str.format\_map() теперь вызывает ValueError при использовании на строке формата, содержащей позиционные поля. Начальный патч от Julian Berman.1859- bpo-10271: теперь warnings.showwarning() может быть любой вызываемой функцией.1860- bpo-11627: Исправлен segfault, когда \_\_new\_\_ для исключения возвращает класс, не являющийся исключением.1861- bpo-12149: обновлять кеш методов после того, как словарь типа очищается сборщиком мусора. Это исправляет segfault, когда экземпляр и его тип попадают в цикл ссылок, и деаллокатор экземпляра вызывает один из методов типа (например, при наследовании от IOBase). Диагностика и патч от Davide Rizzo.1862- bpo-9611: FileIO.read() ограничивает длину значением INT\_MAX в Windows. (См. также: bpo-9015)1863- bpo-9642: Унифицированы тесты на доступность кодека mbcs, добавлен новый макрос HAVE\_MBCS.1864- bpo-9642: Исправлена инициализация кодировки файловой системы: в Windows используется кодовая страница ANSI, если кодек mbcs недоступен, а в случае невозможности получить кодировку локали (если nl\_langinfo(CODESET) недоступен) выводится фатальная ошибка вместо использования UTF-8.1865- Когда генератор выполняет оператор yield, состояние исключения вызывающего кода больше не сохраняется в генераторе.1866- bpo-12475: Предотвращена утечка состояния исключения из генератора во фрейм вызывающего кода при последнем возврате.1867- bpo-12291: Теперь можно загружать несколько маршалированных объектов из потока, перемежая их с другими данными.1868- bpo-12356: Если обязательные позиционные аргументы или аргументы только по ключу не переданы, выводится информативное сообщение об ошибке с указанием имён отсутствующих аргументов.1869- bpo-12370: Исправлен super() без аргументов, когда \_\_class\_\_ переопределён в теле класса.1870- bpo-12084: os.stat в Windows теперь корректно работает с относительными символическими ссылками при вызове из любого каталога.1871- Ослаблены ограничения на тип возвращаемого значения метода \_\_dir\_\_: \_\_dir\_\_ теперь может возвращать любую последовательность, которая будет преобразована в список и отсортирована функцией dir().1872- bpo-12265: Сообщения об ошибках при передаче функции недопустимого набора аргументов стали более информативными.1873- bpo-12225: Сборка Python по-прежнему возможна, даже если Python находится не в репозитории hg или не установлен Mercurial.1874- bpo-1195: my\_fgets() теперь всегда очищает флаги ошибок перед вызовом fgets(). Исправлена следующая ситуация: sys.stdin.read() завершался по CTRL+d (конец файла), а raw\_input() прерывался по CTRL+c.1875- bpo-12216: Разрешено появление неожиданных ошибок EOF в любой строке файла.1876- bpo-12199: Узлы AST TryExcept и TryFinally объединены в единый узел Try.1877- bpo-9670: Увеличен размер стека по умолчанию для вторичных потоков в Mac OS X и FreeBSD, чтобы снизить вероятность краха вместо исключения RuntimeError «максимальная глубина рекурсии». (патч от Ronald Oussoren)1878- bpo-12106: Использование сокращённого синтаксиса множественного with теперь отражается в AST.1879- bpo-12190: При компиляции и демаршалинге объектов кода из одного файла используется один и тот же объект имени файла.1880- bpo-12166: Реализации dir() для различных типов перенесены в их методы \_\_dir\_\_().1881- bpo-5715: В socketserver серверный сокет закрывается в дочернем процессе.1882- Исправлен поиск \_\_dir\_\_ у объектов. В частности, теперь распространяются ошибки, отличные от AttributeError, возникшие при поиске.1883- bpo-12060: В модуле signal используются тип sig\_atomic\_t и ключевое слово volatile. Патч написан Charles-François Natali.1884- bpo-1746656: В модуль socket добавлены методы if\_nameindex, if\_indextoname, if\_nametoindex.1885- bpo-12044: Исправлено поведение subprocess.Popen при использовании в качестве менеджера контекста: теперь процесс ожидает завершения при выходе из контекста, чтобы случайно не оставить зомби-процессы.1886- bpo-1195: Исправлен input() при прерывании по CTRL+d с последующим CTRL+c; теперь флаг конца файла сбрасывается после CTRL+d.1887- bpo-1856: Предотвращены крахи и зависания при работе потоков-демонов во время завершения интерпретатора; теперь такие потоки завершаются при попытке захвата GIL.1888- bpo-9756: При вызове дескриптора метода или дескриптора-обёртки слота проверка типа объекта больше не читает атрибут \_\_class\_\_. Исправлен крах, если класс переопределяет свой \_\_class\_\_ (например, прокси для типа str). Патч написан Andreas Stührk.1889- bpo-10517: После fork() переинициализируется TLS, используемый API PyGILState\_\*, чтобы избежать краха в реализации pthread в RHEL 5. Патч от Charles-François Natali.1890- bpo-10914: Корректно инициализируется кодек файловой системы при создании нового под-интерпретатора, чтобы устранить проблему начальной загрузки для кодеков, реализованных на Python, например ISO-8859-15.1891- bpo-11918: OS/2 и VMS больше не поддерживаются из-за отсутствия мейнтейнера.1892- bpo-6780: Исправлено сообщение об ошибке в методах startswith и endswith – теперь в нём упоминается, что допускаются также кортежи.1893- bpo-5057: Исправлена ошибка в оптимизаторе Peephole, которая приводила к созданию непереносимых pyc-файлов между узкой и широкой сборками при оптимизации BINARY\_SUBSCR для символов не из BMP (например, «U00012345»\[0\]).1894- bpo-11845: Исправлена опечатка в rangeobject.c, из-за которой происходил сбой в compute\_slice\_indices. Патч от Daniel Urban.1895- bpo-5673: Добавлен именованный аргумент `timeout` в subprocess.Popen.wait, subprocess.Popen.communicated, subprocess.call, subprocess.check\_call и subprocess.check\_output. Если блокирующая операция занимает более `timeout` секунд, возбуждается исключение [`subprocess.TimeoutExpired`](https://python-all.ru/3.3/library/subprocess.html#subprocess.TimeoutExpired).1896- bpo-11650: PyOS\_StdioReadline() повторяет вызов fgets(), если он был прерван (EINTR), например, при остановке программы с помощью CTRL+z на Mac OS X. Патч написан Charles-Francois Natali.1897- bpo-9319: В сообщение синтаксической ошибки «Non-UTF8 code ...» добавлено имя файла.1898- bpo-10785: Имя файла в парсере Python теперь хранится как Unicode.1899- bpo-11619: \_PyImport\_LoadDynamicModule() больше не кодирует путь в байты на Windows.1900- bpo-10998: Удалены упоминания -Q, sys.flags.division\_warning и Py\_DivisionWarningFlag, оставшиеся от Python 2.1901- bpo-11244: Удалена лишняя проверка в пипхольном оптимизаторе, которая мешала корректной свёртке констант для отрицательного нуля.1902- bpo-11395: io.FileIO().write() ограничивает длину данных до 32 767 байт на Windows, если файл является TTY, в качестве обхода ошибки Windows. Консоль Windows возвращает ошибку (12: not enough space error) при записи в stdout, если режим stdout – бинарный, а длина превышает 66 000 байт (или меньше, в зависимости от использования кучи).1903- bpo-11320: Исправлено некорректное управление памятью в Modules/getpath.c, которое могло приводить к сбою при вызове Py\_SetPath().1904- bpo-11432: В subprocess.Popen на POSIX-системах в версии 3.2.0 была внесена ошибка: если файловый дескриптор stdout или stderr совпадал с дескриптором stdin, возникало исключение. Из-за этого не работал webbrowser.open. Исправлено.1905- bpo-9856: Вызов object.\_\_format\_\_ с непустой строкой формата теперь выдаёт DeprecationWarning. В версии 3.2 это было PendingDeprecationWarning, а в версии 3.4 будет TypeError.1906- bpo-11244: Оптимизатор peephole теперь способен сворачивать константы сколь угодно сложных выражений. Это также исправляет регрессию в 3.2, когда операции с отрицательными числами не сворачивались.1907- bpo-11450: Информация о версии hg в Py\_GetBuildInfo() больше не обрезается при большом количестве тегов (например, при использовании mq). Патч от Nadeem Vawda.1908- bpo-11335: Исправлена утечка памяти в list.sort, когда функция key выбрасывает исключение.1909- bpo-8923: Когда строка кодируется в UTF-8 в строгом режиме, результат кэшируется в объекте. Примеры: str.encode(), str.encode(‘utf-8’), PyUnicode\_AsUTF8String() и PyUnicode\_AsEncodedString(unicode, “utf-8”, NULL).1910- bpo-10829: Рефакторинг PyUnicode\_FromFormat(): теперь для разбора строки формата на всех трёх этапах используется одна и та же функция; исправлены сбои на недопустимых строках формата.1911- bpo-13007: whichdb теперь должен распознавать магические числа gdbm 1.9.1912- bpo-11286: Возбуждать ValueError, если в PyMemoryView\_FromBuffer передан буфер с нулевым указателем данных.1913- bpo-11272: На Windows input() удаляет символ ‘\\r’ (а не только ‘\\n’), и sys.stdin использует универсальный символ новой строки (заменяет ‘\\r\\n’ на ‘\\n’).1914- bpo-11828: startswith и endswith теперь принимают None в качестве индекса среза. Патч от Torsten Becker.1915- bpo-11168: Удалена отладочная переменная filename из PyEval\_EvalFrameEx(). Она кодировала имя файла в Unicode в UTF-8, но кодирование не удавалось для нераскодируемых имён (с суррогатными символами), что вызывало неожиданное UnicodeEncodeError при превышении глубины рекурсии.1916- bpo-11187: Удалён начальный код (использующий ASCII) из PyUnicode\_AsEncodedString(). Он был заменён на более качественный запасной вариант (использующий кодировку локали) в PyUnicode\_EncodeFSDefault().1917- Добавлена проверка результата на NULL в PyType\_FromSpec.1918- bpo-10516: Новые методы copy() и clear() для списков и байтовых массивов.1919- bpo-11386: bytearray.pop() теперь возбуждает IndexError, если bytearray пуст, вместо OverflowError.1920- bpo-12380: Методы rjust, ljust и center у bytes и bytearray теперь принимают аргумент типа bytearray.19211922### Библиотека19231924- bpo-14195: Исправлена проблема, из-за которой экземпляры weakref.WeakSet некорректно возвращали True для экземпляра WeakSet ‘a’ в операциях ‘a \< a’ и ‘a \> a’.1925- bpo-14166: Объекты Pickler теперь имеют опциональный атрибут `dispatch_table`, который позволяет устанавливать пользовательские функции приведения для конкретного pickler. Патч от sbt.1926- bpo-14177: marshal.loads() теперь возбуждает TypeError при передаче строки Unicode. Патч от Guilherme Gonçalves.1927- bpo-13550: Удалён отладочный механизм из модуля threading: удалены аргументы verbose из всех классов и функций threading.1928- bpo-14159: Исправлено поведение len() для слабых контейнеров (WeakSet, WeakKeyDictionary, WeakValueDictionary): теперь возвращается более точная оценка, когда некоторые объекты мертвы или близки к смерти. Кроме того, реализация теперь работает за O(1), а не O(n).1929- bpo-11841: Исправлена ошибка сравнения с версиями ‘rc’ в packaging.version. Патч от Filip Gruszczyński.1930- bpo-6884: Исправлены давние ошибки при разборе MANIFEST.in в distutils на Windows. Также исправлено в packaging.1931- bpo-8033: sqlite3: Исправлена обработка 64-битных целых чисел в пользовательских функциях на 32-битных архитектурах. Первоначальный патч от Philippe Devalkeneer.1932- HTMLParser теперь умеет обрабатывать косые черты в открывающем теге.1933- bpo-13641: Функции декодирования в модуле base64 теперь принимают строки Unicode только из ASCII. Патч от Catalin Iacob.1934- bpo-14043: Ускорен \_FileFinder из importlib как минимум в 8 раз, а также добавлена новая функция importlib.invalidate\_caches().1935- bpo-14001: CVE-2012-0845: xmlrpc: Исправлен бесконечный цикл в SimpleXMLRPCServer при неверном POST-запросе.1936- bpo-13961: Переведён importlib на использование os.replace() для атомарного переименования.1937- Устранены неоднозначные значения уровня (как предложено в PEP 328) в importlib.\_\_import\_\_() с помощью возбуждения ValueError при level \< 0.1938- bpo-2489: pty.spawn мог потреблять 100% процессора при достижении EOF.1939- bpo-13014: Исправлена возможная утечка ссылки в SSLSocket.getpeercert().1940- bpo-13777: Добавлены сокеты PF\_SYSTEM на OS X. Патч от Michael Goderbauer.1941- bpo-13015: Исправлена возможная утечка ссылки в defaultdict.\_\_repr\_\_. Патч от Suman Saha.1942- bpo-1326113: Параметр --libraries команд build\_ext из distutils и packaging теперь корректно разбирает несколько значений (разделённых пробелами или запятыми), переданных этому параметру.1943- bpo-10287: nntplib теперь сначала запрашивает возможности сервера (CAPABILITIES) перед отправкой MODE READER и отправляет его, только если сервер ещё не в режиме READER. Патч от Hynek Schlawack.1944- bpo-13993: HTMLParser теперь умеет обрабатывать повреждённые закрывающие теги, когда strict=False.1945- bpo-13930: lib2to3 теперь поддерживает запись преобразованных выходных файлов в другой каталог, а также копирование неизменённых файлов и изменение суффикса файла.1946- bpo-9750: Исправлен sqlite3.Connection.iterdump для таблиц и полей с именем, являющимся ключевым словом или содержащим кавычки. Патч от Marko Kohtala.1947- bpo-10287: nntplib теперь снова запрашивает возможности сервера (CAPABILITIES) после аутентификации (поскольку результат может измениться, согласно RFC 4643). Патч от Hynek Schlawack.1948- bpo-13590: На OS X 10.7 и 10.6 с Xcode 4.2 сборка пакетов на основе Distutils с модулями-расширениями на C может завершаться ошибкой, поскольку Apple удалила gcc-4.2 – версию, использовавшуюся для сборки 64-битных/32-битных Python с python.org. Если пользователь явно не переопределяет компилятор C по умолчанию, установив переменную окружения CC, Distutils теперь будет пытаться скомпилировать модули-расширения с помощью clang, если требуется gcc-4.2, но он не найден. Кроме того, для удобства: если пользователь явно задаёт CC, его значение подставляется как компилятор по умолчанию в переменную конфигурации Distutils LDSHARED для OS X. (Обратите внимание: 32-битные сборки Python с python.org используют gcc-4.0 и SDK 10.4u, ни один из которых недоступен в Xcode 4. Это изменение не пытается переопределить настройки для поддержки их использования с Xcode 4.)1949- bpo-13960: HTMLParser теперь умеет обрабатывать повреждённые комментарии, когда strict=False.1950- Если ‘’ является путём (например, в sys.path), убедитесь, что \_\_file\_\_ использует текущую рабочую директорию вместо ‘’ в importlib.1951- bpo-13609: Добавлены две функции для определения размера терминала: os.get\_terminal\_size (низкоуровневая) и shutil.get\_terminal\_size (высокоуровневая). Патч от Zbigniew Jędrzejewski-Szmek.1952- bpo-13845: На Windows time.time() теперь использует GetSystemTimeAsFileTime() вместо ftime(), чтобы иметь разрешение 100 нс вместо 1 мс (точность часов составляет от 0.5 мс до 15 мс).1953- bpo-13846: Добавлены time.monotonic(), монотонные часы.1954- bpo-8184: multiprocessing: На Windows не устанавливается SO\_REUSEADDR на соединительных сокетах, а на именованных каналах устанавливается FILE\_FLAG\_FIRST\_PIPE\_INSTANCE, чтобы два слушателя не могли привязаться к одному и тому же сокету/каналу (или любому существующему сокету/каналу).1955- bpo-10811: Исправлено рекурсивное использование курсоров. Вместо аварийного завершения теперь возбуждается ProgrammingError.1956- bpo-13734: Добавлен os.fwalk(), функция обхода каталогов, возвращающая файловые дескрипторы.1957- bpo-2945: Команда upload из distutils теперь учитывает продукты bdist\_rpm.1958- bpo-13712: pysetup create не должен преобразовывать package\_data в extra\_files.1959- bpo-11805: package\_data в setup.cfg теперь может содержать более одного значения.1960- bpo-13676: Корректная обработка строк с встроенными нулями в sqlite3.1961- bpo-8828: Добавлена новая функция os.replace() для кроссплатформенного переименования с перезаписью.1962- bpo-13848: open() и конструктор FileIO теперь проверяют имя файла на наличие нулевых символов. Патч от Hynek Schlawack.1963- bpo-13806: Проверка размера в функциях распаковки audioop была слишком строгой и могла отбрасывать допустимые сжатые данные. Патч от Oleg Plakhotnyuk.1964- bpo-13812: Когда дочерний процесс multiprocessing.Process вызывает исключение, теперь stderr сбрасывается после вывода трассировки исключения.1965- bpo-13885: CVE-2011-3389: модуль \_ssl всегда отключал механизм защиты от атаки CBC IV.1966- bpo-13847: time.localtime() и time.gmtime() теперь при ошибке возбуждают OSError вместо ValueError. time.ctime() и time.asctime() теперь возбуждают OSError, если localtime() завершилась ошибкой. time.clock() теперь возбуждает RuntimeError, если процессорное время недоступно или его значение не может быть представлено.1967- bpo-13772: В os.symlink() под Windows больше не делается попытка угадать тип цели ссылки (файл или каталог). Определение было ошибочным и делало вызов неатомарным (а значит, подверженным состояниям гонки).1968- bpo-6631: Запрещены относительные пути к файлам в методах urlopen модуля urllib.1969- bpo-13722: Исправлено замалчивание ImportErrors при инициализации реестра кодеков.1970- bpo-13781: Исправлена ошибка GzipFile, из-за которой возбуждалось исключение при открытии на запись с помощью fileobj, возвращённого os.fdopen().1971- bpo-13803: В Solaris distutils не включает разрядность в имя каталога.1972- bpo-10278: Добавлена функция time.wallclock() – монотонные часы.1973- bpo-13809: Исправлен регресс, из-за которого модуль bz2 не работал при отключённых потоках. Оригинальный патч от Amaury Forgeot d’Arc.1974- bpo-13589: Исправлены некоторые примитивы сериализации в модуле aifc. Патч от Oleg Plakhotnyuk.1975- bpo-13642: Раскодировать (unquote) перед b64-кодированием `user:password` во время Basic Authentication. Патч предоставлен Joonas Kuorilehto.1976- bpo-12364: Исправлено зависание в concurrent.futures.ProcessPoolExecutor. Зависание происходило при получении результата запланированного future после завершения работы исполнителя.1977- bpo-13502: threading: исправлено состояние гонки в Event.wait(), из-за которого метод возвращал False, если событие было установлено и сразу же сброшено.1978- bpo-9993: Когда источник и приёмник находятся в разных файловых системах, а источник – символическая ссылка, shutil.move() теперь воссоздаёт ссылку в приёмнике вместо копирования содержимого файла. Патч от Jonathan Niehof и Hynek Schlawack.1979- bpo-12926: Исправлена ошибка в извлечении ссылок tarfile.1980- bpo-13696: Исправлена проблема перенаправления относительных URL с кодом 302.1981- bpo-13636: Слабые шифры теперь отключены по умолчанию в модуле ssl (кроме случаев, когда явно запрашивается SSLv2).1982- bpo-12715: В функции shutil (copyfile, copymode, copystat, copy, copy2) добавлен необязательный аргумент symlinks. Если он равен true, символические ссылки не разыменовываются, а операция выполняется над самой ссылкой (или создаётся новая, если применимо). Патч от Hynek Schlawack.1983- В select.epoll добавлен параметр flags.1984- bpo-13626: Добавлена поддержка обмена ключами Diffie-Hellman по SSL через метод SSLContext.load\_dh\_params() и опцию ssl.OP\_SINGLE\_DH\_USE.1985- bpo-11006: В подпроцессе больше не выдаётся низкоуровневое предупреждение при сбое pipe2().1986- bpo-13620: Поддержка браузера Chrome в webbrowser. Патч предоставлен Arnaud Calmettes.1987- bpo-11829: Исправлены дыры выполнения кода в inspect.getattr\_static для метаклассов, у которых есть метаклассы. Патч от Andreas Stührk.1988- bpo-12708: В multiprocessing.Pool добавлены методы starmap() и starmap\_async() (аналогично itertools.starmap()). Патч от Hynek Schlawack.1989- bpo-1785: Исправлены inspect и pydoc при некорректно работающих дескрипторах.1990- bpo-13637: Функции «a2b» в модуле binascii теперь принимают строки в кодировке ASCII, содержащие только символы ASCII.1991- bpo-13634: Добавлена поддержка запроса и отключения сжатия SSL.1992- bpo-13627: Добавлена поддержка обмена ключами Диффи-Хеллмана на основе эллиптических кривых через метод SSLContext.set\_ecdh\_curve() и опцию ssl.OP\_SINGLE\_ECDH\_USE.1993- bpo-13635: Добавлена константа ssl.OP\_CIPHER\_SERVER\_PREFERENCE, чтобы SSL-серверы выбирали шифр на основе собственных предпочтений, а не клиента.1994- bpo-11813: Исправлена работа inspect.getattr\_static для модулей. Патч от Андреаса Штюрка.1995- bpo-7502: Исправлено сравнение на равенство для экземпляров DocTestCase. Патч от Седрика Крие.1996- bpo-11870: threading: Корректная повторная инициализация внутренних блокировок и условных переменных потоков для предотвращения взаимоблокировок в дочерних процессах.1997- bpo-8035: urllib: Исправлена ошибка, из-за которой клиент мог оставаться в зависшем состоянии после перенаправления или ошибки.1998- bpo-13560: os.strerror() теперь использует текущую кодировку локали вместо UTF-8.1999- bpo-8373: Путь файловой системы для сокетов AF\_UNIX теперь использует кодировку файловой системы и обработчик ошибок surrogateescape вместо UTF-8. Патч от Дэвида Уотсона.2000- bpo-10350: Чтение и сохранение errno до вызова функции, которая может его перезаписать. Исходный патч от Халлварда Б. Фурусета.2001- bpo-11610: Представлен более общий способ объявления абстрактных свойств.2002- bpo-13591: Исправлена ошибка в importlib, из-за которой import\_module загружал модуль дважды.2003- bpo-13449: Метод sched.scheduler.run() получил новый параметр «blocking». Если установить его в False, run() выполнит запланированные события с истекающим сроком (если такие есть) и завершится. Патч от Джампаоло Родола.2004- bpo-8684: Класс sched.scheduler теперь можно безопасно использовать в многопоточных средах. Патч от Джозайи Карлсона и Джампаоло Родола.2005- Создан псевдоним resource.error → OSError в стиле PEP 3151.2006- bpo-5689: Добавлена поддержка сжатия LZMA в модуль tarfile.2007- bpo-13248: Предупреждения PendingDeprecationWarning из Python 3.2 стали DeprecationWarning в Python 3.3. Это затрагивает 'cgi.escape', 'importlib.abc.PyLoader', 'importlib.abc.PyPycLoader', 'nntplib.NNTP.xgtitle', 'nntplib.NNTP.xpath' и закрытые атрибуты 'smtpd.SMTPChannel'.2008- bpo-5905: time.strftime() теперь использует текущую кодировку локали вместо UTF-8, если функция wcsftime() недоступна. (См. также: bpo-13560)2009- bpo-13464: Добавлен метод readinto() в http.client.HTTPResponse. Патч от Джона Куна.2010- tarfile.py: Корректное обнаружение сжатых bzip2 потоков с размером блока, отличным от 900k.2011- bpo-13439: Исправлено множество ошибок в строках документации turtle.2012- bpo-6715: Добавлен модуль 'lzma' для сжатия алгоритмом LZMA. Спасибо Перу Эйвинду Карлсену за начальную реализацию.2013- bpo-13487: Сделать inspect.getmodule устойчивым к изменениям sys.modules во время итерации по нему.2014- bpo-12618: Исправлена ошибка, которая не позволяла py\_compile создавать скомпилированные в байт-код файлы в текущем каталоге. Исходный патч от Шурда де Фриса.2015- bpo-13444: Если stdout был явно закрыт, не следует пытаться сбросить его при завершении работы и выводить ошибку.2016- bpo-12567: Модуль curses использует функции Unicode для аргументов Unicode, если он слинкован с библиотекой ncurses. Он также кодирует строки Unicode в кодировку локали вместо UTF-8.2017- bpo-12856: Обеспечено, чтобы дочерние процессы не наследовали случайное зерно родителя для генерации имен файлов в модуле tempfile. Патч от Брайана Харринга.2018- bpo-9957: SpooledTemporaryFile.truncate() теперь принимает необязательный параметр size, как и другие файлоподобные объекты. Патч от Райана Келли.2019- bpo-13458: Исправлена утечка памяти в модуле ssl при декодировании сертификата с subjectAltName. Патч от Роберта Сяо.2020- bpo-13415: os.unsetenv() больше не игнорирует ошибки.2021- bpo-13245: Параметры timefunc и delayfunct конструктора класса sched.scheduler теперь необязательны. Методы scheduler.enter и scheduler.enterabs получили новый параметр kwargs. Патч предоставлен Крисом Кларком.2022- bpo-12328: В Windows выполнена переработка обработки событий Ctrl-C; \_multiprocessing.win32.WaitForMultipleObjects теперь можно прервать, когда параметр wait\_flag равен false. Патч от sbt.2023- bpo-13322: Исправлен BufferedWriter.write() – теперь гарантированно вызывается BlockingIOError, когда обёрнутый сырой файл неблокирующий и запись должна заблокироваться. Раньше код предполагал, что сырая write() вызовет BlockingIOError, но RawIOBase.write() по определению возвращает None при блокировке. Патч от sbt.2024- bpo-13358: HTMLParser теперь вызывает handle\_data только один раз для каждого CDATA.2025- bpo-4147: toprettyxml из minidom больше не добавляет пробелы вокруг текстового узла, если он является единственным дочерним элементом. Начальный патч от Дэна Кенигсберга.2026- bpo-13374: API для работы с байтами в Windows объявлено устаревшим в модуле os. Используйте имена файлов в Unicode вместо байтовых, чтобы больше не зависеть от кодовой страницы ANSI и поддерживать любые имена файлов.2027- bpo-13297: Используйте тип bytes для отправки и получения двоичных данных через XMLRPC.2028- bpo-6397: Поддержка объектов опроса «/dev/poll» в модуле select в Solaris и производных системах.2029- bpo-1745761: HTMLParser теперь корректно обрабатывает невалидные атрибуты, включая соседние и незакавыченные атрибуты. (См. также: bpo-755670, bpo-13357, bpo-12629, bpo-1200313)2030- bpo-13193: Исправление distutils.filelist.FileList и packaging.manifest.Manifest в Windows.2031- bpo-13384: Удаление ненужного импорта \_\_future\_\_ в Lib/random.py2032- bpo-13149: Ускорение объектов StringIO, работающих только на добавление.2033- bpo-13373: multiprocessing.Queue.get() иногда мог блокироваться бесконечно при вызове с тайм-аутом. Патч от Арно Исмаля.2034- bpo-13254: Исправление инициализации Maildir для корректного чтения содержимого почтового ящика.2035- bpo-3067: locale.setlocale() теперь вызывает TypeError, если второй аргумент является недопустимой итерируемой последовательностью. Также обновлены документация и докстринг. Начальный патч от Юрки Пуллияйнена.2036- bpo-13140: Исправление атрибута daemon\_threads в ThreadingMixIn.2037- bpo-13339: Исправление ошибки компиляции в posixmodule.c из-за отсутствующей точки с запятой. Спасибо Роберту Сяо.2038- Байт-компиляция в packaging теперь изолирована от опций -B и -O вызывающего Python, вместо того чтобы быть запрещённой при -B или работать с ошибками при -O.2039- bpo-10570: curses.putp() и curses.tparm() теперь ожидают байтовую строку вместо строки Unicode.2040- bpo-13295: http.server теперь генерирует корректный HTML 4.01 строгий.2041- bpo-2892: сохранение событий iterparse в случае SyntaxError.2042- bpo-13287: urllib.request и urllib.error теперь содержат атрибут \_\_all\_\_, чтобы открывать только соответствующие классы и функции. Патч от Флорана Сиклуны.2043- bpo-670664: Исправление HTMLParser для корректной обработки содержимого `<script>...</script>` и `<style>...</style>`.2044- bpo-10817: Исправление функции urlretrieve для вызова ContentTooShortError даже если reporthook равен None. Патч от Юрки Пуллияйнена.2045- Исправление user agent в xmlrpc.client для возврата чего-то похожего на user agent urllib.request: «Python-xmlrpc/3.3».2046- bpo-13293: Улучшенное сообщение об ошибке при попытке маршалинга байтов с помощью xmlrpc.client.2047- bpo-13291: NameError в пакете xmlrpc.2048- bpo-13258: Использование встроенной функции callable() в стандартной библиотеке.2049- bpo-13273: исправление ошибки, которая мешала HTMLParser корректно обнаруживать некоторые теги при strict=False.2050- bpo-11183: Добавление более детализированных исключений в модуль ssl, чтобы в типичных случаях не приходилось проверять атрибуты исключения.2051- bpo-13216: Добавление кодека cp65001 – Windows UTF-8 (CP\_UTF8).2052- bpo-13226: Добавление констант RTLD\_xxx в модуль os. Эти константы можно использовать с sys.setdlopenflags().2053- bpo-10278: Добавление clock\_getres(), clock\_gettime() и констант CLOCK\_xxx в модуль time. time.clock\_gettime(time.CLOCK\_MONOTONIC) предоставляет монотонные часы2054- bpo-10332: multiprocessing: исправление состояния гонки, когда Pool закрывается до завершения всех задач.2055- bpo-13255: неверные докстринги в модуле array.2056- bpo-8540: Удаление устаревшего атрибута Context.\_clamp в модуле Decimal.2057- bpo-13235: Добавлено DeprecationWarning для метода и функции logging.warn().2058- bpo-9168: теперь smtpd может привязываться к привилегированному порту.2059- bpo-12529: исправлена проблема cgi.parse\_header со строками, содержащими одновременно двойные кавычки и точки с запятой. Исправление от Ben Darnell и Petri Lehtinen.2060- bpo-13227: functools.lru\_cache() теперь имеет опцию для различения вызовов с разными типами аргументов.2061- bpo-6090: zipfile вызывает ValueError, если передан документ с меткой времени ранее 1980 года. Исправление предоставлено Petri Lehtinen.2062- bpo-13150: sysconfig больше не разбирает файлы Makefile и config.h при импорте, а делает это во время сборки. Это ускоряет импорт sysconfig и сокращает время запуска Python на 20%.2063- bpo-12448: smtplib теперь сбрасывает stdout при выполнении `python -m smtplib` для корректного отображения приглашения.2064- bpo-12454: Модуль mailbox теперь использует ASCII вместо кодировки локали для чтения и записи файлов .mh\_sequences.2065- bpo-13194: zlib.compressobj().copy() и zlib.decompressobj().copy() теперь доступны в Windows.2066- bpo-1673007: urllib.request теперь поддерживает HEAD-запросы через новый аргумент method. Исправления предоставлены David Stanek, Patrick Westerhoff и Ezio Melotti.2067- bpo-12386: packaging больше не завершается ошибкой при записи файла RESOURCES.2068- bpo-13158: Исправлено декодирование и кодирование специфичных для GNU tar полей чисел с основанием 256 в tarfile.2069- bpo-13025: mimetypes теперь читает MIME-типы, используя кодировку UTF-8, вместо кодировки локали.2070- bpo-10653: В Windows используется strftime() вместо wcsftime(), потому что wcsftime() неправильно форматирует часовой пояс.2071- bpo-13150: Модуль tokenize больше не компилирует большие регулярные выражения при запуске.2072- bpo-11171: Исправлена distutils.sysconfig.get\_makefile\_filename, когда Python сконфигурирован с разными prefix и exec-prefix.2073- bpo-11254: distutils и packaging теперь компилируют файлы .pyc и .pyo в директории \_\_pycache\_\_, соответствующие PEP 3147.2074- bpo-7367: Исправлен pkgutil.walk\_paths, чтобы пропускать каталоги, содержимое которых не может быть прочитано.2075- bpo-3163: Модуль struct получает новые символы форматирования ‘n’ и ‘N’, поддерживающие целочисленные типы C `ssize_t` и `size_t` соответственно.2076- bpo-13099: Исправлен sqlite3.Cursor.lastrowid в турецкой локали. Сообщено и диагностировано Thomas Kluyver.2077- bpo-13087: BufferedReader.seek() теперь всегда вызывает UnsupportedOperation, если базовый необработанный поток не поддерживает позиционирование, даже если позиционирование могло быть выполнено с использованием внутреннего буфера. Исправление от John O’Connor.2078- bpo-7689: Разрешена сериализация динамически созданных классов, если их метакласс зарегистрирован в copyreg. Исправление от Nicolas M. Thiéry и Craig Citro.2079- bpo-13034: При декодировании некоторых SSL-сертификатов расширение subjectAltName могло не сообщаться.2080- bpo-12306: Предоставлена версия времени выполнения библиотеки zlib C как константа ZLIB\_RUNTIME\_VERSION в модуле zlib. Исправление от Torsten Landschoff.2081- bpo-12959: Добавлен collections.ChainMap в collections.\_\_all\_\_.2082- bpo-8933: Файлы PKG-INFO от distutils и METADATA от packaging теперь правильно указывают Metadata-Version: 1.1 вместо 1.0, если присутствует поле Classifier или Download-URL.2083- bpo-12567: Добавлена функция curses.unget\_wch(). Помещает символ так, чтобы следующий get\_wch() вернул его.2084- bpo-9561: distutils и packaging теперь записывают файлы egg-info, используя UTF-8, вместо кодировки локали.2085- bpo-8286: Команда sdist в distutils теперь выводит предупреждение вместо аварийного завершения, если в шаблоне манифеста указан неверный путь.2086- bpo-12841: tarfile излишне проверял существование числовых идентификаторов пользователя и группы при извлечении. Если один из них не существовал, использовался соответствующий идентификатор текущего пользователя (например, root), и информация о владельце терялась.2087- bpo-12888: Исправлена ошибка в HTMLParser.unescape, которая не позволяла экранировать более 128 сущностей. Исправление от Peter Otten.2088- bpo-12878: Предоставлен атрибут \_\_dict\_\_ для io.IOBase и его подклассов.2089- bpo-12494: При ошибке функции call(), check\_call(), check\_output() и getstatusoutput() модуля подпроцесс теперь завершают процесс, считывают его статус (чтобы избежать зомби) и закрывают каналы.2090- bpo-12720: В модуль os добавлены низкоуровневые функции Linux для работы с расширенными атрибутами файлов.2091- bpo-10946: Команды distutils bdist\_dumb, bdist\_wininst и bdist\_msi теперь учитывают опцию –skip-build, переданную bdist. Также исправлены команды packaging.2092- bpo-12847: Исправлено падение при отрицательных аргументах PUT и LONG\_BINPUT в реализации pickle на C.2093- bpo-11564: Больше не происходит падение при попытке сериализовать огромные объекты или контейнеры (более 2\*\*31 элементов). Вместо этого в большинстве случаев вызывается OverflowError.2094- bpo-12287: Исправлено повреждение стека в модуле ossaudiodev, когда файловый дескриптор больше FD\_SETSIZE.2095- bpo-12839: Исправлено падение модуля zlib из-за несовместимости версий. Исправление от Richard M. Tew.2096- bpo-9923: Модуль mailcap теперь корректно использует разделитель путей платформы для переменной окружения MAILCAP на платформах, отличных от POSIX.2097- bpo-12835: Продолжение работы над #6560: полностью запрещено использование незашифрованных API sendmsg/recvmsg на сокетах, обёрнутых SSL. Патч от David Watson.2098- bpo-12803: SSLContext.load\_cert\_chain() теперь принимает аргумент password, который используется, если закрытый ключ зашифрован. Патч от Adam Simpkins.2099- bpo-11657: Исправлена отправка файловых дескрипторов больше 255 через multiprocessing.Pipe.2100- bpo-12811: tabnanny.check() теперь своевременно закрывает проверенные файлы. Патч от Anthony Briggs.2101- bpo-6560: API sendmsg/recvmsg теперь предоставляется модулем socket, если поддерживается платформой, что позволяет обрабатывать вспомогательные данные в чистом Python. Патч от David Watson и Heiko Wundram.2102- bpo-12326: В Linux sys.platform больше не содержит основной номер версии. Теперь это всегда 'linux', а не 'linux2' или 'linux3' в зависимости от версии Linux, на которой собирался Python.2103- bpo-12213: Исправлена ошибка буферизации при чередовании чтения и записи, которая могла возникать в BufferedRandom.2104- bpo-12778: Снижено потребление памяти при JSON-кодировании большого контейнера из множества маленьких объектов.2105- bpo-12650: Исправлено состояние гонки, при котором subprocess.Popen мог допустить утечку ресурсов (файловые дескрипторы/зомби), если был завершён в неподходящий момент.2106- bpo-12744: Исправлено неэффективное представление целых чисел от 2\*\*31 до 2\*\*63 в системах с 64-битным C 'long'.2107- bpo-12646: Добавлен атрибут 'eof' в zlib.Decompress для упрощения обнаружения усечённых входных потоков.2108- bpo-11513: Исправлена обработка исключения в `tarfile.TarFile.gzopen()` при невозможности открыть файл.2109- bpo-12687: Исправлена возможная ошибка буферизации при десериализации пиклей в текстовом режиме (в основном протокол 0).2110- bpo-10087: Исправлен формат вывода HTML в модуле calendar.2111- bpo-13121: Добавлена поддержка математических операторов присваивания для collections.Counter.2112- Добавлена поддержка унарного плюса и унарного минуса для collections.Counter.2113- bpo-12683: urlparse обновлён: теперь включает svn в число схем, использующих относительные пути (svn версии 1.5 и новее поддерживает относительные пути).2114- bpo-12655: В модуль os добавлены функции из sched.h: sched\_yield(), sched\_setscheduler(), sched\_getscheduler(), sched\_setparam(), sched\_get\_min\_priority(), sched\_get\_max\_priority(), sched\_rr\_get\_interval(), sched\_getaffinity(), sched\_setaffinity().2115- ThreadError добавлен в threading.\_\_all\_\_.2116- bpo-11104: Исправлено поведение команды sdist из distutils с вручную поддерживаемыми файлами MANIFEST. (См. также: bpo-8688)2117- bpo-11281: smtplib.STMP получил параметр source\_address, который добавляет возможность привязки к определённому исходному адресу на машине с несколькими интерфейсами. Патч от Paulo Scardine.2118- bpo-12464: tempfile.TemporaryDirectory.cleanup() не должен следовать по символическим ссылкам: исправлено. Патч от Petri Lehtinen.2119- bpo-8887: Теперь «pydoc somebuiltin.somemethod» (или help('somebuiltin.somemethod') в коде Python) находит документацию метода.2120- bpo-10968: Устранена косвенность в threading. Ранее общедоступные имена (Event, Condition и т.д.) были фабричными функциями, возвращающими экземпляры скрытых классов (\_Event, \_Condition и т.д.) – если Гвидо верно помнит, этот код был написан до появления возможности наследования от типов-расширений. Теперь можно наследоваться от этих классов напрямую, без необходимости импортировать приватные имена с подчёркиванием, как это делал multiprocessing.2121- bpo-9723: Добавлены функции shlex.quote для экранирования имён файлов и командных строк.2122- bpo-12603: Исправлена pydoc.synopsis() для файлов с неотрицательным st\_mtime.2123- bpo-12514: Использован try/finally, чтобы гарантировать, что модуль timeit восстанавливает сборку мусора после завершения.2124- bpo-12607: В подпроцессе исправлена проблема, при которой если stdin, stdout или stderr переданы как низкий файловый дескриптор, они перезаписывались.2125- bpo-12576: Исправлено поведение urlopen на сайтах, которые не отправляют (или скрывают) заголовок `Connection: close`.2126- bpo-12560: Сборка libpython.so на OpenBSD. Патч от Stefan Sperling.2127- bpo-1813: Исправлен поиск кодеков в турецких локалях.2128- bpo-12591: Улучшена поддержка «универсальных символов новой строки» в модуле подпроцесса: теперь канальные потоки можно корректно читать и записывать.2129- bpo-12591: Разрешена работа io.TextIOWrapper с сырыми объектами IO (без метода read1()) и добавлен параметр *write\_through*, предписывающий небуферизированную запись.2130- bpo-10883: Исправлена утечка сокетов в urllib.request при использовании FTP.2131- bpo-12592: Обеспечена сборка Python на OpenBSD 5 (и будущих основных версиях).2132- bpo-12372: Семафоры POSIX не работают на AIX: не используйте их.2133- bpo-12551: Добавлен метод get\_channel\_binding() для SSL-сокетов, чтобы получить данные привязки канала для текущего SSL-сеанса (реализована только привязка “tls-unique”). Это позволяет реализовать некоторые механизмы аутентификации, такие как SCRAM-SHA-1-PLUS. Патч от Jacek Konieczny.2134- bpo-665194: В email.utils добавлены функции format\_datetime и parsedate\_to\_datetime , обеспечивающие возможность преобразования дат формата RFC2822 в обоих направлениях.2135- bpo-12571: Добавлен каталог plat-linux3, зеркалирующий каталог plat-linux2, чтобы «import DLFCN» и другие аналогичные импорты работали на Linux 3.0.2136- bpo-7484: smtplib больше не помещает адреса в \<\> в командах VRFY и EXPN ; они не требуются, и на самом деле Postfix не поддерживает такую форму.2137- bpo-12273: Удалён ast.\_\_version\_\_. Изменения AST можно отслеживать, проверяя sys.version\_info или sys.\_mercurial.2138- Подавлены ложные трассировки «разрыв канала» при завершении ProcessPoolExecutor.2139- Исправлена потенциальная утечка ресурсов в concurrent.futures.ProcessPoolExecutor: при вызове shutdown() теперь завершаются все очереди и процессы.2140- bpo-11603: Исправлен сбой при перепривязке \_\_str\_\_ как \_\_repr\_\_. Патч от Andreas Stührk.2141- bpo-11321: Исправлен сбой при множественном импорте модуля \_pickle при встраивании Python. Патч от Andreas Stührk.2142- bpo-6755: Добавлен метод get\_wch() в класс curses.window. Патч от Iñigo Serna.2143- Добавлена функция cgi.closelog() для закрытия файла журнала.2144- bpo-12502: asyncore: исправлен цикл опроса для сокетов AF\_UNIX.2145- bpo-4376: ctypes теперь поддерживает вложенные структуры с порядком байт, отличным от родительской структуры. Патч от Vlad Riscutia.2146- Вызывается ValueError при попытке установить слишком большое значение атрибута \_CHUNK\_SIZE объекта TextIOWrapper, а не TypeError.2147- bpo-12504: Своевременное закрытие файловых дескрипторов в packaging.database. Исправлена ошибка с функцией удаления (деинсталляции) в Windows.2148- bpo-12169: Выделен код, используемый различными командами packaging для выполнения HTTP запросов POST, и обеспечено использование CRLF. (См. также: bpo-10510)2149- bpo-12016: Многобайтовые декодеры CJK теперь быстрее повторно синхронизируются. Они игнорируют только первый байт недопустимой последовательности. Например, b’\\xffn’.decode(‘gb2312’, ‘replace’) даёт ‘\\ufffdn’ вместо ‘\\ufffd’.2150- bpo-12459: time.sleep() теперь вызывает ValueError при отрицательной длительности сна, вместо бесконечного сна в Windows или IOError в Linux, чтобы поведение было одинаковым на всех платформах.2151- bpo-12451: pydoc: html\_getfile() теперь использует tokenize.open() для поддержки скриптов Python, использующих кодировку, отличную от UTF-8 (читает coding cookie скрипта).2152- bpo-12493: подпроцесс: Popen.communicate() теперь также обрабатывает ошибки EINTR, если процесс имеет только один канал.2153- bpo-12467: warnings: исправлена гонка при выводе предупреждения на завершении работы, если globals()\[‘\_\_file\_\_’\] имеет значение None.2154- bpo-12451: pydoc: importfile() теперь открывает Python-скрипт в двоичном режиме вместо текстового с использованием кодировки локали, чтобы избежать проблем с кодировкой.2155- bpo-12451: runpy: run\_path() теперь открывает Python-скрипт в двоичном режиме вместо текстового с использованием кодировки локали, чтобы поддерживать кодировки, отличные от UTF-8 (скрипты с указанием кодировки).2156- bpo-12451: xml.dom.pulldom: parse() теперь открывает файлы в двоичном режиме вместо текстового (используя кодировку локали) для устранения проблем с кодировкой.2157- bpo-12147: Изменён метод send\_message модуля smtplib (новый в версии 3.2) для лучшего соответствия RFC: корректная обработка заголовков Sender и Resent-.2158- bpo-12352: Исправлена взаимоблокировка в multiprocessing.Heap, когда блок освобождается сборщиком мусора во время удержания блокировки Heap.2159- bpo-12462: time.sleep() теперь немедленно вызывает (Python) обработчик сигнала при прерывании сигналом, а не ждёт следующей инструкции.2160- bpo-12442: Новая функция shutil.disk\_usage, возвращающая статистику общего, использованного и свободного дискового пространства.2161- bpo-12451: Загрузчик XInclude по умолчанию из xml.etree теперь декодирует файлы из UTF-8 вместо кодировки локали, если кодировка не указана. Он также теперь открывает XML-файлы для анализатора в двоичном режиме вместо текстового, чтобы избежать проблем с кодировкой.2162- bpo-12451: doctest.debug\_script() больше не создаёт временный файл, чтобы избежать проблем с кодировкой.2163- bpo-12451: pydoc.synopsis() теперь при наличии читает указание кодировки, чтобы читать Python-скрипт в правильной кодировке.2164- bpo-12451: distutils теперь открывает сценарий установки в двоичном режиме для чтения указания кодировки вместо открытия в UTF-8.2165- bpo-9516: На Mac OS X изменено поведение Distutils: теперь он не пытается глобально проверить или установить переменную окружения MACOSX\_DEPLOYMENT\_TARGET для процесса интерпретатора. Это могло приводить к сбоям в подпроцессах, не относящихся к Distutils, и было ненадёжно, так как тесты или пользовательские программы могли изменить окружение интерпретатора после того, как Distutils его установил. Вместо этого Distutils теперь устанавливает цель развёртывания только в окружении каждого сборочного подпроцесса. По-прежнему можно глобально переопределить значение по умолчанию, задав MACOSX\_DEPLOYMENT\_TARGET перед запуском интерпретатора; его значение должно быть не меньше значения по умолчанию, с которым был собран интерпретатор. Также реализована аналогичная обработка в packaging.2166- bpo-12422: В модуле copy не сохраняются в словаре memo объекты, которые являются собственной копией.2167- bpo-12303: В модуль signal добавлены функции sigwaitinfo() и sigtimedwait().2168- bpo-12404: Из модуля mmap удалён код, несовместимый с C89. Исправление от Akira Kitada.2169- bpo-1874: email теперь обнаруживает и сообщает как дефект наличие любого CTE, отличного от 7bit, 8bit или binary, в многосоставном сообщении.2170- bpo-12383: Исправлен модуль подпроцесса при env={}: теперь переменные окружения не копируются, запуск происходит с пустым окружением.2171- bpo-11637: Исправлена поддержка импорта хуков настройки packaging из каталога проекта.2172- bpo-6771: Функция curses.wrapper перемещена из одноимённого модуля-обёртки в \_\_init\_\_, что привело к удалению модуля. Поскольку \_\_init\_\_ уже импортировал эту функцию в curses.wrapper, изменений в API нет.2173- bpo-11584: email.header.decode\_header больше не завершается ошибкой, если переданный заголовок является объектом Header, а Header/make\_header больше не завершаются ошибкой при передаче двоичных входных данных с неизвестной 8-битной кодировкой.2174- bpo-11700: Методы close объектов-прокси mailbox теперь можно вызывать многократно без ошибки.2175- bpo-11767: Исправлена утечка файлового дескриптора в методе \_\_getitem\_\_ модуля mailbox.2176- bpo-12133: AbstractHTTPHandler.do\_open() из urllib.request закрывает HTTP-соединение, если его метод getresponse() завершается с ошибкой сокета. Исправление написано Ezio Melotti.2177- bpo-12240: В файлах setup.cfg packaging разрешено несколько хуков настройки. Оригинальное исправление от Erik Bray.2178- bpo-9284: inspect.findsource() теперь может находить исходный код функций doctest.2179- bpo-11595: Исправлены различные ошибки в packaging.util.cfg\_to\_args – вспомогательном модуле совместимости для перехода от distutils к packaging. Оригинальное исправление от Erik Bray.2180- bpo-12287: В ossaudiodev добавлена проверка, что устройство не закрыто, в нескольких методах.2181- bpo-12009: Исправлена регрессия в обработке комментариев в файлах netrc.2182- bpo-12246: Выводится предупреждение и происходит ошибка при попытке установки стороннего проекта из неустановленного Python (собранного из исходников). Оригинальное исправление от Tshepang Lekhonkhobe.2183- bpo-10694: zipfile теперь игнорирует мусор в конце zip-файла.2184- bpo-12283: Исправлена регрессия в smtplib при экранировании начальных точек в DATA.2185- bpo-10424: Argparse теперь включает имена обязательных аргументов, которые отсутствуют, в сообщение об ошибке о пропущенных аргументах.2186- bpo-12168: SysLogHandler теперь позволяет управлять завершением NUL с помощью нового атрибута ‘append\_nul’ обработчика.2187- bpo-11583: Ускорена работа os.path.isdir в Windows за счёт использования GetFileAttributes вместо os.stat.2188- bpo-12021: Аргумент метода read() в mmap стал необязательным. Патч от Petri Lehtinen.2189- bpo-9205: concurrent.futures.ProcessPoolExecutor теперь обнаруживает убитые дочерние процессы и в такой ситуации вызывает BrokenProcessPool. Ранее это приводило к надёжному зависанию / блокировке.2190- bpo-12040: Открыт новый атрибут `sentinel` у экземпляров `multiprocessing.Process`. Кроме того, исправлен Process.join() – больше не используется опрос при заданном таймауте.2191- bpo-11893: Удалён устаревший внутренний класс-обёртка `SSLFakeFile` в модуле smtplib. Патч от Catalin Iacob.2192- bpo-12080: Исправлен случай Decimal.power(), который требовал необоснованно много времени для вычисления.2193- bpo-12221: Удалены атрибуты \_\_version\_\_ из pyexpat, pickle, tarfile, pydoc, tkinter и xml.parsers.expat. Это были бесполезные константы версий, оставшиеся после перехода с Mercurial.2194- Именованные кортежи теперь корректно работают с vars().2195- bpo-12085: Исправлена ошибка атрибута в деструкторе subprocess.Popen, если конструктор завершился неудачей, например, из-за необъявленного именованного аргумента. Патч написан Oleg Oshmyan.2196- bpo-12028: threading.\_get\_ident() сделан публичным, переименован в threading.get\_ident() и задокументирован. Эта функция уже использовалась через \_thread.get\_ident().2197- bpo-12171: IncrementalEncoder.reset() для кодеков CJK (multibytecodec) теперь вызывает encreset() вместо decreset().2198- bpo-12218: Удалён wsgiref.egg-info.2199- bpo-12196: Добавлена pipe2() в модуль os.2200- bpo-985064: Повышена устойчивость plistlib к некорректным входным plist-файлам. Патч от Mher Movsisyan.2201- bpo-1625: BZ2File и bz2.decompress() теперь поддерживают многопотоковые файлы. Первоначальный патч от Nir Aides.2202- bpo-12175: BufferedReader.read(-1) теперь вызывает raw.readall(), если это возможно.2203- bpo-12175: FileIO.readall() теперь считывает позицию и размер файла только один раз.2204- bpo-12175: RawIOBase.readall() теперь возвращает None, если read() возвращает None.2205- bpo-12175: FileIO.readall() теперь вызывает ValueError вместо IOError, если файл закрыт.2206- bpo-11109: Добавлен метод service\_action для BaseServer, используемый классом ForkingMixin для очистки. Первоначальный патч от Justin Warkentin.2207- bpo-12045: Предотвращено двойное выполнение команды в ctypes.util.\_get\_soname(). Патч от Sijin Joseph.2208- bpo-10818: Удалены Tk GUI и функция serve() из модуля pydoc; pydoc -g был объявлен устаревшим в Python 3.2, и теперь есть новый улучшенный веб-сервер.2209- bpo-1441530: В imaplib данные читаются одним блоком для ускорения больших чтений и упрощения кода.2210- bpo-12070: Исправлен парсер Makefile в модуле sysconfig для корректной обработки ссылок на «некорректную переменную» (например, «prefix=$/opt/python»).2211- bpo-12100: Больше не выполняется сброс инкрементальных кодировщиков кодеков CJK при каждом вызове их метода encode(), но метод reset() по-прежнему вызывается, если аргумент final равен True.2212- bpo-12049: Добавлены функции RAND\_bytes() и RAND\_pseudo\_bytes() в модуль ssl.2213- bpo-6501: os.device\_encoding() возвращает None в Windows, если у приложения нет консоли.2214- bpo-12105: Добавлен O\_CLOEXEC в модуль os.2215- bpo-12079: Decimal(‘Infinity’).fma(Decimal(‘0’), (3.91224318126786e+19+0j)) теперь вызывает TypeError (отражая неверный тип третьего аргумента), а не Decimal.InvalidOperation.2216- bpo-12124: zipimport больше не хранит ссылку на zlib.decompress(), чтобы можно было выгрузить модуль.2217- Добавлен модуль packaging, улучшенная версия distutils (также известная как distutils2).2218- bpo-12065: connect\_ex() на SSL-сокете теперь возвращает исходный errno при истечении тайм-аута сокета (ранее возвращалось None).2219- bpo-8809: Конструктор SMTP\_SSL и SMTP.starttls() теперь поддерживают передачу аргумента `context`, указывающего на экземпляр ssl.SSLContext. Исправление от Kasun Herath.2220- bpo-9516: предотвращение ошибок в sysconfig при установке MACOSX\_DEPLOYMENT\_TARGET в оболочке. (См. также: bpo-9516)2221- bpo-8650: Модуль zlib приведён к 64-разрядной чистоте. compress(), decompress() и их инкрементальные аналоги теперь вызывают OverflowError, если на вход подаётся более 4 ГБ, вместо того чтобы молча обрезать входные данные и возвращать неверный результат.2222- bpo-12050: zlib.decompressobj().decompress() теперь очищает атрибут unconsumed\_tail при вызове без аргумента max\_length.2223- bpo-12062: Исправлена ошибка сброса буфера при выполнении определённой последовательности операций ввода-вывода в файле, открытом в режиме чтения+записи (а именно: чтение, небольшое смещение вперёд, запись, затем смещение перед предыдущей записью, но всё ещё в пределах буферизованных данных, и повторная запись).2224- bpo-9971: Написана оптимизированная реализация BufferedReader.readinto(). Исправление от John O’Connor.2225- bpo-11799: Обработчики аутентификации urllib.request теперь вызывают ValueError при получении неподдерживаемой схемы аутентификации. Исправление предоставлено Yuval Greenfield.2226- bpo-10419: Команда build\_scripts из distutils корректно обрабатывает не-ASCII пути (путь к исполняемому файлу Python). Открывает и записывает скрипт в двоичном режиме, но гарантирует, что shebang декодируется из UTF-8 и из кодировки скрипта. (См. также: bpo-6011)2227- bpo-8498: В socket.accept() разрешено указывать 0 в качестве значения backlog, чтобы принимать ровно одно соединение. Исправление от Daniel Evers.2228- bpo-12011: signal.signal() и signal.siginterrupt() теперь вызывают OSError вместо RuntimeError: у OSError есть атрибут errno.2229- bpo-3709: Добавлен метод flush\_headers в BaseHTTPRequestHandler, который управляет отправкой заголовков в выходной поток и сбросом внутреннего буфера заголовков. Исправление предоставлено Andrew Schaaf.2230- bpo-11743: Переписаны классы соединений multiprocessing на чистом Python.2231- bpo-11164: Прекращены попытки использования \_xmlplus в модуле xml.2232- bpo-11888: Добавлена функция log2 в модуль math. Исправление от Mark Dickinson.2233- bpo-12012: ssl.PROTOCOL\_SSLv2 становится опциональным.2234- bpo-8407: Обработчик сигнала теперь записывает номер сигнала как один байт вместо нулевого байта в файловый дескриптор пробуждения. Таким образом, стало возможным ожидать более одного сигнала и узнавать, какие сигналы были вызваны.2235- bpo-8407: Добавлены функции pthread\_kill(), sigpending() и sigwait() в модуль signal.2236- bpo-11927: SMTP\_SSL теперь по умолчанию использует порт 465, как указано в документации. Исправление от Kasun Herath.2237- bpo-12002: Метод abort() в ftplib вызывает TypeError.2238- bpo-11916: Добавлен ряд специфичных для MacOSX определений в модуль errno. Исправление от Pierre Carrier.2239- bpo-11999: Исправлена периодическая ошибка синхронизации mailbox.Maildir, вызванная попыткой обнаружить изменения mtime путём сравнения с системными часами вместо предыдущего значения mtime.2240- bpo-11072: Добавлена поддержка команды MLSD (RFC-3659) в ftplib.2241- bpo-8808: Конструктор IMAP4\_SSL теперь позволяет передавать параметр SSLContext для управления параметрами защищённого канала. Исправление от Sijin Joseph.2242- ntpath.samefile не замечал, что «a.txt» и «A.TXT» ссылаются на один и тот же файл в Windows XP. Как было замечено в [issue #10684](https://python-all.ru/3.3/whatsnew/changelog.html).2243- bpo-12000: Если SSL-сертификат содержит subjectAltName без записей dNSName, ssl.match\_hostname() должно использовать commonName субъекта. Исправление от Nicolas Bareil.2244- bpo-10775: assertRaises, assertRaisesRegex, assertWarns и assertWarnsRegex теперь принимают именованный аргумент 'msg' при использовании в качестве менеджеров контекста. Первоначальное исправление от Winston Ewert.2245- bpo-10684: shutil.move раньше удалял папку в файловых системах без учёта регистра, когда имена источника и назначения совпадали за исключением регистра.2246- bpo-11647: Объекты, созданные с помощью contextlib.contextmanager, теперь поддерживают более одного вызова функции при использовании в качестве декоратора. Первоначальное исправление от Ysj Ray.2247- bpo-11930: Удалена устаревшая переменная time.accept2year. Удалено ограничение year \>= 1000 из datetime.strftime.2248- logging: не определять QueueListener, если в Python нет поддержки потоков.2249- functools.cmp\_to\_key() теперь работает с collections.Hashable().2250- bpo-11277: mmap.mmap() вызывает fcntl(fd, F\_FULLFSYNC) на Mac OS X для обхода ошибки mmap с разреженными файлами. Патч написан Steffen Daode Nurpmeso.2251- bpo-8407: Добавлена функция signal.pthread\_sigmask() для получения и/или изменения маски сигналов вызывающего потока.2252- bpo-11858: configparser.ExtendedInterpolation ожидал имена секций в нижнем регистре.2253- bpo-11324: ConfigParser(interpolation=None) теперь работает корректно.2254- bpo-11811: ssl.get\_server\_certificate() теперь совместим с IPv6. Патч от Charles- François Natali.2255- bpo-11763: в TestCase.assertMultiLineEqual больше не используется difflib, если строки слишком длинные.2256- bpo-11236: getpass.getpass реагирует на ctrl-c и ctrl-z в терминале.2257- bpo-11856: Ускорен разбор чисел JSON.2258- bpo-11005: threading.RLock().\_release\_save() вызывает RuntimeError, если блокировка не была захвачена.2259- bpo-11258: Ускорение ctypes.util.find\_library() в Linux в 5–10 раз. Первоначальный патч от Jonas H.2260- bpo-11382: Тривиальные системные вызовы, такие как dup() или pipe(), не обязаны освобождать GIL. Патч от Charles-François Natali.2261- bpo-11223: Добавлена функция threading.\_info(), предоставляющая информацию о реализации потоков.2262- bpo-11731: упрощение/улучшение API парсера/генератора email с помощью введения объектов policy.2263- bpo-11768: Обработчик сигналов модуля signal теперь вызывает Py\_AddPendingCall() только для первого сигнала, чтобы исправить взаимоблокировку при реентерабельных или параллельных вызовах. PyErr\_SetInterrupt() также записывает в файл пробуждения.2264- bpo-11492: исправлены несколько проблем со свёрткой заголовков в пакете email.2265- bpo-11852: Добавлены недостающие импорты и обновлены тесты.2266- bpo-11875: collections.OrderedDict.\_\_reduce\_\_ временно изменял объект вместо работы с копией.2267- bpo-11467: Исправлено поведение urlparse при обработке URL, содержащих в схеме только цифры. Патч от Santoso Wijaya.2268- collections.Counter().copy() теперь корректно работает для подклассов.2269- bpo-11474: Исправлена ошибка в url2pathname() при обработке «/C|/» в Windows. Патч от Santoso Wijaya.2270- bpo-11684: завершён bytes API email.parser добавлением BytesHeaderParser.2271- Модуль bz2 теперь корректно обрабатывает входные буферы размером более 4 ГБ.2272- bpo-9233: Исправлено json.loads('{}'), чтобы возвращал словарь (вместо списка), когда \_json недоступен.2273- bpo-11830: Удалён ненужный код интроспекции в модуле decimal.2274- bpo-11703: urllib2.geturl() не возвращает корректный URL, если исходный URL содержит #fragment.2275- bpo-10019: Исправлен регресс в модуле json, когда отступ 0 переставал добавлять новые строки и вёл себя как None.2276- bpo-11186: pydoc игнорирует модуль, если его имя содержит суррогатный символ в индексе модулей.2277- bpo-11815: Использовать облегчённую SimpleQueue для очереди результатов в concurrent.futures.ProcessPoolExecutor.2278- bpo-5162: Обрабатывать службы как замороженные исполняемые файлы, чтобы разрешить порождение дочерних процессов из multiprocessing.forking в Windows.2279- logging.basicConfig теперь поддерживает опциональный аргумент «handlers», принимающий итерируемый объект с обработчиками для добавления к корневому логгеру. Также в basicConfig добавлены дополнительные проверки параметров.2280- bpo-11814: Исправлена вероятная опечатка в multiprocessing.Pool.\_terminate().2281- bpo-11747: Исправлено форматирование диапазонов в difflib.context\_diff() и difflib.unified\_diff().2282- bpo-8428: Исправлено состояние гонки в multiprocessing.Pool при завершении рабочих процессов: новые процессы могли порождаться во время остановки пула. Патч от Charles-François Natali.2283- bpo-2650: re.escape() больше не экранирует символ ‘\_’.2284- bpo-11757: select.select() теперь вызывает ValueError при передаче отрицательного таймаута (ранее вызывалась ошибка select.error с EINVAL). Патч от Charles-François Natali.2285- bpo-7311: исправлен html.parser для принятия не-ASCII значений атрибутов.2286- bpo-11605: email.parser.BytesFeedParser некорректно преобразовывал составные подчасти с 8-битным CTE в Unicode вместо сохранения байтов.2287- bpo-1690608: email.util.formataddr теперь поддерживает RFC 2047: у него появился параметр charset, по умолчанию utf-8, который используется в качестве кодировки для кодирования по RFC 2047, когда realname содержит не-ASCII символы.2288- bpo-10963: Обеспечено, что subprocess.communicate() никогда не вызывает EPIPE.2289- bpo-10791: Реализован отсутствующий метод GzipFile.read1(), позволяющий оборачивать GzipFile в TextIOWrapper. Патч от Nadeem Vawda.2290- bpo-11707: Добавлена быстрая C-версия functools.cmp\_to\_key(). Патч от Filip Gruszczyński.2291- bpo-11688: Добавлен sqlite3.Connection.set\_trace\_callback(). Патч от Torsten Landschoff.2292- bpo-11746: Исправлен SSLContext.load\_cert\_chain() для принятия закрытых ключей на эллиптических кривых.2293- bpo-5863: Переписан BZ2File на чистом Python, теперь он может принимать файлоподобные объекты с помощью нового аргумента конструктора `fileobj`. Патч от Nadeem Vawda.2294- unittest.TestCase.assertSameElements удалён.2295- sys.getfilesystemencoding() вызывает RuntimeError, если initfsencoding() ещё не был вызван: позволяет выявлять проблемы начальной загрузки (startup) на раннем этапе.2296- bpo-11393: Добавлен новый модуль faulthandler.2297- bpo-11618: Исправлена логика таймаута в threading.Lock.acquire() в Windows.2298- Удалён аргумент ‘strict’ у email.parser.Parser, который был устаревшим начиная с Python 2.4.2299- bpo-11256: Исправлен inspect.getcallargs для функций, принимающих только именованные аргументы.2300- bpo-11696: Исправлена генерация ID в msilib.2301- itertools.accumulate теперь поддерживает необязательный аргумент *func* для пользовательской бинарной функции.2302- bpo-11692: Удалены ненужные демонстрационные функции в модуле subprocess.2303- bpo-9696: Исправлено некорректное возбуждение исключения xdrlib.Packer.pack\_int при попытке упаковать отрицательное (допустимое) целое число.2304- bpo-11675: Объекты multiprocessing.\[Raw\]Array, созданные из целочисленного размера, теперь обнуляются при создании. Это соответствует поведению, описанному в документации.2305- bpo-7639: Исправлена генерация коротких имён файлов в bdist\_msi2306- bpo-11635: Не использовать опрос (polling) в рабочих потоках и процессах, запускаемых concurrent.futures.2307- bpo-6811: Разрешено importlib изменять атрибут co\_filename объекта кода, чтобы он соответствовал текущему пути к исходному коду, а не месту, откуда объект кода был первоначально получен.2308- bpo-8754: Использовать repr имени модуля в сообщениях об ошибках importlib.2309- bpo-11591: Предотвращать изменение sys.path при “import site”, если python был запущен с -S.2310- collections.namedtuple() теперь добавляет атрибут \_source к сгенерированному классу. Это делает исходный код более доступным по сравнению с устаревшей опцией “verbose”, которая выводит его в stdout, но не предоставляет строку исходного кода.2311- bpo-11371: Пометить сообщения об ошибках getopt как локализуемые. Патч от Filip Gruszczyński.2312- bpo-11333: Добавлен \_\_slots\_\_ в ABC коллекций.2313- bpo-11628: Класс, создаваемый cmp\_to\_key, должен использовать \_\_slots\_\_.2314- bpo-11666: help() теперь отображает атрибуты и методы именованного кортежа, которые начинаются с подчёркивания.2315- bpo-11662: urllib и urllib2 теперь игнорируют перенаправления, если схема не HTTP, HTTPS или FTP (CVE-2011-1521).2316- bpo-5537: Исправлены функции time2isoz() и time2netscape() из httplib.cookiejar для года истечения срока больше 2038 на 32-битных системах.2317- bpo-4391: Использование правильных форм множественного числа gettext в optparse.2318- bpo-11127: Возбуждение TypeError при попытке сериализовать объект сокета.2319- bpo-11563: Заголовок `Connection: close` теперь отправляется запросами через класс URLOpener, что помогает закрывать сокеты после завершения соединения. Патч предоставлен Jeff McNeil и Nadeem Vawda.2320- bpo-11459: Значение `bufsize` равное 0 в subprocess.Popen() действительно создаёт небуферизованные каналы, так что select() работает с ними корректно.2321- bpo-5421: Исправлено вводящее в заблуждение сообщение об ошибке, когда один из аргументов socket.sendto() имеет неверный тип. Патч от Nikita Vetoshkin.2322- bpo-10812: Добавлены дополнительные функции POSIX в модуль os.2323- bpo-10979: Буферизация stdout в unittest теперь работает с настройкой и завершением классов и модулей.2324- bpo-11243: Исправлены методы запроса параметров Message для работы, если заголовки содержат незакодированные не-ASCII данные.2325- bpo-11401: Исправлена обработка заголовков без значения; это исправляет регрессию относительно Python2, и теперь результат такой же, как в Python2.2326- bpo-9298: Тела в base64 не сворачивались до длины строки менее 78, что было регрессией относительно Python2. В отличие от Python2, последняя строка свёрнутого тела теперь заканчивается символом возврата каретки.2327- bpo-11560: shutil.unpack\_archive теперь корректно обрабатывает параметр format. Патч от Evan Dandrea.2328- bpo-5870: Добавлена константа [`subprocess.DEVNULL`](https://python-all.ru/3.3/library/subprocess.html#subprocess.DEVNULL).2329- bpo-11133: Исправлены два случая, когда inspect.getattr\_static мог вызывать выполнение кода. Патч от Andreas Stührk.2330- bpo-11569: Использование абсолютного пути к команде sysctl в multiprocessing, чтобы гарантировать её нахождение независимо от shell PATH. Это обеспечивает работу multiprocessing.cpu\_count на стандартных установках MacOSX.2331- bpo-11501: disutils.archive\_utils.make\_zipfile больше не завершается ошибкой, если zlib не установлен. Вместо этого используется сжатие zipfile.ZIP\_STORED для создания ZipFile. Патч от Natalia B. Bidart.2332- bpo-11289: Класс `smtp.SMTP` теперь является контекстным менеджером, поэтому его можно использовать в операторе `with`. Предоставлено Giampaolo Rodola.2333- bpo-11554: Исправлена поддержка японских кодировок; ранее кодировка тела вывода не выполнялась, если euc-jp или shift-jis были указаны как charset.2334- bpo-11407: `TestCase.run` возвращает используемый или созданный объект результата. Предоставлено Janathan Hartley.2335- bpo-11500: Исправлена ошибка в коде обхода прокси OS X для полностью квалифицированных IP-адресов в списке исключений прокси.2336- bpo-11491: dbm.error больше не возбуждается, когда dbm.open вызывается с флагом «n» и файл существует. Поведение соответствует документации и общей логике.2337- bpo-1162477: Корректировка принципа Постела в разборе дат email: обработка того факта, что некоторые несовместимые MUA используют ‘.’ вместо ‘:’ в спецификациях времени.2338- bpo-11131: Исправлен знак нуля в операциях плюс и минус decimal.Decimal, когда режим округления – ROUND\_FLOOR.2339- bpo-9935: Ускорение сериализации экземпляров пользовательских классов.2340- bpo-5622: Исправлен curses.wrapper для возбуждения правильного исключения, если инициализация curses не удалась.2341- bpo-11408: В threading.Lock.acquire() вызов gettimeofday() производится только когда действительно необходимо. Патч от Charles-François Natali.2342- bpo-11391: Запись в объект mmap, созданный с `mmap.PROT_READ|mmap.PROT_EXEC`, приводила к ошибке сегментации вместо возбуждения TypeError. Патч от Charles-François Natali.2343- bpo-9795: Добавлена поддержка протокола контекстного менеджера для класса nntplib.NNTP.2344- bpo-11306: модуль mailbox в некоторых случаях адаптируется к невозможности открыть определённые файлы в режиме чтения-записи. Ранее он обнаруживал это по ошибке EACCES, теперь также проверяет EROFS.2345- bpo-11265: модуль asyncore теперь корректно обрабатывает ошибки EPIPE, EBADF и EAGAIN при вызовах accept(), send() и recv().2346- bpo-11377: функция platform.popen() объявлена устаревшей и переписана через os.popen().2347- bpo-8513: на UNIX модуль subprocess поддерживает строку команды в виде bytes.2348- bpo-10866: добавлена функция socket.sethostname(). Первоначальная реализация – Ross Lagerwall.2349- bpo-11140: метод Lock.release() теперь возбуждает RuntimeError при попытке освободить незахваченную блокировку, как и указано в документации threading. Исключение \_thread.error теперь является псевдонимом RuntimeError. Патч от Filip Gruszczyński. Патч для \_dummy\_thread от Aymeric Augustin.2350- bpo-8594: модуль ftplib теперь предоставляет параметр source\_address для указания локального адреса (address, port), к которому необходимо привязаться перед подключением.2351- bpo-11326: добавлена недостающая реализация connect\_ex() для SSL-сокетов, и она работает для неблокирующих подключений.2352- bpo-11297: добавлен collections.ChainMap().2353- bpo-10755: добавлена функция posix.flistdir(). Патч от Ross Lagerwall.2354- bpo-4761: добавлено семейство функций `*at()` (openat() и др.) в модуль posix. Патч от Ross Lagerwall.2355- bpo-7322: попытка чтения из файлоподобного объекта сокета после истечения таймаута теперь вызывает ошибку вместо молчаливой потери данных.2356- bpo-11291: poplib.POP больше не подавляет ошибки при вызове quit().2357- bpo-11177: аргументы метода create\_socket() модуля asyncore теперь можно опускать.2358- bpo-6064: добавлен именованный аргумент `daemon` в конструкторы threading.Thread и multiprocessing.Process для возможности переопределить поведение по умолчанию, при котором свойство daemonic наследуется от текущего потока/процесса.2359- bpo-10956: классы буферизированного ввода-вывода повторяют попытку чтения или записи после получения сигнала и успешного возврата из обработчика.2360- bpo-10784: новые функции os.getpriority() и os.setpriority().2361- bpo-11114: исправлена катастрофическая производительность метода tell() для текстовых файлов (в некоторых случаях до 1000 раз быстрее). Однако он всё ещё на один-два порядка медленнее, чем tell() для двоичных файлов.2362- bpo-10882: добавлена функция os.sendfile.2363- bpo-10868: разрешено использование метода register абстрактного базового класса в качестве декоратора класса.2364- bpo-11224: исправлен регресс в tarfile, который затрагивал файлоподобные объекты, возвращаемые методом TarFile.extractfile(), в части производительности, потребления памяти и ошибок при работе с потоковым интерфейсом.2365- bpo-10924: добавлены соль и Modular Crypt Format в библиотеку crypt. Старая обёртка на C перенесена в \_crypt, и добавлена обёртка на Python с улучшенной генерацией соли и упрощённым API для генерации паролей.2366- bpo-11074: модуль tokenize теперь можно перезагружать.2367- bpo-11085: абстрактные базовые классы collections перенесены в отдельный модуль collections.abc по образцу importlib.abc. Для обратной совместимости имена импортируются в модуль collections.2368- bpo-4681: разрешена работа mmap() с файлами размером и смещениями больше 4 ГБ, даже в 32-битных сборках. Первоначальная реализация Ross Lagerwall, адаптирована для 32-битной Windows.2369- bpo-11169: модуль compileall использует repr() для форматирования имён файлов и путей, чтобы экранировать суррогатные символы и отображать пробелы.2370- bpo-11089: исправлена проблема производительности, ограничивающая использование ConfigParser() с большими конфигурационными файлами.2371- bpo-10276: исправлены результаты zlib.crc32() и zlib.adler32() для буферов размером более 4 ГБ. Патч от Nadeem Vawda.2372- bpo-11388: добавлен метод clear() в MutableSequence2373- bpo-11174: добавлен argparse.MetavarTypeHelpFormatter, который использует имена типов для названий опциональных и позиционных аргументов в сообщениях справки.2374- bpo-9348: генерировать раннюю ошибку, если nargs и metavar в argparse не совпадают.2375- bpo-9026: исправлен порядок подкоманд argparse в сообщениях справки.2376- bpo-9347: Исправлено форматирование кортежей в сообщениях об ошибках типа= в argparse.2377- bpo-12191: Добавлена функция shutil.chown() для смены владельца (пользователя и/или группы) заданного пути с указанием их имён.2378- bpo-13988: Ускоритель \_elementtree используется, когда доступен. Теперь xml.etree.cElementTree становится устаревшим псевдонимом для ElementTree.23792380### Сборка23812382- bpo-6807: Запуск msisupport.mak выполняется раньше.2383- bpo-10580: Небольшое изменение грамматики в установщике Windows.2384- bpo-13326: Корректная очистка каталогов \_\_pycache\_\_ на OpenBSD.2385- PEP 393: удалена опция configure –with-wide-unicode.2386- bpo-12852: Установлено значение \_XOPEN\_SOURCE равным 700 вместо 600 для получения функций POSIX 2008 на OpenBSD (например, fdopendir).2387- bpo-11863: Удалена поддержка устаревших систем, объявленных таковыми в Python 3.2 (следуя PEP 11). Это системы, использующие Mach C Threads, легковесные процессы SunOS, потоки GNU pth и потоки IRIX.2388- bpo-8746: Исправлены ошибочные проверки configure, чтобы os.chflags() и os.lchflags() снова собирались на системах, поддерживающих эти функции (BSD и OS X). Также добавлены новые флаги файлов stat для OS X (UF\_HIDDEN и UF\_COMPRESSED).2389- bpo-10645: Установка Python больше не создаёт файл Python-X.Y.Z-pyX.Y.egg- info в каталоге lib-dynload.2390- При сборке sqlite3 больше не происходит случайного включения каталога с sqlite.h дважды.2391- bpo-11217: Для универсальных сборок framework Mac OS X (64-бит/32-бит) обеспечено создание символических ссылок «make install» в каталоге –prefix bin для файлов «-32» в каталоге framework bin, как это делает установщик.2392- bpo-11347: Используется –no-as-needed при линковке libpython3.so.2393- bpo-11411: Исправлена работа «make DESTDIR=» с относительным путём назначения.2394- bpo-11268: Предотвращение сбоя установщика Mac OS X, если пакет Documentation был ранее установлен.2395- bpo-11495: Поддержка OSF устранена. Она была объявлена устаревшей в Python 3.2.23962397### IDLE23982399- bpo-14409: IDLE теперь корректно выполняет команды в окне Shell, когда не может прочитать обычные файлы конфигурации при запуске и вынужден использовать встроенные назначения клавиш по умолчанию. Ранее была ошибка в одном из значений по умолчанию.2400- IDLE можно запускать как python -m idlelib2401- bpo-3573: IDLE зависает при передаче недопустимых аргументов командной строки (каталог(и) вместо файла(ов)) (Патч от Guilherme Polo)2402- bpo-14200: Краш оболочки IDLE при выводе не-BMP символа Unicode.2403- bpo-5219: Предотвращение каскада обработчиков событий в IDLE.2404- bpo-964437: Окно справки IDLE сделано немодальным. Патч от Guilherme Polo и Roger Serwy.2405- bpo-13933: Автодополнение IDLE не работало с некоторыми импортированными модулями, например, hashlib. (Патч от Roger Serwy)2406- bpo-13506: Добавлен '' в путь для оболочки IDLE при запуске и перезапуске с помощью Restart Shell. Исходные патчи от Marco Scataglini и Roger Serwy.2407- bpo-4625: Если IDLE не может записать в файл последних файлов или файлы точек останова, отображается всплывающее сообщение и работа продолжается, а не аварийно завершается. Исходный патч от Roger Serwy.2408- bpo-8641: Обновлена подсветка синтаксиса IDLE 3 для распознавания b”..” и не распознавания u”..”. Патч от Tal Einat.2409- bpo-13296: Исправлена ошибка IDLE: теперь флаги compile \_\_future\_\_ очищаются при перезапуске оболочки. (Патч от Roger Serwy)2410- bpo-9871: Предотвращение краша IDLE 3 при передаче байтовых строк с недопустимыми шестнадцатеричными escape-последовательностями, например, b'x0'. (Исходный патч от Claudiu Popa.)2411- bpo-12636: IDLE читает coding cookie при выполнении скрипта Python.2412- bpo-12540: Предотвращение появления процессов-зомби IDLE в Windows из-за изменений в os.kill().2413- bpo-12590: Окно редактора IDLE теперь всегда отображает первую строку при открытии длинного файла. В Tk 8.5 первая строка была скрыта.2414- bpo-11088: больше не происходит аварийного завершения при использовании F5 для запуска скрипта в IDLE на MacOSX с Tk 8.5.2415- bpo-1028: Tk возвращает недопустимый нулевой символ Unicode в %A: UnicodeDecodeError. При Tk \< 8.5 функция \_tkinter.c:PythonCmd() вызывала UnicodeDecodeError, что приводило к выходу из IDLE. Теперь в PythonCmd() выполняется преобразование в допустимый нулевой символ Unicode.2416- bpo-11718: диалог открытия модуля в IDLE не мог найти файл \_\_init\_\_.py в пакете.24172418### Инструменты/Демонстрации24192420- bpo-14053: теперь patchcheck.py («make patchcheck») работает с патчами MQ. Патч от Francisco Martín Brugué.2421- bpo-13930: 2to3 теперь может записывать преобразованные выходные файлы в другое дерево каталогов, а также копировать неизменённые файлы и изменять расширение файла. Смотрите новые опции -o, -W и –add-suffix. Это делает его более полезным во многих рабочих процессах автоматического преобразования кода.2422- bpo-13628: python-gdb.py теперь может извлекать больше фреймов в трассировке Python, если Python оптимизирован.2423- bpo-11996: libpython (gdb): команда «py-bt» заменена на «py-bt-full», добавлена более умная команда «py-bt», печатающая классическую трассировку Python.2424- bpo-11179: восстановлена работа ccbench под Python 3.1 и 2.7.2425- bpo-10639: reindent.py больше не преобразует символы новой строки и будет вызывать ошибку при попытке преобразовать файл со смешанными символами новой строки. Добавлена опция «–newline» для указания символа новой строки.24262427### Библиотека24282429- bpo-16847: Исправлено некорректное использование \_PyUnicode\_CheckConsistency() в сборках без pydebug. Теперь несколько модулей расширения компилируются чисто при включённых assert() в стандартных сборках (флаг -DDEBUG).2430- bpo-13840: исправлено сообщение об ошибке, выдаваемое ctypes.create\_string\_buffer при передаче строки Unicode.2431- bpo-9975: socket: исправлено некорректное использование flowinfo и scope\_id. Патч от Vilmos Nebehaj.2432- bpo-7777: socket: добавлена поддержка надёжных дейтаграммных сокетов (PF\_RDS).2433- bpo-13159: FileIO и BZ2Compressor/BZ2Decompressor теперь используют стратегию роста буфера с линейным временем вместо квадратичного.2434- bpo-10141: socket: добавлена поддержка SocketCAN (PF\_CAN). Первоначальный патч от Matthias Fuchs, обновлён Tiago Gonçalves.2435- bpo-13070: исправлено аварийное завершение, когда TextIOWrapper, попавший в циклическую ссылку, финализировался после того, как сборщик мусора очищал ссылку на writer его базового BufferedRWPair.2436- bpo-12881: ctypes: исправлено аварийное завершение (segfault) при длинных именах полей структуры.2437- bpo-13058: ossaudiodev: исправлена утечка файлового дескриптора при ошибке. Патч от Thomas Jarosch.2438- bpo-13013: ctypes: исправлена утечка ссылки в PyCArrayType\_from\_ctype. Спасибо Suman Saha за обнаружение ошибки и предоставление патча.2439- bpo-13022: исправлено: \_multiprocessing.recvfd() не проверяет, был ли файловый дескриптор фактически получен.2440- bpo-1172711: добавлена поддержка ‘long long’ в модуль array. Первоначальный патч от Oren Tirosh и Hirokazu Yamamoto.2441- bpo-12483: ctypes: исправлено аварийное завершение, когда уничтожение объекта колбэка вызывает сборщик мусора.2442- bpo-12950: исправлена передача файловых дескрипторов в multiprocessing под OpenIndiana/Illumos.2443- bpo-12764: исправлено аварийное завершение в ctypes, когда имя поля Structure не является строкой.2444- bpo-11241: теперь можно наследовать подклассы ctypes.Array.2445- bpo-9651: исправлено аварийное завершение, когда ctypes.create\_string\_buffer(0) передавался некоторым функциям, например file.write().2446- bpo-10309: определён \_GNU\_SOURCE, чтобы mremap() получала правильную сигнатуру. Без этого на архитектурах, где sizeof(void\*) != sizeof(int), происходили ошибки. Патч предоставлен Hallvard B Furuseth.2447- bpo-12051: исправлено аварийное завершение (segfault) в json.dumps() при кодировании сильно вложенных объектов с использованием ускорений на C.2448- bpo-12017: исправлено аварийное завершение (segfault) в json.loads() при декодировании сильно вложенных объектов с использованием ускорений на C.2449- bpo-1838: предотвращено аварийное завершение (segfault) в ctypes, когда \_as\_parameter\_ в классе устанавливается на экземпляр того же класса.24502451### Тесты24522453- bpo-13125: подавлен ложный вывод test\_lib2to3 в не-подробном режиме. Патч от Mikhail Novikov.2454- bpo-13447: добавлен тестовый файл для регрессионных тестов на ошибки в скриптах из каталога Tools.2455- bpo-10881: Исправлена ошибка test\_site при сборках фреймворка OS X.2456- bpo-13901: Предотвращены сбои test\_distutils на OS X при –enable-shared.2457- bpo-13862: Исправлен ложный сбой test\_zlib из-за несовпадения минорных версий во время выполнения и компиляции.2458- bpo-12804: Исправлены сбои test\_socket и test\_urllib2net при запуске тестов в системе без доступа в Интернет.2459- bpo-13726: Исправлен неоднозначный флаг -S в regrtest. Для медленных тестов используется -o/–slow.2460- bpo-11659: Исправлено ResourceWarning в test\_subprocess, возникшее в результате #11459. Патч от Ben Hayden.2461- bpo-11577: Исправлено ResourceWarning, вызванное улучшенным покрытием тестов binhex.2462- bpo-11509: Значительно увеличено покрытие тестами fileinput. Патч от Denver Coneybeare на PyCon 2011 Sprints.2463- bpo-11689: Исправлена ошибка области видимости переменной в тесте sqlite3.2464- bpo-13786: Удалена нереализованная длинная опция ‘trace’ из regrtest.py.2465- bpo-13725: Исправлено распознавание документированного флага -d в regrtest. Патч от Erno Tukia.2466- bpo-13304: Пропуск тестового случая, если отключены пользовательские site-packages (-s или PYTHONNOUSERSITE). (Патч от Carl Meyer).2467- bpo-5661: Добавлен тест обработки ECONNRESET/EPIPE в test\_asyncore. Патч от Xavier de Gaye.2468- bpo-13218: Исправлены сбои test\_ssl на Debian/Ubuntu.2469- Повторно включены тесты test\_parser.py из lib2to3, хотя и с ожидаемым сбоем (см. issue 13125).2470- bpo-12656: Добавлены тесты для IPv6 и Unix-сокетов в test\_asyncore.2471- bpo-6484: Добавлены модульные тесты для модуля mailcap (патч от Gregory Nofi).2472- bpo-11651: Улучшены цели тестирования в Makefile для более быстрого выполнения большей части тестового набора. Опция –multiprocess теперь включена по умолчанию, что сокращает время, необходимое для запуска тестов. «make test» и «make quicktest» теперь включают некоторые ресурсоёмкие тесты, но больше не запускают тестовый набор дважды для проверки ошибок генерации .pyc. Tools/scripts/run\_test.py предоставляет простой платформонезависимый способ запуска тестового набора с разумными настройками по умолчанию.2473- bpo-12331: Тестовый набор для модуля packaging теперь можно запускать из установленного Python.2474- bpo-12331: Тестовый набор для lib2to3 теперь можно запускать из установленного Python.2475- bpo-12626: В regrtest добавлена возможность фильтрации тестов с помощью glob-фильтра через опцию `-m` (или `--match`). Это работает со всеми тестовыми случаями, использующими модуль unittest. Полезно для длинных тестовых наборов, таких как test\_io или test\_subprocess.2476- bpo-12624: Теперь можно завершить выполнение после первой же ошибки при работе в подробном режиме (`-v` или `-W`), используя опцию `--failfast` (или `-G`) в regrtest. Полезно для длинных тестовых наборов, таких как test\_io или test\_subprocess.2477- bpo-12587: Исправлен некорректный тестовый файл и ссылка в test\_tokenize. (Патч от Robert Xiao).2478- bpo-12573: Добавлены проверки ресурсов для висящих объектов потоков и процессов.2479- bpo-12549: Исправлен test\_platform, чтобы он не выдавал сбой, когда OS X возвращает ‘x86\_64’ в качестве типа процессора на некоторых Mac-системах.2480- Пропуск сетевых тестов, когда getaddrinfo() возвращает EAI\_AGAIN, что означает временную ошибку разрешения имён.2481- bpo-11812: Устранена временная ошибка сокета при подключении к ‘localhost’ в test\_telnetlib.py.2482- Устранена потенциальная взаимоблокировка в test\_telnetlib.py. Связано с [issue #11812](https://python-all.ru/3.3/whatsnew/changelog.html).2483- Предотвращён сбой test\_robotparser при нестабильной работе mueblesmoraleda.com и перенаправлении через чересчур ревностный DNS-сервис (например, OpenDNS) на сайт-заполнитель.2484- Предотвращён сбой test\_urllibnet.test\_bad\_address, когда какой-либо чересчур ревностный DNS-сервис (например, OpenDNS) разрешает несуществующее доменное имя. Теперь тест просто пропускается.2485- bpo-12440: При проверке возможности сброса некоторых битов в SSLContext.options проверяется версия заголовочных файлов OpenSSL, с которыми был скомпилирован Python, а не версия библиотеки OpenSSL во время выполнения.2486- bpo-11512: Добавлен тестовый набор для модуля cgitb. Патч от Robbie Clemons.2487- bpo-12497: Установлен каталог test/data, чтобы предотвратить сбои в различных тестах codecmaps.2488- bpo-12496: Установлен каталог test/capath, чтобы предотвратить сбой теста test\_connect\_capath в test\_ssl.2489- bpo-12469: Тесты wakeup и ожидающих сигналов запускаются в подпроцессе, чтобы тест выполнялся в новом процессе с одним потоком и не изменял обработку сигналов родительского процесса.2490- bpo-8716: Предотвращение сбоев, вызванных Aqua Tk на OSX, при попытке запустить test\_tk или test\_ttk\_guionly от имени пользователя, не вошедшего в консольный windowserver (как может быть при использовании buildbot или ssh).2491- bpo-12407: Явный пропуск test\_capi.EmbeddingTest в Windows.2492- bpo-12400: regrtest -W больше не запускает тесты дважды, а вместо этого перехватывает вывод и отображает его при сбое. regrtest -v больше не выводит ошибку дважды, если есть только одна ошибка.2493- bpo-12141: Установлены копии шаблонного файла модуля C, чтобы test\_build\_ext из test\_distutils и test\_command\_build\_ext из test\_packaging больше не пропускались молча при запуске вне каталога сборки.2494- bpo-8746: Добавлены дополнительные тесты для os.chflags() и os.lchflags(). Патч от Garrett Cooper.2495- bpo-10736: Исправлены сбои test\_ttk test\_widgets с Cocoa Tk 8.5.9 2.8 + на Mac OS X. (Патч от Ronald Oussoren)2496- bpo-12057: Добавлены тесты для кодеков ISO 2022 (iso2022\_jp, iso2022\_jp\_2, iso2022\_kr).2497- bpo-12096: Исправлено состояние гонки в test\_threading.test\_waitfor(). Патч написан Charles-François Natali.2498- bpo-11614: import \_\_hello\_\_ выводит «Hello World!». Патч написан Andreas Stührk.2499- bpo-5723: Улучшены тесты json для выполнения с ускорением и без.2500- bpo-12041: Сделать test\_wait3 более надёжным.2501- bpo-11873: Изменено регулярное выражение в test\_compileall для исправления редких сбоев, когда случайно сгенерированный временный путь совпадал с регулярным выражением.2502- bpo-11958: Исправлены FTP-тесты для IPv6: привязка к ::1 вместо «localhost». Патч написан Charles-Francois Natali.2503- bpo-8407: Исправлены тесты test\_io, использующие потоки и будильник: используется pthread\_sigmask(), чтобы гарантировать получение сигнала SIGALRM главным потоком. (См. также: bpo-11859)2504- bpo-11811: Выделено определение поддержки IPv6 на текущем хосте и сделано доступным как `test.support.IPV6_ENABLED`. Патч от Charles- François Natali.2505- bpo-10914: Добавлен минимальный тест встраивания в test\_capi.2506- bpo-11223: Пропускать test\_lock\_acquire\_interruption() и test\_rlock\_acquire\_interruption() из test\_threadsignals, если блокировка потока реализована через мьютекс POSIX и условную переменную POSIX. Условная переменная POSIX не может быть прервана сигналом (например, в Linux системный вызов futex перезапускается).2507- bpo-11790: Исправлены периодические сбои в test\_multiprocessing.WithProcessesTestCondition.2508- Исправлена возможная ошибка «file already exists» при параллельном запуске тестов.2509- bpo-11719: Исправлено сообщение о неожиданном пропуске test\_msilib на платформах, отличных от Windows. Патч от Nadeem Vawda.2510- bpo-11727: Добавлена опция --timeout в regrtest: если тест выполняется дольше TIMEOUT секунд, выводит трассировку всех потоков и завершает работу.2511- bpo-11653: исправлена совместная работа -W и -j в regrtest.2512- Набор тестов для email теперь находится в пакете Lib/test/test\_email. Код тестового окружения также был модернизирован для поддержки новых возможностей unittest.2513- regrtest теперь обнаруживает как тестовые пакеты, так и тестовые модули.2514- bpo-11577: улучшено тестовое покрытие binhex.py. Патч от Arkady Koplyarov.2515- Добавлен новый test\_crashers для проверки скриптов в каталоге Lib/test/crashers и подтверждения того, что они завершаются ожидаемым сбоем.2516- bpo-11578: добавлен тест для модуля timeit. Патч от Michael Henry.2517- bpo-11503: улучшено тестовое покрытие posixpath.py. Патч от Evan Dandrea.2518- bpo-11505: улучшает тестовое покрытие string.py, повышает детализацию тестов string.Formatter. Первоначальный патч от Alicia Arlen.2519- bpo-11548: Улучшено тестовое покрытие модуля shutil. Патч от Evan Dandrea.2520- bpo-11554: Повторно активирован test\_email\_codecs.2521- bpo-11505: Улучшено тестовое покрытие string.py. Патч от Alicia Arlen.2522- bpo-11490: test\_subprocess.test\_leaking\_fds\_on\_error больше не даёт ложноположительного результата, если последний каталог в пути недоступен.2523- bpo-11223: Исправлено поведение test\_threadsignals: теперь он завершается ошибкой, а не зависает, при использовании реализации блокировок без семафоров в POSIX.2524- bpo-10911: Добавлены тесты на CGI с не-ASCII символами. Патч написан Pierre Quentel.2525- bpo-9931: Исправлены зависания в GUI-тестах в Windows при определённых условиях. Патч от Hirokazu Yamamoto.2526- bpo-10512: Корректное закрытие сокетов в test.test\_cgi.2527- bpo-10992: Обеспечено прохождение тестов под coverage.2528- bpo-10826: Предотвращён спорадический сбой test\_subprocess на Solaris из-за файлов open door.2529- bpo-10990: Предотвращено затирание установленной трассировочной функции тестами.25302531### C API25322533- bpo-13452: PyUnicode\_EncodeDecimal() больше не поддерживает обработчики ошибок, отличные от “strict”. Вызывающий код не мог вычислить размер выходного буфера: он зависит от обработчика ошибок.2534- bpo-13560: Добавлены функции PyUnicode\_DecodeLocale(), PyUnicode\_DecodeLocaleAndSize() и PyUnicode\_EncodeLocale() в C API для декодирования/кодирования из/в текущую кодировку локали.2535- bpo-10831: PyUnicode\_FromFormat() поддерживает форматы %li, %lli и %zi.2536- bpo-11246: Исправлено PyUnicode\_FromFormat(“%V”): теперь байтовая строка декодируется из UTF-8 (с обработчиком ошибок replace) вместо ISO-8859-1 (в строгом режиме). Патч написан Ray Allen.2537- bpo-10830: Исправлено PyUnicode\_FromFormatV(“%c”) для символов вне BMP в узкой сборке.2538- Добавлены PyObject\_GenericGetDict и PyObject\_GeneriSetDict. Это универсальные реализации геттера и сеттера дескриптора `__dict__` для C-типов.2539- bpo-13727: Добавлены 3 макроса для доступа к членам PyDateTime\_Delta: PyDateTime\_DELTA\_GET\_DAYS, PyDateTime\_DELTA\_GET\_SECONDS, PyDateTime\_DELTA\_GET\_MICROSECONDS.2540- bpo-10542: Добавлены 4 макроса для работы с суррогатами: Py\_UNICODE\_IS\_SURROGATE, Py\_UNICODE\_IS\_HIGH\_SURROGATE, Py\_UNICODE\_IS\_LOW\_SURROGATE, Py\_UNICODE\_JOIN\_SURROGATES.2541- bpo-12724: Добавлен макрос Py\_RETURN\_NOTIMPLEMENTED для возврата NotImplemented.2542- PY\_PATCHLEVEL\_REVISION был удалён, поскольку с Mercurial он не имеет смысла.2543- bpo-12173: Первый аргумент PyImport\_ImportModuleLevel теперь имеет тип `const char *` вместо `char *`.2544- bpo-12380: PyArg\_ParseTuple теперь принимает bytearray для формата ‘c’.25452546### Документация25472548- bpo-13989: Документировано, что GzipFile не поддерживает текстовый режим, и добавлено более понятное сообщение об ошибке при открытии с неверной строкой режима.2549- bpo-13921: Удалена документация и произведена очистка sqlite3.OptimizedUnicode, который устарел в Python 3.x. Теперь это псевдоним для str для обратной совместимости.2550- bpo-12102: Документировано, что буферизованные файлы должны быть сброшены перед использованием с mmap. Патч от Steffen Daode Nurpmeso.2551- bpo-8982: Улучшена документация для объекта Namespace модуля argparse.2552- bpo-9343: Документировано, что родительские парсеры argparse должны быть настроены до своих дочерних.2553- bpo-13498: Уточнена документация аргумента exist\_ok функции os.makedirs(). Выполнено с большой помощью носителя языка R. David Murray.2554- bpo-13491: Исправлено множество ошибок в документации sqlite3. Первоначальный патч для #13491 от Johannes Vogel. (См. также: bpo-13995)2555- bpo-13402: Документировано, что sys.executable является абсолютным путём.2556- bpo-13883: PYTHONCASEOK также работает на OS X.2557- bpo-9021: Добавлено введение в документацию модуля copy.2558- bpo-6005: Примеры в документации библиотеки socket используют sendall вместо метода send, где это уместно.2559- bpo-12798: Обновлена документация mimetypes.2560- bpo-12949: Документирован аргумент kwonlyargcount для C API функции PyCode\_New.2561- bpo-13513: Исправлена документация io.IOBase: ссылка теперь ведёт на метод io.IOBase.readline, а не на модуль readline.2562- bpo-13237: Документация по подпроцессу реорганизована с акцентом на удобные функции и наиболее часто используемые аргументы Popen.2563- bpo-13141: Продемонстрирован рекомендуемый стиль для примеров socketserver.2564- bpo-11818: Исправлены примеры tempfile для Python 3.25652566**(Информацию о более старых версиях смотрите в файле HISTORY.)**2567