LINUX.ORG.RU

Python 3.13

 , ,


0

4

После года разработки вышла новая стабильная версия интерпретируемого языка программирования Python 3.13. Релиз включает изменения в собственно языке и его стандартной библиотеке. К важнейшим изменениям относятся использование нового интерактивного интерпретатора по умолчанию, экспериментальная поддержка работы в режиме free-threaded (т. е. с отключением global interpreter lock) (PEP 703), и JIT-компилятор (PEP 744).

С этого релиза осуществлён переход на новый цикл релизов Python (Annual Release Cycle for Python, PEP 602), в связи со стремлением расширить период «полной поддержки» новых выпусков:

  • Python 3.9–3.12 имеют полтора года полной поддержки, за ними следует три с половиной года исправления брешей в безопасности.
  • Python 3.13 и более поздние релизы будут иметь два года полной поддержки и три года исправлений уязвимостей.

Продолжается работа по усовершенствованию сообщений об ошибках. Теперь traceback’и по умолчанию подсвечиваются цветом. Встроенная функция locals() теперь имеет определённую семантику для изменения возвращаемого меппинга (PEP 667), а параметры типов (typing.TypeVar, typing.ParamSpec, typing.TypeVarTuple) поддерживают значения по умолчанию (PEP 696).

Изменения стандартной библиотеки включают удаление устаревших API и модулей (aifc, audioop, cgi, cgitb, chunk, crypt, imghdr, mailcap, msilib, nis, nntplib, ossaudiodev, pipes, sndhdr, spwd, sunau, telnetlib, uu и xdrlib), а также привычные улучшения в области дружелюбия к пользователю и корректности. Несколько модулей исключены из поставки в связи с объявлением их устаревшими в Python 3.11 (PEP 594), в том числе инструмент и библиотека 2to3.

Из улучшений безопасности стоит отметить, что ssl.create_default_context() устанавливает флагами по умолчанию ssl.VERIFY_X509_PARTIAL_CHAIN и ssl.VERIFY_X509_STRICT.

Добавлена поддержка платформ: Apple iOS и Android теперь официально поддерживаемые платформы (tier 3) (PEP 730, 738). wasm32-wasi поддерживается на уровне tier 2, прекращена официальная поддержка wasm32-emscripten.

Для более основательного ознакомления с нововведениями релиза, обращайтесь к официальной документации (по библиотеке, по языку). Руководствуйтесь статьей «Переход на Python 3.13» для обновления своих проектов на новую версию языка. Также см. changelog.

>>> Подробности



Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 7)

параметры типов (typing.TypeVar, typing.ParamSpec, typing.TypeVarTuple) поддерживают значения по умолчанию (PEP 696).

И как мы раньше без такого жили 🤣

Rodegast ★★★★★
()
Последнее исправление: Rodegast (всего исправлений: 1)

Смешанные чувства. С одной стороны хорошо что питон развивается, и самое интересное что они выпилили GIL. С другой стороны непрерывный слом обратной совместимости похоже является трендом, это какой то трындец. Мало того что при переходе от py2 к py3 сломали обратную совместимость не решив ни одной родовой травмы языка, так теперь кучу модулей повыкидывали (я их не юзал, но кто тоже наверное юзал!), да еще и 2to3 убрали…

Аффторы видимо думают что все сообщество только и мечтает о непрерывном переписывании питоньего кода? Нет, не мечтает.

AntonI ★★★★★
()
Ответ на: комментарий от AntonI

С одной стороны хорошо что питон развивается, и самое интересное что они выпилили GIL.

Не выпилили они его ещё, он через параметр отключается.

С другой стороны непрерывный слом обратной совместимости

Ну это же python...

Rodegast ★★★★★
()

Жаль JIT пока слабо перформанса отсыпал :(

ac130kz ★★
()
Ответ на: комментарий от Rodegast

Использую Python в своей работе. Отличный инструмент для автоматизации и прототипирования. Всегда радуюсь, когда любимые проекты развиваются, тем более открытые!

nuxster ★★
()
Ответ на: комментарий от nuxster

Всегда радуюсь, когда любимые проекты развиваются, тем более открытые!

Не всегда выход новой версии означает развитие ;)

Rodegast ★★★★★
()
Ответ на: комментарий от AntonI

Ломание обратной совместимости - тренд у мамкиных смузихлёбов (любителей на синтаксический сахар). Странно для языков программирования. но систематично в песледнее время для SDK и фрейворков.

TechnoMag ★★
()
Последнее исправление: TechnoMag (всего исправлений: 1)
Ответ на: комментарий от Rodegast

Как правило подразумевает ) И хочется в это верить)

nuxster ★★
()
Ответ на: комментарий от I-Love-Microsoft

ХЗ. Зависит от того как они его выпилили;-)

Вообще конечно баловство все это, python банально не предназначен для написания быстро работающих частей кода.

AntonI ★★★★★
()

python 2 рулит. в чьей нездоровой голове str на байты стало добавлять спереди b' в конечную строку

>>> a = 'abcde'.encode('latin1')
>>> a
b'abcde'
>>> print (str(a))
b'abcde'

тот явно сильно-сильно болел головой

в python2 это, естественно, просто abcde

alt-tab-let ★★
()
Ответ на: комментарий от I-Love-Microsoft

Как это сказалось на многопоточных приложениях?

Нужны бенчмарки, но однопоточные совершенно точно станут медленнее:

Добавлен экспериментальный режим сборки CPython без глобальной блокировки интерпретатора (GIL, Global Interpreter Lock), который включается при помощи опции "--without-gil" и позволяет избавиться от проблемы с распараллеливанием операций на многоядерных системах, вызванной тем, что глобальная блокировка не допускает параллельное обращение к разделяемым объектам из разных потоков. Отключение GIL приводит к дополнительным накладным расходам, вызванным изменениями в сборщике мусора, системе управления памятью и примитивах для организации блокировок. Например, из-за использования подсчёта ссылок для изоляции потоков наблюдается снижение производительности однопоточных сценариев примерно на 10%. При этом подобные накладные расходы могут компенсироваться распараллеливанием операций.

OSBuster
()
Ответ на: комментарий от alt-tab-let

добавлять спереди b' в конечную строку

Так это не текстовая строка. b' указывает на то, что это последовательность байтов.

В Python 3 текстовые строки могут быть только в UTF-8. А текстовых строк ни в latin1, ни в KOI8-R в Python 3 не бывает.

saahriktu ★★★★★
()
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

нахрена при обратной конверсии из байт в строку добавлять это b'??? с какого бодуна это написано? скажите гвиду, что наркотики зло.

alt-tab-let ★★
()
Ответ на: комментарий от saahriktu

я знаю. в любом случае, там куча дичи, и код с python2, где часто используются байты, типа sha-хешей или base64, тупо непортируем.

да даже с нуля, там, где я мог сделать на python2 за 10 минут и 20 строк кода, я в python3 про...бался полдня, плюнул, понял что надо свою обёртку над base64 делать, и в итоге забил на идею, потому что постоянное приведение, выведение и сведение типов просто надоело. в python2 в этой части всё было идеально и ровно так, как мне нужно.

alt-tab-let ★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.