Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Начало работы с программой

1. Установка зависимостей

Выполните команду в терминале:

pip install uv
uv sync

2. Запуск программы

Вариант 1:
Активируйте виртуальное окружение и выполните:

python main.py

Вариант 2:
Запустите с помощью uv (используя переменные из .env):

uv run --env-file=.env main.py

3. Результат

После успешного запуска в корне проекта появится файл: result.xlsx


💡 Готово!
Теперь вы можете открыть result.xlsx и посмотреть результат работы программы.

Объяснение решений

  1. Структура проекта: выдержана классическими архитектурными подходами, где сервисная логика и конфигурации отделены от основного интерфейса взаимодействия
  2. Логика взаимодействия: создал классический http-клиент для ассинхронного взаимодействия с внешними ресурсами, который хранится в файле base_client.py в дериктории src/clients
  3. Логика обработки: я посчитал правильным, что изначальный файл xlsx, который содержит данные о uid и названии зоны, необходимо хранить внутри проекта и путём парсинга создавать константную переменную, содержащую данные о зонах в формате dict(ключ: значение), где ключом является uid, а значением -- название места
  4. Логика формирования итогового файла следующая: в файле excel_service.py в дериктории src/services создаётся класс-сервис, содержащий основную логику взаимодействия с внешним API, мок-связью и генерацией итогового xlsx-файла. В методе get_data_of_visits мы асинхронно получаем данные с внешнего API и возвращаем их (в нашем случае мы используем get_data_of_visits_static, т.к. внешний API закрыт для общей сети, и возвращаем статику). Далее мы передаём данные в метод generate_dfs_from_response_data, который генерирует из всех существующих данных датафреймы и 'мёрджит' их в один. И в методе save_df_to_excel мы сохраняем общий excel file в корневой дериктории.

About

Api for excel-generating info of visits

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages