refac: modernize type annotations (PEP 604 / PEP 585)

This commit is contained in:
Timothy Jaeryang Baek committed 2026-05-12 17:10:15 +09:00
1 parent a59c967d7e
commit 6d0295588e
197 files changed
+3265 -3488

No files matched your search

+36 -37
View File
@@ -1,28 +1,14 @@
from typing import Optional
import io
import base64
import json
from __future__ import annotations
import asyncio
import base64
import io
import json
import logging
import posixpath
from typing import Optional
from urllib.parse import unquote
from open_webui.models.groups import Groups
from open_webui.models.models import (
ModelForm,
ModelMeta,
ModelModel,
ModelParams,
ModelResponse,
ModelListResponse,
ModelAccessListResponse,
ModelAccessResponse,
Models,
)
from open_webui.models.access_grants import AccessGrants
from pydantic import BaseModel
from open_webui.constants import ERROR_MESSAGES
from fastapi import (
APIRouter,
Depends,
@@ -32,13 +18,26 @@ from fastapi import (
status,
)
from fastapi.responses import RedirectResponse, StreamingResponse
from open_webui.utils.auth import get_admin_user, get_verified_user
from open_webui.utils.access_control import has_permission, filter_allowed_access_grants
from open_webui.config import BYPASS_ADMIN_ACCESS_CONTROL
from open_webui.constants import ERROR_MESSAGES
from open_webui.env import ENABLE_PROFILE_IMAGE_URL_FORWARDING
from open_webui.internal.db import get_async_session
from open_webui.models.access_grants import AccessGrants
from open_webui.models.groups import Groups
from open_webui.models.models import (
ModelAccessListResponse,
ModelAccessResponse,
ModelForm,
ModelListResponse,
ModelMeta,
ModelModel,
ModelParams,
ModelResponse,
Models,
)
from open_webui.utils.access_control import filter_allowed_access_grants, has_permission
from open_webui.utils.auth import get_admin_user, get_verified_user
from pydantic import BaseModel
from sqlalchemy.ext.asyncio import AsyncSession
log = logging.getLogger(__name__)
@@ -46,7 +45,7 @@ log = logging.getLogger(__name__)
router = APIRouter()
def _safe_static_redirect_path(url: str) -> Optional[str]:
def _safe_static_redirect_path(url: str) -> str | None:
"""
If url is a same-origin static asset path, return a normalized path safe for
RedirectResponse Location. Otherwise None (caller should fall back to default).
@@ -90,12 +89,12 @@ PAGE_ITEM_COUNT = 30
@router.get('/list', response_model=ModelAccessListResponse) # do NOT use "/" as path, conflicts with main.py
async def get_models(
query: Optional[str] = None,
view_option: Optional[str] = None,
tag: Optional[str] = None,
order_by: Optional[str] = None,
direction: Optional[str] = None,
page: Optional[int] = 1,
query: str | None = None,
view_option: str | None = None,
tag: str | None = None,
order_by: str | None = None,
direction: str | None = None,
page: int | None = 1,
user=Depends(get_verified_user),
db: AsyncSession = Depends(get_async_session),
):
@@ -192,7 +191,7 @@ async def get_model_tags(user=Depends(get_verified_user), db: AsyncSession = Dep
############################
@router.post('/create', response_model=Optional[ModelModel])
@router.post('/create', response_model=ModelModel | None)
async def create_new_model(
request: Request,
form_data: ModelForm,
@@ -409,7 +408,7 @@ class ModelIdForm(BaseModel):
# Note: We're not using the typical url path param here, but instead using a query parameter to allow '/' in the id
@router.get('/model', response_model=Optional[ModelAccessResponse])
@router.get('/model', response_model=ModelAccessResponse | None)
async def get_model_by_id(id: str, user=Depends(get_verified_user), db: AsyncSession = Depends(get_async_session)):
model = await Models.get_model_by_id(id, db=db)
if model:
@@ -537,7 +536,7 @@ async def get_model_profile_image(
############################
@router.post('/model/toggle', response_model=Optional[ModelResponse])
@router.post('/model/toggle', response_model=ModelResponse | None)
async def toggle_model_by_id(id: str, user=Depends(get_verified_user), db: AsyncSession = Depends(get_async_session)):
model = await Models.get_model_by_id(id, db=db)
if model:
@@ -578,7 +577,7 @@ async def toggle_model_by_id(id: str, user=Depends(get_verified_user), db: Async
############################
@router.post('/model/update', response_model=Optional[ModelModel])
@router.post('/model/update', response_model=ModelModel | None)
async def update_model_by_id(
request: Request,
form_data: ModelForm,
@@ -627,11 +626,11 @@ async def update_model_by_id(
class ModelAccessGrantsForm(BaseModel):
id: str
name: Optional[str] = None
name: str | None = None
access_grants: list[dict]
@router.post('/model/access/update', response_model=Optional[ModelModel])
@router.post('/model/access/update', response_model=ModelModel | None)
async def update_model_access_by_id(
request: Request,
form_data: ModelAccessGrantsForm,