chore: add ast-grep rule to convert Optional[T] to T | None (#25560)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
-LAN-
2025-09-15 13:06:33 +08:00
committed by GitHub
parent 2e44ebe98d
commit bab4975809
394 changed files with 2555 additions and 2792 deletions

View File

@ -1,5 +1,3 @@
from typing import Optional
from pydantic import BaseModel
@ -8,7 +6,7 @@ class I18nObject(BaseModel):
Model class for i18n object.
"""
zh_Hans: Optional[str] = None
zh_Hans: str | None = None
en_US: str
def __init__(self, **data):

View File

@ -3,7 +3,7 @@ from __future__ import annotations
from collections.abc import Mapping, Sequence
from decimal import Decimal
from enum import StrEnum
from typing import Any, Optional, TypedDict, Union
from typing import Any, TypedDict, Union
from pydantic import BaseModel, Field
@ -150,13 +150,13 @@ class LLMResult(BaseModel):
Model class for llm result.
"""
id: Optional[str] = None
id: str | None = None
model: str
prompt_messages: Sequence[PromptMessage] = Field(default_factory=list)
message: AssistantPromptMessage
usage: LLMUsage
system_fingerprint: Optional[str] = None
reasoning_content: Optional[str] = None
system_fingerprint: str | None = None
reasoning_content: str | None = None
class LLMStructuredOutput(BaseModel):
@ -164,7 +164,7 @@ class LLMStructuredOutput(BaseModel):
Model class for llm structured output.
"""
structured_output: Optional[Mapping[str, Any]] = None
structured_output: Mapping[str, Any] | None = None
class LLMResultWithStructuredOutput(LLMResult, LLMStructuredOutput):
@ -180,8 +180,8 @@ class LLMResultChunkDelta(BaseModel):
index: int
message: AssistantPromptMessage
usage: Optional[LLMUsage] = None
finish_reason: Optional[str] = None
usage: LLMUsage | None = None
finish_reason: str | None = None
class LLMResultChunk(BaseModel):
@ -191,7 +191,7 @@ class LLMResultChunk(BaseModel):
model: str
prompt_messages: Sequence[PromptMessage] = Field(default_factory=list)
system_fingerprint: Optional[str] = None
system_fingerprint: str | None = None
delta: LLMResultChunkDelta

View File

@ -1,7 +1,7 @@
from abc import ABC
from collections.abc import Mapping, Sequence
from enum import StrEnum, auto
from typing import Annotated, Any, Literal, Optional, Union
from typing import Annotated, Any, Literal, Union
from pydantic import BaseModel, Field, field_serializer, field_validator
@ -146,8 +146,8 @@ class PromptMessage(ABC, BaseModel):
"""
role: PromptMessageRole
content: Optional[str | list[PromptMessageContentUnionTypes]] = None
name: Optional[str] = None
content: str | list[PromptMessageContentUnionTypes] | None = None
name: str | None = None
def is_empty(self) -> bool:
"""
@ -193,8 +193,8 @@ class PromptMessage(ABC, BaseModel):
@field_serializer("content")
def serialize_content(
self, content: Optional[Union[str, Sequence[PromptMessageContent]]]
) -> Optional[str | list[dict[str, Any] | PromptMessageContent] | Sequence[PromptMessageContent]]:
self, content: Union[str, Sequence[PromptMessageContent]] | None
) -> str | list[dict[str, Any] | PromptMessageContent] | Sequence[PromptMessageContent] | None:
if content is None or isinstance(content, str):
return content
if isinstance(content, list):

View File

@ -1,6 +1,6 @@
from decimal import Decimal
from enum import StrEnum, auto
from typing import Any, Optional
from typing import Any
from pydantic import BaseModel, ConfigDict, model_validator
@ -154,7 +154,7 @@ class ProviderModel(BaseModel):
model: str
label: I18nObject
model_type: ModelType
features: Optional[list[ModelFeature]] = None
features: list[ModelFeature] | None = None
fetch_from: FetchFrom
model_properties: dict[ModelPropertyKey, Any]
deprecated: bool = False
@ -171,15 +171,15 @@ class ParameterRule(BaseModel):
"""
name: str
use_template: Optional[str] = None
use_template: str | None = None
label: I18nObject
type: ParameterType
help: Optional[I18nObject] = None
help: I18nObject | None = None
required: bool = False
default: Optional[Any] = None
min: Optional[float] = None
max: Optional[float] = None
precision: Optional[int] = None
default: Any | None = None
min: float | None = None
max: float | None = None
precision: int | None = None
options: list[str] = []
@ -189,7 +189,7 @@ class PriceConfig(BaseModel):
"""
input: Decimal
output: Optional[Decimal] = None
output: Decimal | None = None
unit: Decimal
currency: str
@ -200,7 +200,7 @@ class AIModelEntity(ProviderModel):
"""
parameter_rules: list[ParameterRule] = []
pricing: Optional[PriceConfig] = None
pricing: PriceConfig | None = None
@model_validator(mode="after")
def validate_model(self):

View File

@ -1,6 +1,5 @@
from collections.abc import Sequence
from enum import Enum, StrEnum, auto
from typing import Optional
from pydantic import BaseModel, ConfigDict, Field, field_validator
@ -62,9 +61,9 @@ class CredentialFormSchema(BaseModel):
label: I18nObject
type: FormType
required: bool = True
default: Optional[str] = None
options: Optional[list[FormOption]] = None
placeholder: Optional[I18nObject] = None
default: str | None = None
options: list[FormOption] | None = None
placeholder: I18nObject | None = None
max_length: int = 0
show_on: list[FormShowOnObject] = []
@ -79,7 +78,7 @@ class ProviderCredentialSchema(BaseModel):
class FieldModelSchema(BaseModel):
label: I18nObject
placeholder: Optional[I18nObject] = None
placeholder: I18nObject | None = None
class ModelCredentialSchema(BaseModel):
@ -98,8 +97,8 @@ class SimpleProviderEntity(BaseModel):
provider: str
label: I18nObject
icon_small: Optional[I18nObject] = None
icon_large: Optional[I18nObject] = None
icon_small: I18nObject | None = None
icon_large: I18nObject | None = None
supported_model_types: Sequence[ModelType]
models: list[AIModelEntity] = []
@ -120,24 +119,24 @@ class ProviderEntity(BaseModel):
provider: str
label: I18nObject
description: Optional[I18nObject] = None
icon_small: Optional[I18nObject] = None
icon_large: Optional[I18nObject] = None
icon_small_dark: Optional[I18nObject] = None
icon_large_dark: Optional[I18nObject] = None
background: Optional[str] = None
help: Optional[ProviderHelpEntity] = None
description: I18nObject | None = None
icon_small: I18nObject | None = None
icon_large: I18nObject | None = None
icon_small_dark: I18nObject | None = None
icon_large_dark: I18nObject | None = None
background: str | None = None
help: ProviderHelpEntity | None = None
supported_model_types: Sequence[ModelType]
configurate_methods: list[ConfigurateMethod]
models: list[AIModelEntity] = Field(default_factory=list)
provider_credential_schema: Optional[ProviderCredentialSchema] = None
model_credential_schema: Optional[ModelCredentialSchema] = None
provider_credential_schema: ProviderCredentialSchema | None = None
model_credential_schema: ModelCredentialSchema | None = None
# pydantic configs
model_config = ConfigDict(protected_namespaces=())
# position from plugin _position.yaml
position: Optional[dict[str, list[str]]] = {}
position: dict[str, list[str]] | None = {}
@field_validator("models", mode="before")
@classmethod