Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Генераторы — Лабораторная работа

Описание

Проект реализует три задания:

  1. Генератор городов (циклически выдаёт 1000000 наименований). Вывод — первые 20.
  2. Генератор случайных кортежей. На его основе формируется матрица 20×20 чисел в диапазоне [-5,5].
  3. Преобразование строки слов в таблицу 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.

Запуск

  1. Клонировать репозиторий и перейти в папку проекта.
  2. Создать виртуальное окружение и активировать:
python -m venv .venv
source .venv/bin/activate  # Linux/macOS
.venv\Scripts\activate     # Windows
  1. Установить зависимости:
  pip install -r requirements.txt
  1. Запуск
python ui.py # GUI
python main.py #CLI
python multigen.py #Для бенчмарка в терминале
python -m pytest -v # тесты

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages