Python 3.5¶
Ниже приведён список завершённых/принятых PEP для Python 3.5, сгруппированных по их влиянию на MicroPython.
Расширения синтаксиса |
Статус |
|
Дополнительные обобщения распаковки |
Частично |
|
Новый оператор умножения матриц |
Полностью |
|
Сопрограммы с синтаксисом |
Полностью |
|
Расширения и изменения среды выполнения |
||
Форматирование через % для двоичных строк |
Полностью |
|
Повторение системных вызовов, завершившихся с ошибкой |
Полностью |
|
Изменение обработки |
Полностью |
|
Изменения стандартной библиотеки |
||
|
||
|
Полностью |
|
Прочие изменения |
||
Улучшенная поддержка zip-приложений Python |
||
Информирование Python Launcher о виртуальных окружениях |
Не относится |
|
Аннотации типов (только рекомендательные) |
Полностью [1] |
|
Устранение файлов PYO |
Не относится |
|
Переработка загрузки модулей расширений |
||
Прочие изменения языка:
Добавлены обработчики ошибок namereplace. Обработчики ошибок backslashreplace теперь работают при декодировании и трансляции. |
|
Строки документации свойств теперь доступны для записи. Это особенно полезно для строк документации collections.namedtuple() |
|
Теперь поддерживается циклический импорт с относительными импортами. |
Новые модули:
Изменения во встроенных модулях:
Класс OrderedDict теперь реализован на C, что делает его в 4–100 раз быстрее. |
|
Представления OrderedDict.items(), OrderedDict.keys(), OrderedDict.values() теперь поддерживают итерацию reversed(). |
|
The deque class now defines index(), insert(), and copy(), and supports the + and * operators. |
|
Строки документации, создаваемые namedtuple(), теперь можно обновлять. |
|
Класс UserString теперь реализует методы __getnewargs__(), __rmod__(), casefold(), format_map(), isprintable() и maketrans(), соответствующие соответствующим методам str. |
|
Сравнение элементов в merge() теперь можно настраивать, передавая функцию ключа в новом необязательном именованном аргументе key, а новый необязательный именованный аргумент reverse можно использовать для обращения сравнения элементов |
|
Новый метод BufferedIOBase.readinto1(), который использует не более одного вызова методов RawIOBase.read() или RawIOBase.readinto() нижележащего необработанного потока |
|
Декодер JSON теперь возбуждает JSONDecodeError вместо ValueError, чтобы предоставить более точную контекстную информацию об ошибке. |
|
В модуль math добавлены две новые константы: inf и nan. |
Полностью |
Новая функция isclose() предоставляет способ проверки приблизительного равенства. |
|
Добавлена новая функция gcd(). Функция fractions.gcd() теперь объявлена устаревшей. |
|
Добавлена новая функция scandir(), возвращающая итератор объектов DirEntry. |
|
Функция urandom() теперь использует системный вызов getrandom() в Linux 3.17 или новее и getentropy() в OpenBSD 5.6 и новее, что устраняет необходимость использования /dev/urandom и позволяет избежать сбоев из-за потенциального исчерпания файловых дескрипторов. |
|
Новые функции get_blocking() и set_blocking() позволяют получать и устанавливать блокирующий режим файлового дескриптора (O_NONBLOCK). |
|
Появилась новая функция os.path.commonpath(), возвращающая самый длинный общий подпуть для каждого переданного имени пути |
|
Ссылки и условные ссылки на группы фиксированной длины теперь разрешены в утверждениях обратного просмотра |
|
Количество захватывающих групп в регулярных выражениях больше не ограничено 100. |
|
Функции sub() и subn() теперь заменяют несовпавшие группы пустыми строками вместо возбуждения исключения. |
|
Исключения re.error получили новые атрибуты msg, pattern, pos, lineno и colno, которые предоставляют более точную контекстную информацию об ошибке |
|
Функции с тайм-аутами теперь используют монотонные часы вместо системных часов. |
|
Новый метод socket.sendfile() позволяет отправлять файл через сокет, используя высокопроизводительную функцию os.sendfile() в UNIX, в результате чего загрузка происходит в 2–3 раза быстрее, чем при использовании обычного socket.send() |
|
Метод socket.sendall() больше не сбрасывает тайм-аут сокета каждый раз при получении или отправке байтов. Тайм-аут сокета теперь является максимальной общей длительностью отправки всех данных. |
|
Аргумент backlog метода socket.listen() теперь необязателен. По умолчанию он устанавливается в SOMAXCONN или 128, в зависимости от того, что меньше. |
Полностью |
Поддержка Memory BIO |
|
Поддержка согласования протокола прикладного уровня (ALPN) |
|
Появился новый метод SSLSocket.version() для запроса фактически используемой версии протокола. |
|
Класс SSLSocket теперь реализует метод SSLSocket.sendfile(). |
|
Метод SSLSocket.send() теперь возбуждает исключение ssl.SSLWantReadError или ssl.SSLWantWriteError на неблокирующем сокете, если операция привела бы к блокировке. Ранее он возвращал 0. |
|
Функция cert_time_to_seconds() теперь интерпретирует входное время как UTC, а не как локальное время, согласно RFC 5280. Кроме того, возвращаемое значение всегда является int. |
|
Новые методы SSLObject.shared_ciphers() и SSLSocket.shared_ciphers() возвращают список шифров, отправленных клиентом во время рукопожатия. |
|
Методы SSLSocket.do_handshake(), SSLSocket.read(), SSLSocket.shutdown() и SSLSocket.write() класса SSLSocket больше не сбрасывают тайм-аут сокета каждый раз при получении или отправке байтов. |
|
Функция match_hostname() теперь поддерживает сопоставление IP-адресов. |
|
Новая функция set_coroutine_wrapper() позволяет установить глобальный перехватчик, который будет вызываться всякий раз, когда объект сопрограммы создаётся функцией async def. Соответствующая функция get_coroutine_wrapper() может использоваться для получения текущей установленной обёртки. |
|
Новую функцию is_finalizing() можно использовать для проверки того, завершает ли работу интерпретатор Python. |
|
Функция monotonic() теперь всегда доступна |
|
Примечания