Type _get_effective_ui_settings_class as Type[UISettings] for mypy

This commit is contained in:
Yuneng Jiang 2026-04-24 13:19:02 -07:00
parent 32d4ae79f6
commit 85b6cae508
No known key found for this signature in database

View file

@ -1,6 +1,6 @@
#### CRUD ENDPOINTS for UI Settings #####
import json
from typing import Any, Dict, List, Optional, Set, Tuple, Union
from typing import Any, Dict, List, Optional, Set, Tuple, Type, Union
from urllib.parse import urlparse
from fastapi import APIRouter, Body, Depends, File, HTTPException, UploadFile
@ -204,7 +204,7 @@ _EXTRA_UI_SETTINGS_FIELDS: Dict[str, Tuple[Any, FieldInfo]] = {}
_ENTERPRISE_ONLY_UI_SETTINGS: Set[str] = {"enable_projects_ui"}
# Memoized effective class; invalidated on registration.
_EFFECTIVE_UI_SETTINGS_CLASS: Optional[type] = None
_EFFECTIVE_UI_SETTINGS_CLASS: Optional[Type[UISettings]] = None
def register_extra_ui_setting(name: str, annotation: Any, field: FieldInfo) -> None:
@ -221,7 +221,7 @@ def register_extra_ui_setting(name: str, annotation: Any, field: FieldInfo) -> N
_EFFECTIVE_UI_SETTINGS_CLASS = None
def _get_effective_ui_settings_class() -> type:
def _get_effective_ui_settings_class() -> Type[UISettings]:
"""Return UISettings with any extension-registered fields merged in.
Memoized pydantic ``create_model`` runs metaclass + schema work