Практикум Python. Internals 2025
Курс “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 балл (доп.) – активная помощь участникам в чате; активность на семинаре