# Onco-Cola's utils

![Python](https://img.shields.io/badge/Python-3.9%2B-blue?logo=python&logoColor=white)
![License](https://img.shields.io/badge/License-MIT-green)
![GitHub last commit](https://img.shields.io/github/last-commit/VolodinAS/onco-cola-tools)

`onco-cola-utils` — это набор утилит для Python, предназначенный для упрощения работы с данными, особенно с файлами Excel. Библиотека включает инструменты для чтения, записи и обработки данных, а также вспомогательные модули для логирования, создания типизированных констант и форматированного вывода.

## Основные возможности

- **`DefaultState`**: Класс, предназначенный для типизированного ответа из любой функции
- **`DualAlphabeticController`**: 
- **`FileReaderController`**: Простой и надежный контроллер для безопасной работы с текстовыми файлами. Обеспечивает атомарные операции чтения и записи с обработкой ошибок и автоматическим созданием директорий.
- **`JsonReader`**: Класс, предназначенный для чтения/записи json-файлов
- **`KeyParamClass`**: Метакласс для создания неизменяемых, enum-подобных классов. Идеально подходит для определения констант, статусов или других предопределенных значений в коде.
- **`logger`**: Преднастроенный логгер на базе `loguru` с цветовой кодировкой для разных уровней логирования (DEBUG, INFO, SUCCESS, ERROR).
- **`pretty_print`**: Утилита для красивого вывода сложных объектов (dataclasses, словарей, списков), что упрощает отладку.
- **`ReaderController`**: Мощный класс для управления файлами Excel (XLS/XLSX). Позволяет читать данные, находить нужный лист, обновлять и сохранять файлы, а также добавлять уникальные идентификаторы к строкам.
- **`value_to_bool`**: Функция для преобразования различных значений в булев тип по расширенным правилам.

## Установка

Для установки зависимостей выполните команду:

```bash
pip install onco-cola-utils
```

## Подробно о каждом методе можно прочитать в корне соотвтветствующего пакета на [GitHub](https://github.com/VolodinAS/onco-cola-tools/tree/master/src/onco_cola_utils)

---
## Зависимости

Проект `onco-cola-tools` использует следующие основные библиотеки:

-   `pandas` (`>=1.5`): Для работы с табличными данными и Excel-файлами.
-   `openpyxl` (`>=3.0`): Бэкенд для чтения и записи `.xlsx` файлов в `pandas`.
-   `loguru` (`^0.7.3`): Для расширенного и удобного логирования.
-   `deprecated` (`>=1.2`): Для маркировки устаревших функций и методов.
-   `build` (`>=1.3.0`): Для сборки пакета.
-   `twine` (`>=6.1.0`): Для публикации пакета.
-   `tiktoken` (`>=0.11.0`): Для работы с токенами (вероятно, для интеграции с LLM).

Все зависимости указаны в файле `pyproject.toml`.

---

## Лицензия
Данный проект распространяется под лицензией MIT. Подробности см. в файле `LICENSE`.
