Update docs: add repo URL, refresh AGENTS.md and README, remove stale READMEs
This commit is contained in:
@@ -1,92 +0,0 @@
|
||||
# ConfigManager
|
||||
|
||||
Управление конфигурацией с регистрацией параметров и описаний.
|
||||
|
||||
## Описание
|
||||
|
||||
### Класс ConfigParameter
|
||||
|
||||
Базовый класс для описания параметра
|
||||
|
||||
name: Имя параметра
|
||||
val: Значение
|
||||
def: Значение по умолчанию
|
||||
desc: Описание параметра (не обязательно)
|
||||
cat: Категория параметра (не обязательно, по умолчанию 'global')
|
||||
env: Имя переменной окружения (не обязательно)
|
||||
validator: Функция проверки допустимости параметра (если не используется, то значение -- строка. не обязательно)
|
||||
|
||||
Параметры хранятся к конфиге так:
|
||||
|
||||
```config
|
||||
#$description
|
||||
#$category.$name: $value
|
||||
$category.$name: $value
|
||||
```
|
||||
например:
|
||||
```config
|
||||
#Наименование проекта
|
||||
#global.name: "komAI"
|
||||
global.name: "SuperAPP"
|
||||
```
|
||||
|
||||
Пример использования параметра:
|
||||
|
||||
```python
|
||||
param1 = ConfigParameter(cat="global", name="name", val="komAI", desc="Наименование проекта", def="SuppaPuppa")
|
||||
|
||||
#name:name value:Наименование проекта
|
||||
print(f"name:{param1.name} value:{param1.desc}")
|
||||
|
||||
#name.as_int:0
|
||||
print(f"{param1.name}.as_int:{param1.as_int()}")
|
||||
|
||||
##Наименование проекта\n#global.name: "SuppaPuppa"\nglobal.name: "komAI"
|
||||
print(param1)
|
||||
```
|
||||
|
||||
### Класс ConfigManager
|
||||
|
||||
- Базовый класс для работы с параметрами
|
||||
- Параметры хранятся текстовом конфиге (например в `config/global.yaml`)
|
||||
- Файл можно переопределить из командной строки (например `--config ~/myApp/config/app.yaml`)
|
||||
- Файл можно переопределить через переменную окружения `$projectname_CONFIG=~/superApp/config.yaml`
|
||||
- Приоритет определения параметров (от высшего к низшему):
|
||||
коммандная строка --> переменные окружения --> файл ~/.ENV
|
||||
- Для ConfigManager значение файла конфигурации по умолчанию задано в тексте конcтантой. Например:
|
||||
```python
|
||||
config_file_default = "config/global.yaml"
|
||||
config_env_default = "KOMAI_CONFIG_FILE"
|
||||
```
|
||||
- Регистрация и инициализация класса должна быть глобальная
|
||||
|
||||
Пример использования:
|
||||
```python
|
||||
from src.utils.config_manager.config_manager import get_config
|
||||
|
||||
config = get_config()
|
||||
config.register(cat="global", name="app.name", val="komAI", desc="Наименование проекта")
|
||||
#если не задана cat, использовать значение по умолчанию
|
||||
#данный вызов вернёт значение параметра 'global.app.name'
|
||||
value = config.get("app.name")
|
||||
#данный вызов вернёт значение описания параметра 'global.app.name'
|
||||
desc = config.get_description("app.name", cat="global")
|
||||
```
|
||||
|
||||
## Глобальный доступ
|
||||
|
||||
`get_config()` - возвращает singleton ConfigManager
|
||||
|
||||
## Регистрация параметров модулями
|
||||
|
||||
Каждый модуль регистрирует свои параметры при инициализации:
|
||||
```python
|
||||
config.register(name="level", val="INFO", desc="Уровень логирования", cat="logging")
|
||||
```
|
||||
|
||||
## Категории
|
||||
|
||||
Возможные категории параметров
|
||||
- `app` - приложение
|
||||
- `logging` - логирование
|
||||
- `global` - общие
|
||||
Reference in New Issue
Block a user