LINUX.ORG.RU

Python 3.13

 , ,


1

5

После года разработки вышла новая стабильная версия интерпретируемого языка программирования 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)

Ответ на: комментарий от ugoday

То есть ты потверждаешь мою догадку, что python в HPC играет роль технички. И с таким же успехом ее мог бы исполнять Lua например.

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

Да, именно так. С поправкой, что на новый язык придётся переучивать толпы народа, которым это совершенно не нужно.

P.S. Т.е. если кто-то переход py2→py3 не осилил за 15 лет, то на lua он будет тыщу лет переезжать и то не успеет.

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

роль клея шелла которые более адекватен обычным stem чем идеосинкразийный sh и прочие (.*)sh в которых умолчально всё есть текст

ага python lua в 90ых одно и тоже абстрагируясь от синтаксиса

dict == table

а дальше сеть контактов из корня в cwi отличается от сети контактов из корня в универе католичиеском крупнейшего португальскоязычного гос-ва

и то и то встраиваемый и встраивающий клей

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

1. -ых не -ого

2. пилящим пока пилится время не тормоз (CINT же жив?! и дышит!)

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

Не совсем так. Во первых py2 все сложнее ставить, где то его из сырцов вообще приходится собирать. Во вторых его уже не все знают - разница не велика, но все же…

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

Ради чего обновляться с Python2 на Python3?

  1. Ради использования новых фич. Например, f-строки бывают очень удобны.
  2. Ради использования новых версий библиотек (или новых библиотек, появившихся уже после 2010 года)
annulen ★★★★★
()
Ответ на: комментарий от AntonI

где то его из сырцов вообще приходится собирать

Собирается он легко. Только с openssl-модулем могут возникнуть проблемы.

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

Легко. Но с библиотеками (если коннект наружу огорожен) уже сложнее. И главное с каждым разом мне по этому поводу говорят все больше фи.

Да и коллеги хотят новых фич, это тоже есть.

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

И главное с каждым разом мне по этому поводу говорят все больше фи.

Мне не понятна механика ваших социальных отношений в фирме.

  • Есть проект, он работает на Python 2.
  • Коллеги хотят чтоб проект был на Python 3.
  • Перенести проект с одного языка на другой, это длительный, кропотливый процесс. Даже если подключить AI, то требуется все проверить.

На каком основании вам кто-то говорит фи?

Выделяется бюджет, выделяется время, выделяются работники и выполняется перезд с одного языка на другой. Это сложный и дорогостоящий процесс. Тут же дело не в желании, а в наличии возможностей оплачивать труд разработчиков которые будут совершать миграцию.

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

Если что, я могу помочь с миграцией. И, возможно, с улучшением покрытия тестами, чтобы убедиться, что нигде ничего не поломалось. В качестве оплаты — соавторство статьи в хорошем англоязычном журнале)

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

Собирается он легко. Только с openssl-модулем могут возникнуть проблемы.

да нафиг его собирать, если анаконда второй питон всё еще поддерживает и прекращать поддержку не собирается?

CONDA_SUBDIR=osx-64 conda create --name test_py2 python=2.7
FishHook
()
Ответ на: комментарий от FishHook

Ну это смотря насколько старая у них ОС:

Installations have been tested on Red Hat Enterprise Linux/CentOS 6.7, 7.3, 7.4, and 7.5, and Ubuntu 12.04+.

На совсем старых дистрах, которые встречаются на кластерах, есть 2.х из коробки, но там может идти Python 2.6 или даже старее.

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

Мне не понятна механика ваших социальных отношений в фирме.

Это научный коллектив.

Выделяется бюджет, выделяется время, выделяются работники

Все не так, увы. Или ура…

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

Мой ник собака яндекс ру

Ещё можно писать юзеру annulen на irc.libera.chat, но отвечу только вечером

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

Да при чем здесь ОС, есть такой проект Anaconda - это умные люди не ходили по форумам и не ныли, а взяли и запилили свой менеджер питонов, который позволяет сколько угодно версий питона держать на одной машине, которые устанавливаются из репозитория анаконды и никак системному питону не мешают, а так же и из коробки предоставляет туеву хучу уже собраных бинарей для всяких научных нужд. И что характерно есть целых несколько опенсорсных форков, которые этот репозиторий используют.

FishHook
()
Ответ на: комментарий от annulen
╰─$ conda activate test_py2
(test_py2) ~/code/scripts
╰─$ conda install pandas
Channels:
 - conda-forge
 - defaults
Platform: osx-64
Collecting package metadata (repodata.json): done
Solving environment: done


==> WARNING: A newer version of conda exists. <==
    current version: 24.3.0
    latest version: 24.9.1

Please update conda by running

    $ conda update -n base -c conda-forge conda



## Package Plan ##

  environment location: ~/opt/anaconda3/envs/test_py2

  added / updated specs:
    - pandas


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    libblas-3.9.0              |22_osx64_openblas          14 KB  conda-forge
    libcblas-3.9.0             |22_osx64_openblas          14 KB  conda-forge
    libcxx-19.1.1              |       hf95d169_0         516 KB  conda-forge
    libgfortran-5.0.0          |13_2_0_h97931a8_3         108 KB  conda-forge
    libgfortran5-13.2.0        |       h2873a65_3         1.5 MB  conda-forge
    liblapack-3.9.0            |22_osx64_openblas          14 KB  conda-forge
    libopenblas-0.3.27         |openmp_h8869122_1         5.8 MB  conda-forge
    llvm-openmp-19.1.1         |       h545e0da_0         298 KB  conda-forge
    numpy-1.16.5               |   py27hde6bac1_0         4.2 MB  conda-forge
    pandas-0.24.2              |   py27h86efe34_0        10.0 MB  conda-forge
    python-dateutil-2.8.1      |             py_0         220 KB  conda-forge
    pytz-2020.1                |     pyh9f0ad1d_0         227 KB  conda-forge
    six-1.16.0                 |     pyh6c4a22f_0          14 KB  conda-forge
    ------------------------------------------------------------
                                           Total:        22.8 MB

The following NEW packages will be INSTALLED:

  libblas            conda-forge/osx-64::libblas-3.9.0-22_osx64_openblas
  libcblas           conda-forge/osx-64::libcblas-3.9.0-22_osx64_openblas
  libcxx             conda-forge/osx-64::libcxx-19.1.1-hf95d169_0
  libgfortran        conda-forge/osx-64::libgfortran-5.0.0-13_2_0_h97931a8_3
  libgfortran5       conda-forge/osx-64::libgfortran5-13.2.0-h2873a65_3
  liblapack          conda-forge/osx-64::liblapack-3.9.0-22_osx64_openblas
  libopenblas        conda-forge/osx-64::libopenblas-0.3.27-openmp_h8869122_1
  llvm-openmp        conda-forge/osx-64::llvm-openmp-19.1.1-h545e0da_0
  numpy              conda-forge/osx-64::numpy-1.16.5-py27hde6bac1_0
  pandas             conda-forge/osx-64::pandas-0.24.2-py27h86efe34_0
  python-dateutil    conda-forge/noarch::python-dateutil-2.8.1-py_0
  pytz               conda-forge/noarch::pytz-2020.1-pyh9f0ad1d_0
  six                conda-forge/noarch::six-1.16.0-pyh6c4a22f_0


Proceed ([y]/n)? y


Downloading and Extracting Packages:

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
(test_py2) ~/code/scripts
╰─$ pip list
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Package         Version
--------------- -------------------
certifi         2020.6.20
numpy           1.16.5
pandas          0.24.2
pip             19.3.1
python-dateutil 2.8.1
pytz            2020.1
setuptools      44.0.0.post20200106
six             1.16.0
wheel           0.37.1

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

есть такой проект Anaconda - это умные люди не ходили по форумам и не ныли, а взяли и запилили свой менеджер питонов, который позволяет сколько угодно версий питона держать на одной машине, которые устанавливаются из репозитория анаконды и никак системному питону не мешают

Мне одно интересно, зачем разработчикам вообще связываться с Питоном для новых проектов в связи вот с этими «бесконечными версиями Питона»?

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

А в чем проблема то? В твоём дистре половина утилит на нем написана, ты как-то страдаешь по этому поводу? Для разработчиков вообще никакой абсолютно проблемы нет, наоборот. У тебя есть зависимости, под каждый проект ты можешь создать свое окружение и спокойненько в нем работать не мешая коду в соседней папке. Совместимость поломали один раз пятнадцать лет назад, и ни для кого это не стало сюрпризом. Меньше слушай дураков.

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

есть такой проект Anaconda - это умные люди не ходили по форумам и не ныли, а взяли и запилили свой менеджер питонов

Анаконду пиарили на курсах по датасасаенсу в 2017 и до хз какого года. Это для виндузятников хрень, и то для специфической публики с джупитер нотебуками (я знаю, что он сейчас лаб)

rtxtxtrx
()
Ответ на: комментарий от mister_VA

в связи вот с этими «бесконечными версиями Питона»?

В питоне ломающие изменения редкость. Например, сделали async ключевым словом и переменные с таким именем начали сыпать ошибками и из последнего - перенесли в другое место многое, например, раньше Sequence импортировался из collections теперь он в typing. Те тут какие-то невротики отписались — караул все сломали, но «сломали» еще в 2008 с первым релизом 3 питона (не альфа или бета, альфа была еще в 2006), они все это время сидели ковыряли говно мамонта, поэтому их, наверное, нужно пожалеть. Но ты не можешь выкупить почему другим с этого весело так как не в теме, да и вообще как все особенные «весь тред не читал», но «осуждаю»

rtxtxtrx
()
Ответ на: комментарий от lbvf50txt

Выделяется бюджет, выделяется время, выделяются работники и выполняется перезд с одного языка на другой. Это сложный и дорогостоящий процесс

Это процесс 3 дней максимум. Для этого нужно нажать Ctrl + Shift + H в VS Code и автозаменой код причесать, а потом то что красненьким подчеркивается уже вручную поправить, но тру-программизды электрон хейтят, а поэтому даже простые вещи могут делать месяцами, те чудовищная непродуктивность еще продиктована банальным нежеланием что-то делать как все (за что ты тут, кстати, и топишь).

rtxtxtrx
()

Личный топ шизофрении в этом релизе - это удаление crypt. Ок, ваше дело, можете удалять, но документация предлагает использовать passlib. Который зависит от crypt и, более того, умер. Чтиво, кому интересно https://foss.heptapod.net/python-libs/passlib/-/issues/187, есть ещё несколько разных тредов

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

Потому что альтернативы нет. Pandas, Numpy, Tensorflow, Pytorch, Pycuda, Sklearn, Seaborn - без них приличный человек который занимается чуть большим чем сует указатель куда не надо, как без рук.

Obezyan
()
Ответ на: комментарий от rtxtxtrx

Это для виндузятников хрень, и то для специфической публики с джупитер нотебуками

Вы вводите в заблуждение, пользуюсь анакондой лет 5-6 в линуксе. Юпитер ноутбуками при этом практически не пользуюсь т.к. мне проще сразу код писать редактором в файле, а не блокнотом в браузере.

Вообще, те кто кричат о том что есть какая-то проблема с одновременным использованием питона от v2.7 до v3.12 (3.13 еще не ставил) либо чертовы луддиты застрявшие в прошлом десятилетии когда это проблема еще была и с тех пор не выучившие ничего нового, либо откровенные балаболы с претензией на ученость.

Obezyan
()
Ответ на: комментарий от rtxtxtrx

Перенести проект с одного языка на другой, это длительный, кропотливый процесс. Даже если подключить AI, то требуется все проверить.

Это процесс 3 дней максимум.

При заработке в 150тр. в месяц, три дня работы разработчика это между 20 и 30тр.

банальным нежеланием что-то делать как все (за что ты тут, кстати, и топишь).

Вы неверно трактуете мои посты.

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

Ну а затраты других разработчиков, изначально привыкших к третьему питону, на освоение синтаксиса второго питона и гугление какого-то старья, затерявшегося за первой страницей поисковой выдачи ничего не стоит? Не говоря уже о поиск специалистов по говну мамонта. Сейчас же дефективные менегеры ищут человека под выполнение конкретной функции, скипая всех тех кто здесь и сейчас не может ее выполнить. Это все стоит денег, но у А. некоммерческая организация и он вообще не сварщик. Его «ценят» за первичную специализацию, эта для него вторичная, поэтому он может страдать ерундой, делая все через задницу, скорее всего он просто бесит уже молодых коллег, которые этот 2 питон никогда не видели. На третий питон все переходить начали уже в начале 10-х, а к 14 про 2 забыли. И через 10 лет его вспоминать, вот лично мне не всралось. Из чего-то крупного на 2 питоне до недавнего времени были sentry (2018!!!) и sqlmap (2020!!!!!!). В общем вся твоя аргументация контрится очень банально.

rtxtxtrx
()
Ответ на: комментарий от Obezyan

пользуюсь анакондой лет 5-6 в линуксе

2024 - 6 = 2018 -> жертва курсов. Эту анаконду я еще в 2012 запускал, когда на Винде программировал, а потом ее в линуксы перетащили какие-то аметисты, я даже удивился на кой она тут нужна когда есть pyenv (появился в 2013) и встроенные виртуальные окружения. Она еще вместо встроенного venv (вышел в 2012 как и та срань) использовала сторонний virtualenv для совместимости с ненужнопитоном, и для меня дико видеть, что кто-то этой дрисней пользуется сейчас, так она родилась мертворожденной. Это чисто виндовая весчь, когда там не было ни вингетов, ни wsl. Вот тогда, да она была полезна

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

ээээ. анасонда абстрагирует для нубов сборку форда-Т из радео деталей по почте в готовый к игре после включения стаф

кста нотебуки(jo jo lab) это по факту взлетевшее литературное программирование Кнутия в малом

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

Товарищ, все уже поняли, что ты линуксее Торвальдса. Теперь, пожалуйста, перестань бредить.

FishHook
()
Ответ на: комментарий от rtxtxtrx

Это процесс 3 дней максимум.

То есть у Вас не только с перегрузкой операций проблемы а вообще с пониманием написанного… все таки не зря Вас так рекрутеры пугают.

Вот причесали код, синтаксически все ок, это дело не 3х дней а 30ти минут. Но куда то пролезли bytes которых раньше не было, или где то деление дало не int а float, а где то из py2 раньше приходил list а теперь генератор - и за счет динамической типизации эти вещи отлавливаются годами.

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

Сейчас же дефективные менегеры ищут человека под выполнение конкретной функции, скипая всех тех кто здесь и сейчас не может ее выполнить.

И по странному стечению обстоятельств выясняется что Вы не можете выполнить ни одной из необходимых конкретных функций? Так может дело не в менеджерах… ?

Его «ценят» за первичную специализацию, эта для него вторичная, поэтому он может страдать ерундой, делая все через задницу, скорее всего он просто бесит уже молодых коллег, которые этот 2 питон никогда не видели.

Когда Вы начинаете ванговать в состоянии баттхерта Вы особенно прелестны. Я конечно сварщик не настоящий, когда то считал себя настоящим, но давно перестал - скуууучно… Но боюсь что с Вашими когнитивными особенностями я и как программист буду значительно лучше чем Вы, хотя бы в силу того что могу читать и понимать написанное;-)

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

Осталось только скрипты с питона второго на третий переписать… Просто взять и переписать, а не строчить сообщения на форуме, рассказывая какие мы когнитивно развитые

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

Ну вот Вы научились использовать IDE и дебаггер запускать - и как, это помогает Вам читать и понимать написанное в ТЗ или в сообщения от тимлида? Или может быть это как то помогает Вам общаться с рекрутерами? Раскройте секрет успеха!

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

Просто взять и переписать, а не строчить сообщения на форуме

Видите ли, мне общение на форуме не мешают переписывать скрипты, напротив - я вот кое что сложное пока в этой ветке общался переписал и отладил, и мне тут очень помогли.

Вопрос скорее в том что можете Вы в плане скриптов, если Вы даже на форуме внятно общаться не в состоянии…

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

Общаться с рекрутерами?! Интересная мысль…

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

О, пошла апелляция к авторитету «да я, да у меня». Отклонено, обтекайте. Написали фигню про то что этот инструмент заточен под винду, вас поправили. Вместо того чтобы принять новое знание тк ваши знания о предмете безнадежно устарели вы начали пытаться принизить того кто указал вам на ошибку.

Я начал пользоваться анакондой когда понадобилось несколько разных версий питона в системе, а именно когда начал более активно заниматься нейронными сетями. Моя повседневная работа с анакондой заключается буквально в 3-5 консольных командах которые вполне можно освоить и без курсов.

Да и вообще, причем тут курсы если честно не понял, у вас какая-то травма после курсов? Покажите на кукле где вас трогал препод.

Obezyan
()
Ответ на: комментарий от rtxtxtrx

вопросом можно ли set() использовать как ключ словаря

Конечно можно https://www.online-python.com/opwdZ1UTsr

Есть вопросы к иммутабельности, но вы сначала иммутабельные типы заведите кроме строк и кортежей

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

интернирования

это даже мне - человеку который на С программировал самую малость, а про С++ только слышал - и то понятно

А на чем писал? На жаве? А то про интерны не каждый сеньор помнит

UPD почитал дальше, ты на скале не писал случаем, работу не ищешь? У меня есть вакансия открытая, я бы рекомендовал

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

В питоне ломающие изменения редкость.

Тем временем буквально в этой новости:

удаление устаревших API и модулей (aifc, audioop, cgi, cgitb, chunk, crypt, imghdr, mailcap, msilib, nis, nntplib, ossaudiodev, pipes, sndhdr, spwd, sunau, telnetlib, uu и xdrlib)

akho
()
Ответ на: комментарий от gruy

Ну, т.е., твой подход «хуятяп ляп и в продакшн». И тебе не нравится, что язык заставляет четко указывать, что нужно сделать?

да, не нравится. и у меня нет продакшна. python2 был куда менее строгим. это не php или js с его безумием 1 + '1' (это 11 или 2?). фишка python в том, что я его не учил. вообще. я просто думал «а можно ли сделать так», и оказалось, что можно.

http://ii.blcat.ru/lite/80xHSTimBDrPR0kELVlQ

несмотря на то, что код был написан «чтобы влазить в смску» и я вообще не помнил формат games.utf, я его восстановил за две минуты. потому что всё перед глазами. в языках типа java с .что-то().гдето().тама().ещё().двакилометра() я к концу строки забываю, с чего она начиналась. а python я легко читаю, даже такой краткий код.

python3 нормальный, но более строгий. меня не надо бить по рукам, я и сам знаю, какие данные, куда и зачем я гоняю. в python2 у меня было меньше кода, потому что было меньше проверок. и меньше неоднозначностей - str(чёто) в моей парадигме выдают чёто и никак иначе.

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

Клоуна поставил за хранение данных в магически конвертируемом формате. Никто так в здравом уме не делает, посмотрите на известные (как в слове популярные) приложения, за что вы и поплатились

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

Тем временем буквально в этой новости

Что ж ты остановился-то на самом интересном месте?
Поведай же товарищам: какие из этих модулей используются в твоих проектах?

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