diff --git a/README.md b/README.md index 56fd61b..a468b45 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Модуль можно запустить командой `python -m rosseti_parser`, или импортировать из него необходимые методы и использовать где-то ещё -- Анализ данных: [main.ipynb](https://git.dm1sh.ru/dm1sh/iac_test/src/branch/main/main.ipynb) +- Анализ данных: [analysis.ipynb](https://git.dm1sh.ru/dm1sh/iac_test/raw/branch/main/analysis.ipynb) Необходимо скачать (платформа пока не поддерживает отображение ноутбука). Для запуска, установить библиотеки из `requirements.dev.txt` @@ -19,11 +19,3 @@ - Создание базы данных, API и docker: [parser_api](https://git.dm1sh.ru/dm1sh/iac_test/src/branch/main/parser_api) FastAPI приложение, запускающее в дополнительном потоке периодическое обновление данных в базе. - - Доступные методы: - - - GET /api/list - Поиск по каждому полю в отдельности - - GET /api/search - Поиск по всем полям сразу - - GET /api/check - Проверка, является ли отключение в вашем доме сейчас официальным и если да, то когда сеть снова включат. - - PUT /api/create - Отладочное поле для добавления записей в БД - - GET / - Healthcheck diff --git a/main.ipynb b/analysis.ipynb similarity index 100% rename from main.ipynb rename to analysis.ipynb diff --git a/parser_api/README.md b/parser_api/README.md new file mode 100644 index 0000000..fc4b06d --- /dev/null +++ b/parser_api/README.md @@ -0,0 +1,27 @@ +# Parser API + +## Описание + +FastAPI REST API, предоставляющий доступ к данным с сайта [Россети Ленэнерго](https://rosseti-lenenergo.ru/planned_work/). + +## Доступные методы + +- GET `/api/list` - Поиск по каждому полю в отдельности +- GET `/api/search` - Поиск по всем полям сразу +- GET `/api/check` - Проверка, является ли отключение в вашем доме сейчас официальным и если да, то когда сеть снова включат. +- PUT `/api/create` - Отладочное поле для добавления записей в БД +- GET `/` - Healthcheck + +Подробнее: [Swagger UI](http://localhost:8000/docs) когда запущенно приложение + +## Инструкция по запуску + +В корневой папке проекта: + +```bash +python -m venv .venv + +pip install -r requirements.txt + +python -m uvicorn parser_api.main:app +``` \ No newline at end of file diff --git a/rosseti_parser/README.md b/rosseti_parser/README.md new file mode 100644 index 0000000..07ee1ab --- /dev/null +++ b/rosseti_parser/README.md @@ -0,0 +1,73 @@ +# Rosseti parser + +## Описание + +Библиотека, куда собран код, необходимый для получения, обработки и сохранения данных с сайта [Россети Ленэнерго](https://rosseti-lenenergo.ru/planned_work/) + +## Интерфейс + +- `RossetiParser`: +```python +class RossetiParser: + def __init__(self, ndays=7, today: Optional[datetime] = None, file_path: Optional[str] = None) -> None + + self.base_url: str + self.ndays: int + self.today: datetime + self.df: pd.DataFrame + + def __str__(self) -> str + + def fetch(self, ndays: Optional[int] = None, today: Optional[datetime] = None) -> None + + def save_df(self, file_path: str) -> None + + def load_df(self, file_path: str) -> None + +``` +- `split_addresses`: +```python +def split_addresses(df: pd.DataFrame) -> pd.DataFrame +``` +- `fetch_builing_ids`: +```python +def fetch_builing_ids(df: pd.DataFrame) -> pd.DataFrame +``` +- `preprocess_df`: +```python +def preprocess_df(df: pd.DataFrame) -> pd.DataFrame +``` +- `COL_NS`: +```python +COL_NS: Dict[str, str] +``` +- `ICOL_NS`: +```python +ICOL_NS: Dict[str, str] +``` +- `preprocess_read_df`: +```python +def preprocess_read_df(df: pd.DataFrame) -> pd.DataFrame +``` +- `group_by_index`: +```python +def group_by_index(df: pd.DataFrame) -> pd.DataFrame +``` +- `pipeline`: +```python +def pipeline(parser: Optional[RossetiParser] = None) -> RossetiParser +``` + +## Инструкция по запуску + +В корневой папке проекта: + +```bash +python -m venv .venv + +pip install -r requirements.txt + +python -m rosseti_parser [<Период в часах>] +``` + +Формат сохраняемых файлов: `data_%d-%m-%y_%H:%M.csv`