https://discuss.python.org/t/updating-pep-387-to-prefer-5-year-deprecations-instead-of-2-years/65166/35
Теперь для того чтобы удалить что-то, что deprecated - нужно ждать 5 лет.
Как мне кажется, худшее решение за последние годы
Теперь для того чтобы удалить что-то, что deprecated - нужно ждать 5 лет.
Как мне кажется, худшее решение за последние годы
Discussions on Python.org
Updating PEP 387 to prefer 5 year deprecations instead of 2 years
Perhaps there shouldn’t be constant breaking changes? Also unpaid contributors move on with their life. If something is fun (like a new feature) they might feel like doing it, but if it feels like work (setting up github runners to publish on pypi and risk…
Не могу не поздравить одного из самых молодых (вероятно, самого молодого?) контрибьюторов в CPython с победой на олимпиаде PROD - Илью Любавского. Крудописатели, берегитесь!
Forwarded from Находки в опенсорсе: Python (Никита Соболев)
Привет! Стартуем новый проект для любителей опенсорса: помогаем меинтейнерам и контрибьюторам найти друг друга.
Как оно работает?
- В данном канале меинтейнеры разных Python проектов (от CPython, mypy, Litestar до taskiq) могут в любой момент выложить простые задачки, чтобы люди могли принять участие в разработке их проекта
- Если вы хотите поработать над задачкой – напишите в самой задаче на гитхабе: "Can I work on this?", получите подтверждение меинтейнера и приступайте
- Делитесь успехами / задавайте вопросы в нашем чате @opensource_findings_chat
Если вы меинтейнер какого-то крупного проекта (>= 100 ⭐), то пишите в чат – вас добавят как админа, чтобы вы смогли постить в канал свои задачи. Чем больше – тем лучше, не забывайте ставить тег своей технологии.
Всем хорошего опенсорса!
Как оно работает?
- В данном канале меинтейнеры разных Python проектов (от CPython, mypy, Litestar до taskiq) могут в любой момент выложить простые задачки, чтобы люди могли принять участие в разработке их проекта
- Если вы хотите поработать над задачкой – напишите в самой задаче на гитхабе: "Can I work on this?", получите подтверждение меинтейнера и приступайте
- Делитесь успехами / задавайте вопросы в нашем чате @opensource_findings_chat
Если вы меинтейнер какого-то крупного проекта (>= 100 ⭐), то пишите в чат – вас добавят как админа, чтобы вы смогли постить в канал свои задачи. Чем больше – тем лучше, не забывайте ставить тег своей технологии.
Всем хорошего опенсорса!
Forwarded from Находки в опенсорсе
https://www.youtube.com/watch?v=wgxBHuUOmjA
Добавил ключевое слово
https://github.com/python/cpython/pull/131982 🎉
Добавил ключевое слово
maybe
в Python3.14https://github.com/python/cpython/pull/131982 🎉
YouTube
BREAKING: Guido van Rossum Returns as Python's BDFL
Guido van Rossum, the legendary creator of Python, is back as Python’s Benevolent Dictator for Life (BDFL)! But this isn’t the same Guido you remember - he’s introducing new rules, enforcing dramatic coding rituals, and possibly rewriting Python itself… maybe.…
Решил поучаствовать в конкурсе от GitVerse и соответственно написал статью на хабре:
https://habr.com/ru/articles/899636/
Буду рад вашей критике!
https://habr.com/ru/articles/899636/
Буду рад вашей критике!
CPython notes
Breaking: PEP 750 - Template Strings был принят: https://github.com/python/steering-council/issues/275#issuecomment-2794619570
Please open Telegram to view this post
VIEW IN TELEGRAM
PEP 749 (буквально, пеп о том как будет реализован PEP 649)
принят: https://discuss.python.org/t/pep-749-implementing-pep-649/54974/66
Что ж,
принят: https://discuss.python.org/t/pep-749-implementing-pep-649/54974/66
Что ж,
annotationlib
, добро пожаловать в семью.Первая бета 3.14 здесь!
Среди новвоведений:
- Подсветка синтаксиса в REPL'e
- Так называемые t-strings (aka PEP 750)😭
- Поддержка UUID v6, v7, v8 (yay!)
- Тот самый PEP (749) про отложенное вычисление аннотаций (annotationlib)
Специфично для CPython:
- Tail Calling Interpreter для ускорения VM (+5-10% по производительности)
- Примитивы из hashlib были заменены на их формально верифицированные версии из HACL
https://discuss.python.org/t/python-3-14-0-beta-1-is-here
Среди новвоведений:
- Подсветка синтаксиса в REPL'e
- Так называемые t-strings (aka PEP 750)
- Поддержка UUID v6, v7, v8 (yay!)
- Тот самый PEP (749) про отложенное вычисление аннотаций (annotationlib)
Специфично для CPython:
- Tail Calling Interpreter для ускорения VM (+5-10% по производительности)
- Примитивы из hashlib были заменены на их формально верифицированные версии из HACL
https://discuss.python.org/t/python-3-14-0-beta-1-is-here
Please open Telegram to view this post
VIEW IN TELEGRAM
Еще одна модель конкурентности в питоне?
https://discuss.python.org/t/add-virtual-threads-to-python/91403
За ссылку спасибо @mikhail_efimov
https://discuss.python.org/t/add-virtual-threads-to-python/91403
За ссылку спасибо @mikhail_efimov
Массовые увольнения происходят в Microsoft.
Судя по этому посту, как минимум половина, или возможно даже вся команда Faster-CPython была уволена.
(Faster-CPython team — команда работающая над ускорением CPython, и спонсируемая Microsoft)
Подтверждений этому от самих участников команды еще нет, но это весьма вероятно.
Автор поста на скриншоте непосредственно связан с Faster-CPython team.
К слову, на текущий момент этот пост выглядит иначе (скриншот первоначальной версии поста я честно украл у Никиты Соболева :)).
Автор убрал количество core-developer'ов, и.. непонятно что это значит, честно говоря. Вероятно кого-то все таки не уволили?
Судя по этому посту, как минимум половина, или возможно даже вся команда Faster-CPython была уволена.
(Faster-CPython team — команда работающая над ускорением CPython, и спонсируемая Microsoft)
Подтверждений этому от самих участников команды еще нет, но это весьма вероятно.
Автор поста на скриншоте непосредственно связан с Faster-CPython team.
К слову, на текущий момент этот пост выглядит иначе (скриншот первоначальной версии поста я честно украл у Никиты Соболева :)).
Автор убрал количество core-developer'ов, и.. непонятно что это значит, честно говоря. Вероятно кого-то все таки не уволили?
CPython notes
Массовые увольнения происходят в Microsoft. Судя по этому посту, как минимум половина, или возможно даже вся команда Faster-CPython была уволена. (Faster-CPython team — команда работающая над ускорением CPython, и спонсируемая Microsoft) Подтверждений этому…
Официальное подтверждение тому, что Microsoft более не спонсирует Faster CPython.
Уволили не всех, видимо тех кого не уволили перераспределят на новые проекты.
Люди, которых уволили:
Irit Katriel
Eric Snow
Mark Shannon
Уволили не всех, видимо тех кого не уволили перераспределят на новые проекты.
Люди, которых уволили:
Irit Katriel
Eric Snow
Mark Shannon
Был принят и реализован PEP 768.
Он позволяет исполнять код в рамках разных процессов(!) одного хоста.
API довольно простое.
Конечно, существуют некоторые ограничения: мажорная и минорная версии интерпретатора, из которого отправляется запрос, должны совпадать с мажорной и минорной версией целевого интерпретатора.
И конечно, целевой интерпретатор должен поддерживать эту фичу, которую можно отключить с помощью
Безопасно ли это?
Конечно нет. В названии PEP используется слово safe, но оно не про безопасность исполнения кода, а про безопасное API что б "присоединяться" к Python-процессам, что может быть полезно для дебаггеров, например для
Теперь о самом интересном. Как же это реализовано?
- Windows: https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-writeprocessmemory
- UNIX: https://linuxman7.org/linux/man-pages/man2/process_vm_readv.2.html
- macOS: https://developer.apple.com/documentation/kernel/1402070-mach_vm_write
Все это позволяет нам писать в нужную область памяти целевого процесса.
Отлично, мы записали информацию (конкретно, путь до файла с Python кодом который нужно исполнить). Что дальше?
Теперь дело остается за целевым процессом.
Здесь у нас есть два варианта.
1) Как вы можете знать, в Python существуют обработчики сигналов. Именно в общем обработчике сигналов как раз и проверяется, нет ли у нас <входящих запросов> на выполнение кода. Если таковые есть — считываем Python код из пути что нам отправили и выполняем его.
Почему обработка подобных запросов находится в обработчике сигналов, хотя ничего из этого не относится к сигналам?
Думаю, дело в частых попытках обработать сигналы, соответственно там же мы можем и проверить входящие запросы на исполнение Python кода. Согласно PEP, код который мы отправили будет исполнен в "следующий возможный момент", что как раз и попадает под обработку сигналов.
2) В самом интерпретаторе есть обработка "внутренних запросов":
— "stop-the-world" (пауза для сборки мусора)
— обработка тех самых сигналов :)
— обработка асинхронных исключений
— запуск сборки мусора
Теперь к этому списку добавилась обработка запросов на исполнение кода.
Осталось только что б кто-то на основе этого построил RPC :)
Он позволяет исполнять код в рамках разных процессов(!) одного хоста.
API довольно простое.
sys.remote_exec
принимает первым аргументом pid
процесса, в котором уже(!) запущен Python-интерпретатор, а второй аргумент путь до файла с Python кодом который нужно исполнить.Конечно, существуют некоторые ограничения: мажорная и минорная версии интерпретатора, из которого отправляется запрос, должны совпадать с мажорной и минорной версией целевого интерпретатора.
И конечно, целевой интерпретатор должен поддерживать эту фичу, которую можно отключить с помощью
-X disable-remote-debug
или env-переменной PYTHON_DISABLE_REMOTE_DEBUG
.Безопасно ли это?
Конечно нет. В названии PEP используется слово safe, но оно не про безопасность исполнения кода, а про безопасное API что б "присоединяться" к Python-процессам, что может быть полезно для дебаггеров, например для
pdb -p
.Теперь о самом интересном. Как же это реализовано?
- Windows: https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-writeprocessmemory
- UNIX: https://linuxman7.org/linux/man-pages/man2/process_vm_readv.2.html
- macOS: https://developer.apple.com/documentation/kernel/1402070-mach_vm_write
Все это позволяет нам писать в нужную область памяти целевого процесса.
Отлично, мы записали информацию (конкретно, путь до файла с Python кодом который нужно исполнить). Что дальше?
Теперь дело остается за целевым процессом.
Здесь у нас есть два варианта.
1) Как вы можете знать, в Python существуют обработчики сигналов. Именно в общем обработчике сигналов как раз и проверяется, нет ли у нас <входящих запросов> на выполнение кода. Если таковые есть — считываем Python код из пути что нам отправили и выполняем его.
Почему обработка подобных запросов находится в обработчике сигналов, хотя ничего из этого не относится к сигналам?
Думаю, дело в частых попытках обработать сигналы, соответственно там же мы можем и проверить входящие запросы на исполнение Python кода. Согласно PEP, код который мы отправили будет исполнен в "следующий возможный момент", что как раз и попадает под обработку сигналов.
2) В самом интерпретаторе есть обработка "внутренних запросов":
— "stop-the-world" (пауза для сборки мусора)
— обработка тех самых сигналов :)
— обработка асинхронных исключений
— запуск сборки мусора
Теперь к этому списку добавилась обработка запросов на исполнение кода.
Осталось только что б кто-то на основе этого построил RPC :)
https://www.microsoft.com/en-us/research/wp-content/uploads/2025/04/pyrona_camera_ready.pdf
Paper от Faster-CPython team: "Dynamic Region Ownership for Concurrency Safety"
Paper от Faster-CPython team: "Dynamic Region Ownership for Concurrency Safety"
PEP 734: Multiple Interpreters in the Stdlib (Публичное Python API к сабинтерпретаторам) был принят:
https://discuss.python.org/t/pep-734-multiple-interpreters-in-the-stdlib/41147/36
Вообще, уже был достигнут feature-freeze для 3.14 (после этого момента не добавляются никакие новые фичи), но руководящий совет решил сделать исключение.
🥳
https://discuss.python.org/t/pep-734-multiple-interpreters-in-the-stdlib/41147/36
Вообще, уже был достигнут feature-freeze для 3.14 (после этого момента не добавляются никакие новые фичи), но руководящий совет решил сделать исключение.
🥳