Phase 28: P3 — Pydantic Settings, dependency-injector IoC, tenacity retry

- config.py: dataclasses → pydantic-settings BaseSettings (flat AppConfig,
  env vars auto-loaded from .env, type-safe validation)
- api_client.py: HTTPAPIClient takes AppConfig directly (APIConfig removed);
  tenacity retry on 5 methods (reset/ingest/list/delete/feedback) —
  retries on 5xx + TransportError, 3 attempts, exponential backoff 1-8s
- container.py: manual DI → dependency_injector DeclarativeContainer with
  providers.Singleton; Container() needs no args
- app.py: container.X → container.X() calls, remove AppConfig import
- requirements.txt: add pydantic-settings, tenacity, dependency-injector

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
sal
2026-06-02 05:59:23 +09:00
parent 148211e236
commit 974bab7cd8
6 changed files with 67 additions and 70 deletions
+3
View File
@@ -4,3 +4,6 @@ python-dotenv>=1.0.0
openai-whisper>=20231117
edge-tts>=6.1.9
pyttsx3>=2.90
pydantic-settings>=2.0.0
tenacity>=8.0.0
dependency-injector>=4.41.0