🏠 На главную | 🧭 Руководство (RU) | ⚙️ API Reference
⚙️ Settings: Архитектура настроек
Этот раздел описывает базовые паттерны конфигурации, используемые для управления настройками приложений в экосистеме codex-core.
Цель домена
Домен settings предоставляет надежную и стандартизированную базу для загрузки конфигурации из переменных окружения и файлов .env, специально разработанную для работы с общей инфраструктурой, такой как Redis.
1. BaseCommonSettings
BaseCommonSettings — это неизменяемая модель настроек Pydantic, которая служит фундаментом для конфигураций конкретных проектов.
Ключевые особенности:
- Подключение к Redis: Автоматически создает свойство
redis_urlна основе хоста, порта и пароля. - Безопасные пароли: Использует
quote_plusдля обеспечения того, чтобы специальные символы в паролях не разрывали строку подключения. - Осведомленность о среде: Предоставляет флаги
is_productionиis_developmentна основе настройкиdebug.
2. Реализация в проекте
Проекты должны наследоваться от BaseCommonSettings и определять свой собственный model_config, чтобы указать местоположение файла .env.
from codex_core.settings import BaseCommonSettings
from pydantic_settings import SettingsConfigDict
from pathlib import Path
class ProjectSettings(BaseCommonSettings):
# Настройки конкретного проекта
my_api_token: str = "secret"
# Обязательно: укажите, где искать .env
model_config = SettingsConfigDict(
env_file=Path(__file__).parent / ".env",
env_file_encoding="utf-8",
extra="ignore",
)
Рекомендации
- Никогда не фиксируйте .env: Убедитесь, что файлы
.envнаходятся в.gitignore. - Используйте понятные имена: Предпочитайте описательные имена переменных окружения, такие как
REDIS_PASSWORD, а не общие. - Явные значения по умолчанию: Определяйте разумные значения по умолчанию в вашем классе настроек для локальной разработки.