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

+38 -44
View File
@@ -1,46 +1,40 @@
import logging
from typing import Optional
from sqlalchemy.ext.asyncio import AsyncSession
from __future__ import annotations
import base64
import io
import logging
from typing import Optional
from fastapi import APIRouter, Depends, HTTPException, Request, status
from fastapi.responses import Response, StreamingResponse, FileResponse
from pydantic import BaseModel, ConfigDict
from open_webui.models.auths import Auths
from open_webui.models.oauth_sessions import OAuthSessions
from open_webui.models.groups import Groups
from open_webui.models.users import (
UserModel,
UserGroupIdsModel,
UserGroupIdsListResponse,
UserInfoResponse,
UserInfoListResponse,
UserRoleUpdateForm,
UserStatus,
Users,
UserSettings,
UserUpdateForm,
)
from fastapi.responses import FileResponse, Response, StreamingResponse
from open_webui.constants import ERROR_MESSAGES
from open_webui.env import ENABLE_PROFILE_IMAGE_URL_FORWARDING, PROFILE_IMAGE_ALLOWED_MIME_TYPES, STATIC_DIR
from open_webui.internal.db import get_async_session
from open_webui.models.auths import Auths
from open_webui.models.groups import Groups
from open_webui.models.oauth_sessions import OAuthSessions
from open_webui.models.users import (
UserGroupIdsListResponse,
UserGroupIdsModel,
UserInfoListResponse,
UserInfoResponse,
UserModel,
UserRoleUpdateForm,
Users,
UserSettings,
UserStatus,
UserUpdateForm,
)
from open_webui.socket.main import disconnect_user_sessions
from open_webui.utils.access_control import get_permissions, has_permission
from open_webui.utils.auth import (
get_admin_user,
get_password_hash,
get_verified_user,
validate_password,
)
from open_webui.utils.access_control import get_permissions, has_permission
from open_webui.socket.main import disconnect_user_sessions
from pydantic import BaseModel, ConfigDict
from sqlalchemy.ext.asyncio import AsyncSession
log = logging.getLogger(__name__)
@@ -59,10 +53,10 @@ PAGE_ITEM_COUNT = 30
@router.get('/', response_model=UserGroupIdsListResponse)
async def get_users(
query: Optional[str] = None,
order_by: Optional[str] = None,
direction: Optional[str] = None,
page: Optional[int] = 1,
query: str | None = None,
order_by: str | None = None,
direction: str | None = None,
page: int | None = 1,
user=Depends(get_admin_user),
db: AsyncSession = Depends(get_async_session),
):
@@ -114,10 +108,10 @@ async def get_all_users(
@router.get('/search', response_model=UserInfoListResponse)
async def search_users(
query: Optional[str] = None,
order_by: Optional[str] = None,
direction: Optional[str] = None,
page: Optional[int] = 1,
query: 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),
):
@@ -275,7 +269,7 @@ async def update_default_user_permissions(request: Request, form_data: UserPermi
############################
@router.get('/user/settings', response_model=Optional[UserSettings])
@router.get('/user/settings', response_model=UserSettings | None)
async def get_user_settings_by_session_user(
user=Depends(get_verified_user), db: AsyncSession = Depends(get_async_session)
):
@@ -372,7 +366,7 @@ async def update_user_status_by_session_user(
############################
@router.get('/user/info', response_model=Optional[dict])
@router.get('/user/info', response_model=dict | None)
async def get_user_info_by_session_user(user=Depends(get_verified_user), db: AsyncSession = Depends(get_async_session)):
# user already fetched by get_verified_user — no need to refetch
return user.info
@@ -383,7 +377,7 @@ async def get_user_info_by_session_user(user=Depends(get_verified_user), db: Asy
############################
@router.post('/user/info/update', response_model=Optional[dict])
@router.post('/user/info/update', response_model=dict | None)
async def update_user_info_by_session_user(
form_data: dict, user=Depends(get_verified_user), db: AsyncSession = Depends(get_async_session)
):
@@ -408,8 +402,8 @@ async def update_user_info_by_session_user(
class UserActiveResponse(UserStatus):
name: str
profile_image_url: Optional[str] = None
groups: Optional[list] = []
profile_image_url: str | None = None
groups: list | None = []
is_active: bool
model_config = ConfigDict(extra='allow')
@@ -536,7 +530,7 @@ async def get_user_active_status_by_id(
############################
@router.post('/{user_id}/update', response_model=Optional[UserModel])
@router.post('/{user_id}/update', response_model=UserModel | None)
async def update_user_by_id(
user_id: str,
form_data: UserUpdateForm,