From ee280743902e4ca403eff54f59957e5ca9831f12 Mon Sep 17 00:00:00 2001 From: Sven Weidenmann <93180912+AlsoTheZv3n@users.noreply.github.com> Date: Thu, 21 May 2026 21:42:20 +0200 Subject: [PATCH] refactor: add missing @override decorator to Moderation subclasses (#36492) --- api/core/moderation/api/api.py | 5 ++++- api/core/moderation/keywords/keywords.py | 5 ++++- api/core/moderation/openai_moderation/openai_moderation.py | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/api/core/moderation/api/api.py b/api/core/moderation/api/api.py index 28165592fc..ec9a1906f8 100644 --- a/api/core/moderation/api/api.py +++ b/api/core/moderation/api/api.py @@ -1,4 +1,4 @@ -from typing import Any +from typing import Any, override from pydantic import BaseModel, Field from sqlalchemy import select @@ -25,6 +25,7 @@ class ApiModeration(Moderation): name: str = "api" @classmethod + @override def validate_config(cls, tenant_id: str, config: dict[str, Any]): """ Validate the incoming form config data. @@ -43,6 +44,7 @@ class ApiModeration(Moderation): if not extension: raise ValueError("API-based Extension not found. Please check it again.") + @override def moderation_for_inputs(self, inputs: dict[str, Any], query: str = "") -> ModerationInputsResult: flagged = False preset_response = "" @@ -59,6 +61,7 @@ class ApiModeration(Moderation): flagged=flagged, action=ModerationAction.DIRECT_OUTPUT, preset_response=preset_response ) + @override def moderation_for_outputs(self, text: str) -> ModerationOutputsResult: flagged = False preset_response = "" diff --git a/api/core/moderation/keywords/keywords.py b/api/core/moderation/keywords/keywords.py index 7d80d3a53c..339574556d 100644 --- a/api/core/moderation/keywords/keywords.py +++ b/api/core/moderation/keywords/keywords.py @@ -1,5 +1,5 @@ from collections.abc import Sequence -from typing import Any +from typing import Any, override from core.moderation.base import Moderation, ModerationAction, ModerationInputsResult, ModerationOutputsResult @@ -8,6 +8,7 @@ class KeywordsModeration(Moderation): name: str = "keywords" @classmethod + @override def validate_config(cls, tenant_id: str, config: dict[str, Any]): """ Validate the incoming form config data. @@ -28,6 +29,7 @@ class KeywordsModeration(Moderation): if len(keywords_row_len) > 100: raise ValueError("the number of rows for the keywords must be less than 100") + @override def moderation_for_inputs(self, inputs: dict[str, Any], query: str = "") -> ModerationInputsResult: flagged = False preset_response = "" @@ -49,6 +51,7 @@ class KeywordsModeration(Moderation): flagged=flagged, action=ModerationAction.DIRECT_OUTPUT, preset_response=preset_response ) + @override def moderation_for_outputs(self, text: str) -> ModerationOutputsResult: flagged = False preset_response = "" diff --git a/api/core/moderation/openai_moderation/openai_moderation.py b/api/core/moderation/openai_moderation/openai_moderation.py index 6e6e94502c..4b7a08eb27 100644 --- a/api/core/moderation/openai_moderation/openai_moderation.py +++ b/api/core/moderation/openai_moderation/openai_moderation.py @@ -1,4 +1,4 @@ -from typing import Any +from typing import Any, override from core.model_manager import ModelManager from core.moderation.base import Moderation, ModerationAction, ModerationInputsResult, ModerationOutputsResult @@ -9,6 +9,7 @@ class OpenAIModeration(Moderation): name: str = "openai_moderation" @classmethod + @override def validate_config(cls, tenant_id: str, config: dict[str, Any]): """ Validate the incoming form config data. @@ -19,6 +20,7 @@ class OpenAIModeration(Moderation): """ cls._validate_inputs_and_outputs_config(config, True) + @override def moderation_for_inputs(self, inputs: dict[str, Any], query: str = "") -> ModerationInputsResult: flagged = False preset_response = "" @@ -36,6 +38,7 @@ class OpenAIModeration(Moderation): flagged=flagged, action=ModerationAction.DIRECT_OUTPUT, preset_response=preset_response ) + @override def moderation_for_outputs(self, text: str) -> ModerationOutputsResult: flagged = False preset_response = ""