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(), що повертає найдовший спільний підшлях кожного переданого шляху. |
|
Посилання та умовні посилання на групи фіксованої довжини тепер дозволені в ретроспективних твердженнях lookbehind. |
|
Кількість груп захоплення у регулярних виразах більше не обмежена 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. Крім того, повертане значення завжди є цілим числом. |
|
Нові методи 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() тепер завжди доступна. |
|
Примітки