refac: modernize type annotations (PEP 604 / PEP 585)
This commit is contained in:
1 parent
a59c967d7e
commit
6d0295588e
197 files changed
+3265
-3488
No files matched your search
@@ -1,42 +1,40 @@
|
||||
from typing import List, Optional
|
||||
from pydantic import BaseModel
|
||||
from fastapi import APIRouter, Depends, HTTPException, status, Request, Query
|
||||
from fastapi.responses import StreamingResponse
|
||||
from __future__ import annotations
|
||||
|
||||
import logging
|
||||
import io
|
||||
import logging
|
||||
import zipfile
|
||||
from typing import List, Optional
|
||||
from urllib.parse import quote
|
||||
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from fastapi import APIRouter, Depends, HTTPException, Query, Request, status
|
||||
from fastapi.responses import StreamingResponse
|
||||
from open_webui.config import BYPASS_ADMIN_ACCESS_CONTROL
|
||||
from open_webui.constants import ERROR_MESSAGES
|
||||
from open_webui.internal.db import get_async_session
|
||||
from open_webui.models.access_grants import AccessGrants
|
||||
from open_webui.models.files import FileMetadataResponse, FileModel, Files
|
||||
from open_webui.models.groups import Groups
|
||||
from open_webui.models.knowledge import (
|
||||
KnowledgeFileListResponse,
|
||||
Knowledges,
|
||||
KnowledgeForm,
|
||||
KnowledgeResponse,
|
||||
Knowledges,
|
||||
KnowledgeUserResponse,
|
||||
)
|
||||
from open_webui.models.files import Files, FileModel, FileMetadataResponse
|
||||
from open_webui.models.models import ModelForm, Models
|
||||
from open_webui.retrieval.vector.async_client import ASYNC_VECTOR_DB_CLIENT
|
||||
from open_webui.routers.retrieval import (
|
||||
process_file,
|
||||
ProcessFileForm,
|
||||
process_files_batch,
|
||||
BatchProcessFilesForm,
|
||||
ProcessFileForm,
|
||||
process_file,
|
||||
process_files_batch,
|
||||
)
|
||||
from open_webui.storage.provider import Storage
|
||||
|
||||
from open_webui.constants import ERROR_MESSAGES
|
||||
from open_webui.utils.auth import get_verified_user, get_admin_user
|
||||
from open_webui.utils.access_control import has_permission, filter_allowed_access_grants
|
||||
from open_webui.utils.access_control import filter_allowed_access_grants, has_permission
|
||||
from open_webui.utils.access_control.files import has_access_to_file
|
||||
from open_webui.models.access_grants import AccessGrants
|
||||
|
||||
|
||||
from open_webui.config import BYPASS_ADMIN_ACCESS_CONTROL
|
||||
from open_webui.models.models import Models, ModelForm
|
||||
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__)
|
||||
|
||||
@@ -100,7 +98,7 @@ async def remove_knowledge_base_metadata_embedding(knowledge_base_id: str) -> bo
|
||||
|
||||
|
||||
class KnowledgeAccessResponse(KnowledgeUserResponse):
|
||||
write_access: Optional[bool] = False
|
||||
write_access: bool | None = False
|
||||
|
||||
|
||||
class KnowledgeAccessListResponse(BaseModel):
|
||||
@@ -110,7 +108,7 @@ class KnowledgeAccessListResponse(BaseModel):
|
||||
|
||||
@router.get('/', response_model=KnowledgeAccessListResponse)
|
||||
async def get_knowledge_bases(
|
||||
page: Optional[int] = 1,
|
||||
page: int | None = 1,
|
||||
user=Depends(get_verified_user),
|
||||
db: AsyncSession = Depends(get_async_session),
|
||||
):
|
||||
@@ -159,9 +157,9 @@ async def get_knowledge_bases(
|
||||
|
||||
@router.get('/search', response_model=KnowledgeAccessListResponse)
|
||||
async def search_knowledge_bases(
|
||||
query: Optional[str] = None,
|
||||
view_option: Optional[str] = None,
|
||||
page: Optional[int] = 1,
|
||||
query: str | None = None,
|
||||
view_option: str | None = None,
|
||||
page: int | None = 1,
|
||||
user=Depends(get_verified_user),
|
||||
db: AsyncSession = Depends(get_async_session),
|
||||
):
|
||||
@@ -215,8 +213,8 @@ async def search_knowledge_bases(
|
||||
|
||||
@router.get('/search/files', response_model=KnowledgeFileListResponse)
|
||||
async def search_knowledge_files(
|
||||
query: Optional[str] = None,
|
||||
page: Optional[int] = 1,
|
||||
query: str | None = None,
|
||||
page: int | None = 1,
|
||||
user=Depends(get_verified_user),
|
||||
db: AsyncSession = Depends(get_async_session),
|
||||
):
|
||||
@@ -242,7 +240,7 @@ async def search_knowledge_files(
|
||||
############################
|
||||
|
||||
|
||||
@router.post('/create', response_model=Optional[KnowledgeResponse])
|
||||
@router.post('/create', response_model=KnowledgeResponse | None)
|
||||
async def create_new_knowledge(
|
||||
request: Request,
|
||||
form_data: KnowledgeForm,
|
||||
@@ -380,11 +378,11 @@ async def reindex_knowledge_base_metadata_embeddings(
|
||||
|
||||
|
||||
class KnowledgeFilesResponse(KnowledgeResponse):
|
||||
files: Optional[list[FileMetadataResponse]] = None
|
||||
write_access: Optional[bool] = False
|
||||
files: list[FileMetadataResponse | None] = None
|
||||
write_access: bool | None = False
|
||||
|
||||
|
||||
@router.get('/{id}', response_model=Optional[KnowledgeFilesResponse])
|
||||
@router.get('/{id}', response_model=KnowledgeFilesResponse | None)
|
||||
async def get_knowledge_by_id(id: str, user=Depends(get_verified_user), db: AsyncSession = Depends(get_async_session)):
|
||||
knowledge = await Knowledges.get_knowledge_by_id(id=id, db=db)
|
||||
|
||||
@@ -431,7 +429,7 @@ async def get_knowledge_by_id(id: str, user=Depends(get_verified_user), db: Asyn
|
||||
############################
|
||||
|
||||
|
||||
@router.post('/{id}/update', response_model=Optional[KnowledgeFilesResponse])
|
||||
@router.post('/{id}/update', response_model=KnowledgeFilesResponse | None)
|
||||
async def update_knowledge_by_id(
|
||||
request: Request,
|
||||
id: str,
|
||||
@@ -501,7 +499,7 @@ class KnowledgeAccessGrantsForm(BaseModel):
|
||||
access_grants: list[dict]
|
||||
|
||||
|
||||
@router.post('/{id}/access/update', response_model=Optional[KnowledgeFilesResponse])
|
||||
@router.post('/{id}/access/update', response_model=KnowledgeFilesResponse | None)
|
||||
async def update_knowledge_access_by_id(
|
||||
request: Request,
|
||||
id: str,
|
||||
@@ -556,11 +554,11 @@ async def update_knowledge_access_by_id(
|
||||
@router.get('/{id}/files', response_model=KnowledgeFileListResponse)
|
||||
async def get_knowledge_files_by_id(
|
||||
id: str,
|
||||
query: Optional[str] = None,
|
||||
view_option: 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,
|
||||
order_by: str | None = None,
|
||||
direction: str | None = None,
|
||||
page: int | None = 1,
|
||||
user=Depends(get_verified_user),
|
||||
db: AsyncSession = Depends(get_async_session),
|
||||
):
|
||||
@@ -614,7 +612,7 @@ class KnowledgeFileIdForm(BaseModel):
|
||||
file_id: str
|
||||
|
||||
|
||||
@router.post('/{id}/file/add', response_model=Optional[KnowledgeFilesResponse])
|
||||
@router.post('/{id}/file/add', response_model=KnowledgeFilesResponse | None)
|
||||
async def add_file_to_knowledge_by_id(
|
||||
request: Request,
|
||||
id: str,
|
||||
@@ -695,7 +693,7 @@ async def add_file_to_knowledge_by_id(
|
||||
)
|
||||
|
||||
|
||||
@router.post('/{id}/file/update', response_model=Optional[KnowledgeFilesResponse])
|
||||
@router.post('/{id}/file/update', response_model=KnowledgeFilesResponse | None)
|
||||
async def update_file_from_knowledge_by_id(
|
||||
request: Request,
|
||||
id: str,
|
||||
@@ -774,7 +772,7 @@ async def update_file_from_knowledge_by_id(
|
||||
############################
|
||||
|
||||
|
||||
@router.post('/{id}/file/remove', response_model=Optional[KnowledgeFilesResponse])
|
||||
@router.post('/{id}/file/remove', response_model=KnowledgeFilesResponse | None)
|
||||
async def remove_file_from_knowledge_by_id(
|
||||
id: str,
|
||||
form_data: KnowledgeFileIdForm,
|
||||
@@ -936,7 +934,7 @@ async def delete_knowledge_by_id(
|
||||
############################
|
||||
|
||||
|
||||
@router.post('/{id}/reset', response_model=Optional[KnowledgeResponse])
|
||||
@router.post('/{id}/reset', response_model=KnowledgeResponse | None)
|
||||
async def reset_knowledge_by_id(
|
||||
id: str, user=Depends(get_verified_user), db: AsyncSession = Depends(get_async_session)
|
||||
):
|
||||
@@ -978,7 +976,7 @@ async def reset_knowledge_by_id(
|
||||
############################
|
||||
|
||||
|
||||
@router.post('/{id}/files/batch/add', response_model=Optional[KnowledgeFilesResponse])
|
||||
@router.post('/{id}/files/batch/add', response_model=KnowledgeFilesResponse | None)
|
||||
async def add_files_to_knowledge_batch(
|
||||
request: Request,
|
||||
id: str,
|
||||
|
||||
Reference in new issue
Block a user