Практикум Python. Internals 2025

Материал из Public ATP Wiki
Версия от 11:12, 29 августа 2025; Sofivinogradova (обсуждение | вклад) (Новая страница: «'''Курс “CPython Internals”''' ==Описание== Этот курс — приглашение в сообщество CPython, the art-journey. Мы…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Курс “CPython Internals”

Описание

Этот курс — приглашение в сообщество CPython, the art-journey. Мы начнём с продвинутого Python и шаг за шагом выйдем к его ядру. Вы увидете, как строятся инженерные решения, поймёте, зачем и как эволюционируют части языка, и куда он движется.

Идеальным завершением курса будет ваш доклад на конференции/митапе или контрибьют в core часть языка. Будет много инженерной базы, обсуждений и практика для закрепления. Мы будем сбирать из исходников, профилировать, ставить эксперименты и смотреть на последние изменения CPython. Придя на курс, вы начнёте понимать, увидите как с первого курса стать частью одного из крупнейших open-source проектов.

Для погружения в Python-культуру курс дополняется музыкой и визуальными образами о CPython, что помогает лучше понимать и запоминать материал. The art создаётся по ходу курса и отражает его темы и сложные места для слушателей. После запланирован выход музыкального альбома, на который уже повлияли слушатели.

Часть занятий может проходить онлайн. Преподаватель выступает на конференциях по Европе и привозит актуальные практики вам.

Курс в числах

  • N занятий
  • Итоговая оценка: диф.зачёт [1:10]
  • для получения оценки:

>3 необходимо выполнить д/з и lab

>7 необходимо подготовить глубокий доклад на профильный митап/конференцию и защитить его или внести более-менее значимый вклад в CPython core

Программа курса

  • Трансляторы, интерпретаторы и байт-код: AST ↔ bytecode; CPython / Cython / PyPy
  • Продвинутое ООП 1, dataclasses
  • Продвинутое ООП 2, dataclasses
  • Области видимости, namespace, closures
  • Imports: механизм и кэширование
  • GC и управление памятью (RC, арены, пулы)
  • (д/з) venv/uv/pip/apt; сборка CPython из исходников; git/GitHub; contributes, роли
  • Processes / Threads
  • Asyncio

  • Free-threading, sub-interpreters
  • (lab) Ускорение Python: inline caching, adaptive specialization, tail-calling, JIT
  • PyObject, ceval, PyEval_EvalFrameEx и ключевые структуры
  • Типы в исходниках СPython
  • Погружение в устройство CPython core

доп.:

  • Отладка: pdb/debugpy/py-spy, затем базовый gdb/lldb, IDE-интеграция
  • Идея перехода CPython со стековой к регистровой модели
  • Ближайшее будущее CPython: green threads и сопутствующие идеи
  • погружение deeper в

- Processes / Threads / Asyncio

-Sub-interpreters

-Ускорение Python

Оценивание

  • ≤1+3 балла – д/з + lab, блокирующие: необходимо загрузить к себе на GitHub: public project, сделать TODO для lab и выслать ссылку.
  • ≤3 балла – контрибьют в CPython: PR/issue собщать сразу для review
  • ≤3 балла – доклад
  • 1 балл (доп.) – активная помощь участникам в чате; активность на семинаре