fix: resolve pylint and type-checking issues
- Fix return type annotation in SetupRedirectMiddleware.dispatch() to use Response instead of RedirectResponse - Replace broad 'except Exception' with specific exception types (FileNotFoundError, ValueError, OSError, etc.) - Rename AppConfig.validate() to validate_config() to avoid shadowing BaseModel.validate() - Fix ValidationResult.errors field to use List[str] with default_factory - Add pylint disable comments for intentional broad exception catches during shutdown - Rename lifespan parameter to _application to indicate unused variable - Update all callers to use new validate_config() method name
This commit is contained in:
@@ -58,8 +58,9 @@ class ValidationResult(BaseModel):
|
||||
"""Result of a configuration validation attempt."""
|
||||
|
||||
valid: bool = Field(..., description="Whether the configuration is valid")
|
||||
errors: Optional[List[str]] = Field(
|
||||
default_factory=list, description="List of validation error messages"
|
||||
errors: List[str] = Field(
|
||||
default_factory=lambda: [],
|
||||
description="List of validation error messages"
|
||||
)
|
||||
|
||||
|
||||
@@ -71,14 +72,16 @@ class AppConfig(BaseModel):
|
||||
|
||||
name: str = Field(default="Aniworld", description="Application name")
|
||||
data_dir: str = Field(default="data", description="Base data directory")
|
||||
scheduler: SchedulerConfig = Field(default_factory=SchedulerConfig)
|
||||
scheduler: SchedulerConfig = Field(
|
||||
default_factory=SchedulerConfig
|
||||
)
|
||||
logging: LoggingConfig = Field(default_factory=LoggingConfig)
|
||||
backup: BackupConfig = Field(default_factory=BackupConfig)
|
||||
other: Dict[str, object] = Field(
|
||||
default_factory=dict, description="Arbitrary other settings"
|
||||
)
|
||||
|
||||
def validate(self) -> ValidationResult:
|
||||
def validate_config(self) -> ValidationResult:
|
||||
"""Perform light-weight validation and return a ValidationResult.
|
||||
|
||||
This method intentionally avoids performing IO (no filesystem checks)
|
||||
@@ -98,7 +101,8 @@ class AppConfig(BaseModel):
|
||||
errors.append(msg)
|
||||
|
||||
# backup.path must be set when backups are enabled
|
||||
if self.backup.enabled and (not self.backup.path):
|
||||
backup_data = self.model_dump().get("backup", {})
|
||||
if backup_data.get("enabled") and not backup_data.get("path"):
|
||||
errors.append(
|
||||
"backup.path must be set when backups.enabled is true"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user