TGViewer
Находки в опенсорсе Находки в опенсорсе @opensource_findings · 12.6K subscribers
Post #987 4.02K
PEPы в Python окончательно вышли из-под контроля

Давайте посмотрим, что происходит с ПЕПами в CPython. Там много новых спорных штук.
Начнем с более базовых, перейдем к дичи в конце. Какие-то ПЕПы приняты, но большинство в обсуждении.

Докстринги для TypeAliasType

PEP-846: https://github.com/python/peps/pull/5116

Базовая база: пишем докстринги после ключевого слова type - у нас появляется __doc__ атрибут.


type Timeout = float | None
"""Maximum wait in seconds. """


Привычный синтаксис из-за sphinx аннотаций для атрибутов.
Кстати, поддержка правила для поиска докстрингов вне правильных мест уже в wps!

Паттерн-матчинг конкретных значений

PEP-845: https://github.com/python/peps/pull/5107

В питоне была проблема, что нельзя сматчить конкретное значение из переменной. Все имена в PM всегда переписываются. В первой версии PEP-622 хотели сделать паттерны для сравнения с переменной, но потом отказались. А без такого - жить довольно сложно.

Такой синтаксис предлагают авторы:


def get_book_titles_for_author(author: str):
for book in BOOKS:
match book:
case {"title": title, "author": .author}:
yield title


Обратите внимание на .author, что показывает матч со значением внутри author, а не переназначение переменной author. Если бы добавили $ для "констант", то было $author 🌚
Мне нравится, выглядит полезно.

yield from в асинхронных генераторах

PEP-828: с python3.16 можно будет писать так:


async def agenerator():
yield 1
yield 2
return 3

async def main():
result = yield from agenerator()
assert result == 3


Я нейтрален, зависит от сложности реализации и граничных случаев.

Явные public и private декораторы

PEP 844:


# spam.py
@public
class Public:
...

@private
class Private:
...

# ex.py
import spam
spam.__all__ # ['Public']


Манипуляция __all__ через декоратор. А можно не надо?
Почему? __all__ используется для from spam import * и не для чего больше. __all__ надо закапывать, а не развивать. Более того, декоратор нельзя повесить на имена и тайп-алиасы. Кажется очень непродуманным решением.

Ключевое слово export

PEP-843: Предлагают добавить ключевое слово export для ... я не знаю чего.
А, опять манипуляции __all__. Чем не устраивает простая текущая система? Если имя начинается с _ - то оно protected. Ключевое слово для управления списком! Я против.

Ребята из FastAPI тащат синтаксис для себя в stdlib

PEP-835: Предлагают сделать @ типовым и рантайм оператором для создания Annotated объектов.
Крайне неудачный PEP на мой взгляд, о чем я написал авторам и собрал кучу поддержки.
Не поймите меня неправильно: я всячески за операции над типами. Просто я не думаю, что int @ Field(max=100) должно значить Annotated[int, Field(max=100)]. Нет задачи сократить количество символов, которые мы пишем (а некоторые уже и не пишут).

Одной строкой

- На прошлой неделе я побывал в пресс-туре MAGNIT TECH в Суздале. Было очень круто. Приятно видеть, как развивается ритейл. Обсудил с коллегами умные кассы, внедрение ИИ, новые способы оплаты, предиктивную аналитику спроса, интересное в логистике, предложил им внедрить wps. Хорошо провел время с коллегами @alexgladkovblog, @t0digital, @MrTeamlead. Суздаль - очень красивый! Кароч, очень понравилось. Спасибо за приглашение!
- Мы релизнули dmr@0.15.0 в рамках #opensource_september, все большое спасибо за участие. Наш самый большой релиз. Пока что!
- Про PEP-805 будет отдельный пост
- В Нижний на конфу уже собралось очень много людей из разных городов, приезжайте и вы! Можно даже отбивку о регистрации не ждать, всех пустим :)

Обсуждение: Как вам данные ПЕПы? Нашли что-то полезное для себя?
  • 🔥 49
  • 🤔 12
  • ❤ 9
  • 👍 8
  • 👌 6
  • 🎉 1
More from @opensource_findings
  1. Sep 10, 2026Большая бесплатная конференция в Нижнем Новгороде 17 октября Регистрация: https://itgorky.…
  2. Sep 1, 2026Post #985
  3. Aug 24, 2026JIT могут удалить из CPython! PEP-836: https://peps.python.org/pep-0836 JIT в CPython имее…
  4. Aug 18, 2026Как AWS у опенсорсера пакеты отжимал Нерегулярная рубрика "посмотрите, что творится!". Дан…
  5. Aug 14, 2026Какие уникальные фичи есть в django-modern-rest? Иногда, когда я добавляю какие-то фичи в…
  6. Aug 4, 2026Я попробовал uv, обплевался и вернулся на poetry Если вы последние полгода не читали чат,…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →