Проект реализует три задания:
- Генератор городов (циклически выдаёт 1000000 наименований). Вывод — первые 20.
- Генератор случайных кортежей. На его основе формируется матрица 20×20 чисел в диапазоне [-5,5].
- Преобразование строки слов в таблицу 3 столбца с использованием
zip(лишние слова отбрасываются).
Дополнительно:
- Обработаны исключительные ситуации.
- Добавлен UI на PySide6 (TabWidget — по задаче).
- Реализована многопоточная версия генератора и сравнительный бенчмарк (однопоточная vs многопоточная) — можно запускать в UI или в
multigen.py. - Покрытие тестами pytest.
app/generators.py — Задания 1,2,3 и функции бенчмарка.
ui.py — PySide6 интерфейс.
main.py — CLI.
multigen.py — бенчмарк в терминале.
tests/test_app.py — pytest тесты.
Язык программирования: Python 3.10+ Библиотеки: PySide6, pytest Платформы: Windows / Linux / macOS.
- Клонировать репозиторий и перейти в папку проекта.
- Создать виртуальное окружение и активировать:
python -m venv .venv
source .venv/bin/activate # Linux/macOS
.venv\Scripts\activate # Windows- Установить зависимости:
pip install -r requirements.txt- Запуск
python ui.py # GUI
python main.py #CLI
python multigen.py #Для бенчмарка в терминале
python -m pytest -v # тесты