Курсовой проект по теории алгоритмов и формальных языков, продуктом которого является эмулятор одно- и многоленточной машины Тьюринга
- графический интерфейс
- основной функционал — проверка слова на соответствие языку МТ и построение графика временной сложности алгоритмов МТ
- поддержка алгоритмов для одно- и многоленточных МТ, переключение между ними
- интерфейс должен оставаться отзывчивым при запущенном процессе проверки слова или построения графика (многопоточность)
- должен быть предусмотрен вывод протокола МТ и его экспорт в файл
- должен быть предусмотрен экспорт графика временной сложности в файл
- собственный формат алгоритма МТ и его парсер
- множество предустановленных алгоритмов в папке src/algorithm (частично с комментариями)
- возможность включить режим разработки, при котором алгоритмы перезагружаются при каждом запуске (позволяет удобно отлаживать алгоритм при его создании)
- продвинутые инструменты для управления пакетами и анализа качества кода
- покрытие юнит-тестами
- Python ^3.12 — язык программирования
- Poetry — пакетный менеджер
- Ruff — инструмент для форматирования и анализа кода
- PyQt6 — библиотека для создания графического интерфейса
- pyqtgraph — библиотека для построения графиков в PyQt
- pytest — фреймворк для тестирования
- Клонируйте репозиторий и перейдите в его папку.
- Установите Poetry.
- Из папки проекта выполните установку зависимостей:
poetry install --without dev
- Теперь запускать проект можно командой:
poetry run python -m src.main
Чтобы модифицировать проект, необходимо установить все зависимости, включая необходимые только для разработки:
poetry install
Обновить py-файл интерфейса после модификации ui-файла в Qt Designer можно командой:
poetry run python -m PyQt6.uic.pyuic -o src/ui/form.py -x src/ui/form.ui