refactor: replace bare dict with typed annotations in core plugin module (#35096)

This commit is contained in:
dataCenter430 2026-04-13 12:23:21 -07:00 committed by GitHub
parent a12d740a5d
commit 83b242be7b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 26 additions and 13 deletions

View File

@ -1,4 +1,5 @@
from datetime import datetime from datetime import datetime
from typing import Any
from pydantic import BaseModel, Field, model_validator from pydantic import BaseModel, Field, model_validator
@ -31,7 +32,7 @@ class EndpointEntity(BasePluginEntity):
entity of an endpoint entity of an endpoint
""" """
settings: dict settings: dict[str, Any]
tenant_id: str tenant_id: str
plugin_id: str plugin_id: str
expired_at: datetime expired_at: datetime

View File

@ -1,3 +1,5 @@
from typing import Any
from graphon.model_runtime.entities.provider_entities import ProviderEntity from graphon.model_runtime.entities.provider_entities import ProviderEntity
from pydantic import BaseModel, Field, computed_field, model_validator from pydantic import BaseModel, Field, computed_field, model_validator
@ -40,7 +42,7 @@ class MarketplacePluginDeclaration(BaseModel):
@model_validator(mode="before") @model_validator(mode="before")
@classmethod @classmethod
def transform_declaration(cls, data: dict): def transform_declaration(cls, data: dict[str, Any]) -> dict[str, Any]:
if "endpoint" in data and not data["endpoint"]: if "endpoint" in data and not data["endpoint"]:
del data["endpoint"] del data["endpoint"]
if "model" in data and not data["model"]: if "model" in data and not data["model"]:

View File

@ -123,7 +123,7 @@ class PluginDeclaration(BaseModel):
@model_validator(mode="before") @model_validator(mode="before")
@classmethod @classmethod
def validate_category(cls, values: dict): def validate_category(cls, values: dict[str, Any]) -> dict[str, Any]:
# auto detect category # auto detect category
if values.get("tool"): if values.get("tool"):
values["category"] = PluginCategory.Tool values["category"] = PluginCategory.Tool

View File

@ -73,7 +73,7 @@ class PluginBasicBooleanResponse(BaseModel):
""" """
result: bool result: bool
credentials: dict | None = None credentials: dict[str, Any] | None = None
class PluginModelSchemaEntity(BaseModel): class PluginModelSchemaEntity(BaseModel):

View File

@ -49,7 +49,7 @@ class RequestInvokeTool(BaseModel):
tool_type: Literal["builtin", "workflow", "api", "mcp"] tool_type: Literal["builtin", "workflow", "api", "mcp"]
provider: str provider: str
tool: str tool: str
tool_parameters: dict tool_parameters: dict[str, Any]
credential_id: str | None = None credential_id: str | None = None
@ -209,7 +209,7 @@ class RequestInvokeEncrypt(BaseModel):
opt: Literal["encrypt", "decrypt", "clear"] opt: Literal["encrypt", "decrypt", "clear"]
namespace: Literal["endpoint"] namespace: Literal["endpoint"]
identity: str identity: str
data: dict = Field(default_factory=dict) data: dict[str, Any] = Field(default_factory=dict)
config: list[BasicProviderConfig] = Field(default_factory=list) config: list[BasicProviderConfig] = Field(default_factory=list)

View File

@ -26,7 +26,7 @@ class PluginDatasourceManager(BasePluginClient):
Fetch datasource providers for the given tenant. Fetch datasource providers for the given tenant.
""" """
def transformer(json_response: dict[str, Any]) -> dict: def transformer(json_response: dict[str, Any]) -> dict[str, Any]:
if json_response.get("data"): if json_response.get("data"):
for provider in json_response.get("data", []): for provider in json_response.get("data", []):
declaration = provider.get("declaration", {}) or {} declaration = provider.get("declaration", {}) or {}
@ -68,7 +68,7 @@ class PluginDatasourceManager(BasePluginClient):
Fetch datasource providers for the given tenant. Fetch datasource providers for the given tenant.
""" """
def transformer(json_response: dict[str, Any]) -> dict: def transformer(json_response: dict[str, Any]) -> dict[str, Any]:
if json_response.get("data"): if json_response.get("data"):
for provider in json_response.get("data", []): for provider in json_response.get("data", []):
declaration = provider.get("declaration", {}) or {} declaration = provider.get("declaration", {}) or {}
@ -110,7 +110,7 @@ class PluginDatasourceManager(BasePluginClient):
tool_provider_id = DatasourceProviderID(provider_id) tool_provider_id = DatasourceProviderID(provider_id)
def transformer(json_response: dict[str, Any]) -> dict: def transformer(json_response: dict[str, Any]) -> dict[str, Any]:
data = json_response.get("data") data = json_response.get("data")
if data: if data:
for datasource in data.get("declaration", {}).get("datasources", []): for datasource in data.get("declaration", {}).get("datasources", []):

View File

@ -1,3 +1,5 @@
from typing import Any
from core.plugin.entities.endpoint import EndpointEntityWithInstance from core.plugin.entities.endpoint import EndpointEntityWithInstance
from core.plugin.impl.base import BasePluginClient from core.plugin.impl.base import BasePluginClient
from core.plugin.impl.exc import PluginDaemonInternalServerError from core.plugin.impl.exc import PluginDaemonInternalServerError
@ -5,7 +7,12 @@ from core.plugin.impl.exc import PluginDaemonInternalServerError
class PluginEndpointClient(BasePluginClient): class PluginEndpointClient(BasePluginClient):
def create_endpoint( def create_endpoint(
self, tenant_id: str, user_id: str, plugin_unique_identifier: str, name: str, settings: dict self,
tenant_id: str,
user_id: str,
plugin_unique_identifier: str,
name: str,
settings: dict[str, Any],
) -> bool: ) -> bool:
""" """
Create an endpoint for the given plugin. Create an endpoint for the given plugin.
@ -49,7 +56,9 @@ class PluginEndpointClient(BasePluginClient):
params={"plugin_id": plugin_id, "page": page, "page_size": page_size}, params={"plugin_id": plugin_id, "page": page, "page_size": page_size},
) )
def update_endpoint(self, tenant_id: str, user_id: str, endpoint_id: str, name: str, settings: dict): def update_endpoint(
self, tenant_id: str, user_id: str, endpoint_id: str, name: str, settings: dict[str, Any]
) -> bool:
""" """
Update the settings of the given endpoint. Update the settings of the given endpoint.
""" """

View File

@ -80,7 +80,7 @@ class PluginModelClient(BasePluginClient):
return None return None
def validate_provider_credentials( def validate_provider_credentials(
self, tenant_id: str, user_id: str | None, plugin_id: str, provider: str, credentials: dict self, tenant_id: str, user_id: str | None, plugin_id: str, provider: str, credentials: dict[str, Any]
) -> bool: ) -> bool:
""" """
validate the credentials of the provider validate the credentials of the provider

View File

@ -1,4 +1,5 @@
from collections.abc import Sequence from collections.abc import Sequence
from typing import Any
from requests import HTTPError from requests import HTTPError
@ -263,7 +264,7 @@ class PluginInstaller(BasePluginClient):
original_plugin_unique_identifier: str, original_plugin_unique_identifier: str,
new_plugin_unique_identifier: str, new_plugin_unique_identifier: str,
source: PluginInstallationSource, source: PluginInstallationSource,
meta: dict, meta: dict[str, Any],
) -> PluginInstallTaskStartResponse: ) -> PluginInstallTaskStartResponse:
""" """
Upgrade a plugin. Upgrade a plugin.