Написать скрипт для автопроверки задач на python (интерпретатор)

2 000 руб. за проект
26 сентября 2023, 22:35 • 2 отклика • 67 просмотров
Техническое задание (ТЗ) на разработку скрипта для проверки задач на Python:

Описание: мы разрабатываем платформу, где можно будет решать задачи python и сразу
проверять свое решение. Интерпретатор должен быть с возможностью сделать дебаг, отображать глобальные переменные/данные, сделать проверку (тесты из нашей бд), запуск (проверить задачу на данных пользователя) и вывод ошибок

**Цель проекта:**
Разработать скрипт на языке Python, который будет выполнять автоматическую проверку задач, предоставленных пользователями в виде Python-кода, и выдавать результаты выполнения.

**Основные требования:**

1. **Входные данные:**
- Скрипт должен принимать на вход Python-код, предоставленный пользователем.
- Скрипт должен иметь возможность принимать дополнительные параметры, такие как входные данные для задачи (если требуется). Input или дополнительные строки для проверки

2. **Выполнение кода:**
- Скрипт должен выполнять предоставленный Python-код в изолированной среде для безопасности.
- Скрипт должен обрабатывать исключения и ошибки в коде пользователя, предоставляя информацию о них.
- выдавать рекомендации pip8
- предварительная проверка кода на уязвимость

3. **Оценка результатов:**
- Скрипт должен анализировать результат выполнения кода пользователя.
- В случае успешного выполнения кода, скрипт должен выводить результат (например, вывод на экран или значение переменных).
- В случае ошибок в коде (например, синтаксических ошибок), скрипт должен предоставлять информацию о них и не завершать работу.

4. **Безопасность:**
- Скрипт должен обеспечивать безопасное выполнение кода пользователя, изолируя его от системных ресурсов.
- Скрипт должен предотвращать выполнение потенциально вредоносного кода (например, бесконечных циклов)

6. **Тестовые сценарии:**
- Разработать тестовые сценарии и набор тестовых данных для проверки скрипта.

8. **Ограничения по времени выполнения:**
- Добавить возможность установки ограничений по времени выполнения кода.

9. **Ограничения по ресурсам:**
- Добавить возможность установки ограничений по использованию ресурсов (память, процессорное время).
- запрещать библиотеки

**Ожидаемые результаты:**
Разработанный скрипт должен быть способен принимать и проверять Python-код (задачи разного уровня, могут быть методы, классы) предоставленный пользователями, и выдавать результаты выполнения, учитывая безопасность и стабильность выполнения кода. А также выполнять пошаговый показ(дебаг), выполнить проверку из тестов из бд, запустить код со входными данными пользователя и вывод ошибок

**Дополнительные комментарии:**
Технологический стек: python, фреймворк Django, htmx, js, css, html

Так же необходимо написать js скрипт, который будет динамически делать подсветку кода и нумерацию строк, а также при дебаг показывать на какой строке мы находимся и изменять глобальные данные. С помощью htmx отправлять код на сервер и получать ответ. А также в зависимости от ответа показывать тот или иной блок