# 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`