Обертка над Docker¶
Функции для поиска и загрузки требуемых образов, запуска контейнеров, Python кода и тестового прогона. Так же содержит функцию получения комментария от ИИ. -
- python_runner_bot.docker_runner.ai_explain(execution_result, lang, python_version) str¶
Запрос комментария от ИИ. Работает на основе публичного API из открытых источников.
- Параметры:
execution_result (str) – Результат выполнения
lang (str) – Код используемой локализации
python_version (str) – Используемая версия Python
- Результат:
Ответ от ИИ
- Тип результата:
str
- python_runner_bot.docker_runner.client = <docker.client.DockerClient object>¶
Объект для взаимодействия с Docker Engine
- python_runner_bot.docker_runner.init()¶
Подготовка всех образов с версиями Python, перечисленными в модуле констант
- python_runner_bot.docker_runner.log = <Logger docker_runner (WARNING)>¶
Объект для логгирования
- python_runner_bot.docker_runner.prepare_image(target: str = 'python:3.12.3') None¶
Подготовка указанного образа Docker - поиск среди уже загруженных и загрузка при отсутствии такового.
- Параметры:
target (str) – Наименование требуемого образа
- async python_runner_bot.docker_runner.run_python_code(code: str, msg: Message, user_id: int)¶
Формирование команды на запуск Python кода в контейнере с использованием предпочитаемой пользователем версии Python (образа). Запуск и ожидание результатов работы контейнера. В процессе работы запрашивает комментарий от ИИ при наличии чего-либо в потоке ошибок (STDERR) и редактирует сообщение, указывая этап выполнения (начато выполнение, получен результат, запрос комментария ИИ при ошибке, отправка итогового результата пользователю)
- Параметры:
code (str) – Текст, трактуемый как код на языке Python
msg (aiogram.types.Message) – Объект сообщения с необходимой для редактирования текста сообщения информацией и методом
user_id (int) – Идентификатор пользователя, используемый для получения настроек пользователя и использования в функции запуска контейнера
- async python_runner_bot.docker_runner.test_run()¶
Функция для проведения тестового прогона с замерами времени между запуском контейнера и запуском кода, а также между завершением работы кода и удалением контейнера.
- Результат:
Сообщение с временными метками и расчитанным временем оверхеда
- Тип результата:
str