Разработчики Python представили версию 3.7.0
Новости
Релиз добавил C API для TLS, новый формат файлов .рус, в которых кэшируется байткод, а также встроенную программную точку останова breakpoint().
5К открытий5К показов
Опубликована новая версия ЯП Python под номером 3.7.0. Обновление, которое провело в разработке полтора года, привнесло множество новых функций и исправлений существующих инструментов, а также общие улучшения производительности.
Подробнее о нововведениях в Python 3.7.0
Релиз добавил обновленный C API для локальной памяти потока (TLS), предоставляющий новый TSS (Thread Specific Storage) API вместо ранее использовавшегося TLS API. Новый API вводит тип Py_tss_t вместо int, что позволяет запускать CPython на платформах, не позволяющих безопасное транслирование TLS-ключей в int.
Обновление включило новый формат файлов .рус, в которых кэшируется байткод. Теперь для выявления изменений в коде в заголовочной секции файлов .pyc может сохраняться хеш от кэшированного кода, что избавляет от проблем при переименовании старых версий исходного файла.
В Python 3.7.0 стала доступной встроенная точка останова breakpoint() для программного вызова отладчика.
В набор инструментов добавлен новый модуль dataclass вместе с декоратором dataclass(), который предоставляет средства для определения классов данных, в которых применяются аннотации переменных класса с автоматической генерацией методов __repr__(), __eq__() и __hash__() для определения атрибутов. Кроме того, появилась поддержка модуля typing и generic-типов.
Также в новой версии появились несколько новых модулей, улучшающих работу с TLS и ресурсами внутри пакетов.
Обновления существующих компонентов
В модуле time реализована поддержка операций с наносекундами. Для их включения необходимо дописать _ns к существующим функциям.
Предупреждения DeprecationWarning теперь появляются только для кода в основном модуле и при выполнении тестов, а для всех импортированных модулей и библиотек скрыты по умолчанию.
Также исключено использование кодировки ASCII по умолчанию. Вместо этого добавлена опция -X utf8 и переменная окружения PYTHONUTF8 для принудительного использования кодировки UTF-8. Кроме того, в классах str, bytes и bytearray появился новый метод isascii() для проверки строки на наличие только ASCII-символов.
Подробнее со всеми изменениями и улучшениями можно ознакомиться в техническом документе релиза Python 3.7.0. Предварительная версия вышла 14 июня 2018 года.
5К открытий5К показов



