From b8d8dddd5a06efd1816cd496d4d92b1476aafd00 Mon Sep 17 00:00:00 2001 From: Asuka Minato Date: Mon, 1 Sep 2025 11:04:24 +0900 Subject: [PATCH] example of decorator typing (#24857) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- api/controllers/inner_api/wraps.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/api/controllers/inner_api/wraps.py b/api/controllers/inner_api/wraps.py index c5aa318f5..de4f1da80 100644 --- a/api/controllers/inner_api/wraps.py +++ b/api/controllers/inner_api/wraps.py @@ -1,8 +1,12 @@ from base64 import b64encode +from collections.abc import Callable from functools import wraps from hashlib import sha1 from hmac import new as hmac_new +from typing import ParamSpec, TypeVar +P = ParamSpec("P") +R = TypeVar("R") from flask import abort, request from configs import dify_config @@ -10,9 +14,9 @@ from extensions.ext_database import db from models.model import EndUser -def billing_inner_api_only(view): +def billing_inner_api_only(view: Callable[P, R]): @wraps(view) - def decorated(*args, **kwargs): + def decorated(*args: P.args, **kwargs: P.kwargs): if not dify_config.INNER_API: abort(404) @@ -26,9 +30,9 @@ def billing_inner_api_only(view): return decorated -def enterprise_inner_api_only(view): +def enterprise_inner_api_only(view: Callable[P, R]): @wraps(view) - def decorated(*args, **kwargs): + def decorated(*args: P.args, **kwargs: P.kwargs): if not dify_config.INNER_API: abort(404) @@ -78,9 +82,9 @@ def enterprise_inner_api_user_auth(view): return decorated -def plugin_inner_api_only(view): +def plugin_inner_api_only(view: Callable[P, R]): @wraps(view) - def decorated(*args, **kwargs): + def decorated(*args: P.args, **kwargs: P.kwargs): if not dify_config.PLUGIN_DAEMON_KEY: abort(404)