Интерактивная веб-платформа для глубокого изучения Python от базовых основ до экспертного уровня CPython internals с реальным выполнением кода, файловым менеджером, установкой pip-библиотек и многоуровневой системой подсказок.
- Выполнение Python скриптов прямо в изолированном виртуальном окружении подпроцесса.
- Захват
stdout,stderr, кода возврата, времени выполнения (в миллисекундах). - Защита от бесконечных циклов: конфигурируемый асинхронный таймаут (15 сек).
- Горячие клавиши в редакторе:
Ctrl + Enterдля запуска,Ctrl + Sдля сохранения.
- Создание файлов (
.py,.json,.txt,.md) и вложенных папок. - Вкладки в Monaco Editor для одновременной работы с несколькими файлами.
- Поддержка взаимных импортов: создавайте свои модули (например,
from math_utils import fibonacci) и используйте их вmain.py! - Переименование, удаление и безопасная валидация путей (защита от directory traversal).
- Быстрый сброс к начальным шаблонам при необходимости.
- Встроенный графический менеджер пакетов
pip installиpip uninstall. - Установка любых сторонних библиотек:
numpy,pandas,matplotlib,rich,requests,pydantic,scipy,aiohttp,pytestи других. - Список установленных пакетов в виртуальном окружении с версиями.
- Каталог рекомендованных библиотек с установкой в 1 клик и ссылками на официальную документацию.
- Лог операций Pip в реальном времени.
- Автоматический перехват вызовов
plt.show()илиplt.savefig()без открытия GUI-окон. - Отображение построенных графиков и диаграмм прямо во вкладке Графика (Plots) с возможностью скачивания PNG.
Для каждого практического задания предусмотрена 3-уровневая система подсказок, которая открывается пошагово:
- Уровень 1 (Концептуальная наводка): направление мысли и архитектурный ориентир без спойлеров.
- Уровень 2 (Алгоритм и структура): псевдокод, рекомендуемые функции стандартной библиотеки и обработка краевых случаев.
- Уровень 3 (Точный код): сигнатуры функций, ключевые выражения и синтаксические конструкции.
-
Эталонное решение (Verified Solution): защищенная модалка с подтверждением («Точно открыть?»), эталонный код с комментариями, анализом временной сложности
$O(N)$ и кнопкой «Вставить в редактор».
- Проверка кода учащегося по наборам автоматических unit-тестов с декоратором
@pydeep_test. - Детальный отчет: статус прохождения каждого теста, время выполнения, сравнение ожидаемого и фактического результатов, трассировка ошибок.
- Праздничный салют (confetti) при успешной сдаче всех тестов!
- Сохранение прогресса решенных задач в локальном хранилище браузера.
- Мгновенное переключение между режимом структурированного обучения и свободной песочницей для любых исследовательских задач, экспериментов с данными или прототипирования.
-
Модуль 1: Ядро Python и Модель Памяти
- 1.1. Ссылочная модель:
id(),isvs==, изменяемость типов, ловушка дефолтных аргументов. - 1.2. Области видимости LEGB, ключевые слова
global/nonlocalи анатомия замыканий (Closures).
- 1.1. Ссылочная модель:
-
Модуль 2: Коллекции и Внутренности Хеш-таблиц
- 2.1. Compact Dict в CPython, открытая адресация, контракт
__hash__и__eq__. - 2.2. Сложность операций:
collections.dequevslistпри скользящем окне за$O(1)$ .
- 2.1. Compact Dict в CPython, открытая адресация, контракт
-
Модуль 3: Глубокое ООП, Dunder-протоколы и MRO
- 3.1. Линеаризация C3 MRO при множественном наследовании и кооперативный
super(). - 3.2. Внутреннее устройство
__slots__: оптимизация памяти экземпляров и устранение__dict__.
- 3.1. Линеаризация C3 MRO при множественном наследовании и кооперативный
-
Модуль 4: Итераторы, Генераторы и Потоковая обработка
- 4.1. Протокол итератора:
__iter__,__next__,StopIterationи ленивыйChunkIterator. - 4.2. Конструкция
yield fromи корутины генераторов с двусторонней связью через.send().
- 4.1. Протокол итератора:
-
Модуль 5: Декораторы, Метаданные и Контекстные менеджеры
- 5.1. Трехуровневые параметризованные декораторы с сохранением сигнатур через
functools.wraps. - 5.2. Протокол контекстного менеджера
__enter__/__exit__, авто-откат транзакций и подавление исключений.
- 5.1. Трехуровневые параметризованные декораторы с сохранением сигнатур через
-
Модуль 6: Асинхронный Python (Asyncio)
- 6.1. Событийный цикл (Event Loop), конкурентный запуск корутин через
asyncio.gather. - 6.2. Ограничение конкурентности и троттлинг сетевых запросов через
asyncio.Semaphore.
- 6.1. Событийный цикл (Event Loop), конкурентный запуск корутин через
-
Модуль 7: Метапрограммирование, Дескрипторы и Метаклассы
- 7.1. Протокол дескрипторов (
__get__,__set__,__set_name__), Data vs Non-Data дескрипторы. - 7.2. Декларативная авторегистрация плагинов через
__init_subclass__(PEP 487).
- 7.1. Протокол дескрипторов (
-
Модуль 8: Внутренности CPython, Байткод и Управление Памятью
- 8.1. Дизассемблирование байткода CPython: стек виртуальной машины и модуль
dis. - 8.2. Подсчет ссылок (refcount), циклический сборщик мусора
gcи слабые ссылкиweakref.
- 8.1. Дизассемблирование байткода CPython: стек виртуальной машины и модуль
-
Модуль 9: Статическая Типизация, Protocol и Generics
- 9.1. Структурная подтипизация:
typing.Protocolи@runtime_checkable(статический duck-typing). - 9.2. Обобщенные типы
Generic[T, E],TypeVarи паттерн безопасной обработки ошибокResult[T, E].
- 9.1. Структурная подтипизация:
-
Модуль 10: Продакшн Инженерия, GIL и Оптимизация
- 10.1. Преодоление GIL:
ThreadPoolExecutorvsProcessPoolExecutor(I/O-bound vs CPU-bound). - 10.2. Алгоритмическая оптимизация и анализ сложности: переход от
$O(N^2)$ к$O(N)$ с бенчмарками.
- 10.1. Преодоление GIL:
- Python 3.11+
- Node.js и pnpm
git clone https://github.com/ArtemChik103/python-deep-dive-lab.git
cd python-deep-dive-lab- На Windows (PowerShell):
./scripts/start.ps1
- На Windows (CMD / Двойной клик):
scripts\start.bat
Сервер автоматически соберет статику фронтенда и откроет доступ к веб-интерфейсу по адресу:
👉 http://localhost:8000
Если вы хотите разрабатывать фронтенд с мгновенной перезагрузкой (Vite HMR):
- В первом терминале (бэкенд):
python backend/run.py
- Во втором терминале (фронтенд):
cd frontend pnpm dev
Фронтенд будет доступен на http://localhost:5173 с автоматическим проксированием запросов /api на бэкенд localhost:8000.
Для запуска набора автоматических тестов API, грейдера и файловой системы:
python -m pytest backend/tests/test_app.py -vpython-deep-dive-lab/
├── backend/
│ ├── app/
│ │ ├── api/ # FastAPI маршруты (curriculum, execution, files, packages)
│ │ ├── core/ # Ядро исполнения: runner, grader, venv_manager, file_manager
│ │ ├── data/curriculum/ # 10 модулей с глубокими уроками, тестами, подсказками и решениями
│ │ ├── user_workspace/ # Рабочая директория пользователя для файлов и скриптов
│ │ ├── config.py # Конфигурация и пути
│ │ └── main.py # Точка входа FastAPI и раздача SPA
│ ├── tests/ # Автоматические тесты pytest
│ ├── requirements.txt
│ └── run.py # Скрипт запуска uvicorn
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ │ ├── Layout/ # Верхняя панель TopNavbar
│ │ │ ├── Sidebar/ # Дерево курса, проводник файлов, pip менеджер
│ │ │ ├── Editor/ # Редактор кода Monaco Editor с вкладками
│ │ │ ├── Lesson/ # Теория, пошаговые подсказки, модалка решений
│ │ │ └── Output/ # Терминал вывода, результаты тестов, графики, логи pip
│ │ ├── api/ # Типизированный HTTP-клиент
│ │ ├── types/ # Описания типов TypeScript
│ │ ├── App.tsx # Корневой компонент приложения
│ │ └── index.css # Tailwind стили и кастомный темный скроллбар
│ ├── dist/ # Собранный бандл для раздачи через бэкенд
│ ├── package.json
│ └── vite.config.ts
├── scripts/
│ ├── start.ps1 # Запуск для PowerShell
│ └── start.bat # Запуск для CMD
└── README.md
MIT License.