File size: 1,126 Bytes
f0e2e50 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
"""
Configuration management for the Manim Video Generator
"""
from typing import List, Any
class ConfigManager:
"""Manage application configuration and settings"""
DEFAULT_CONFIG = {
"max_render_time": 300, # 5 minutes
"temp_dir_cleanup": True,
"log_level": "INFO",
"default_quality": "medium_quality",
"default_model": "llama-3.3-70b-versatile",
"max_prompt_length": 1000,
"enable_caching": True,
"ffmpeg_timeout": 180 # 3 minutes
}
@classmethod
def get_config(cls, key: str, default=None) -> Any:
"""Get configuration value"""
return cls.DEFAULT_CONFIG.get(key, default)
@classmethod
def validate_config(cls) -> List[str]:
"""Validate current configuration"""
issues = []
if cls.get_config("max_render_time") < 60:
issues.append("Max render time should be at least 60 seconds")
if cls.get_config("max_prompt_length") < 10:
issues.append("Max prompt length should be at least 10 characters")
return issues |