From 23d100c5e9d034624d71ad74b42e628a69483fa0 Mon Sep 17 00:00:00 2001 From: David Roman Date: Mon, 1 Sep 2025 11:19:32 +0200 Subject: [PATCH] dev-python/flask-restx: remove unused patches Signed-off-by: David Roman --- .../files/flask-restx-fix-flask-compat.patch | 147 ------------------ 1 file changed, 147 deletions(-) delete mode 100644 dev-python/flask-restx/files/flask-restx-fix-flask-compat.patch diff --git a/dev-python/flask-restx/files/flask-restx-fix-flask-compat.patch b/dev-python/flask-restx/files/flask-restx-fix-flask-compat.patch deleted file mode 100644 index 759bb5f63e..0000000000 --- a/dev-python/flask-restx/files/flask-restx-fix-flask-compat.patch +++ /dev/null @@ -1,147 +0,0 @@ -diff --git a/flask_restx/api.py b/flask_restx/api.py -index 5996dd59..bd0413dd 100644 ---- a/flask_restx/api.py -+++ b/flask_restx/api.py -@@ -14,10 +14,6 @@ - from flask import url_for, request, current_app - from flask import make_response as original_flask_make_response - --try: -- from flask.helpers import _endpoint_from_view_func --except ImportError: -- from flask.scaffold import _endpoint_from_view_func - from flask.signals import got_request_exception - - from jsonschema import RefResolver -@@ -45,10 +41,13 @@ - from .postman import PostmanCollectionV1 - from .resource import Resource - from .swagger import Swagger --from .utils import default_id, camel_to_dash, unpack -+from .utils import default_id, camel_to_dash, unpack, import_check_view_func - from .representations import output_json - from ._http import HTTPStatus - -+endpoint_from_view_func = import_check_view_func() -+ -+ - RE_RULES = re.compile("(<.*>)") - - # List headers that should never be handled by Flask-RESTX -@@ -850,7 +849,7 @@ def _blueprint_setup_add_url_rule_patch( - rule = blueprint_setup.url_prefix + rule - options.setdefault("subdomain", blueprint_setup.subdomain) - if endpoint is None: -- endpoint = _endpoint_from_view_func(view_func) -+ endpoint = endpoint_from_view_func(view_func) - defaults = blueprint_setup.url_defaults - if "defaults" in options: - defaults = dict(defaults, **options.pop("defaults")) -diff --git a/flask_restx/utils.py b/flask_restx/utils.py -index 809a29b3..35dec2ae 100644 ---- a/flask_restx/utils.py -+++ b/flask_restx/utils.py -@@ -1,4 +1,6 @@ - import re -+import warnings -+import typing - - from collections import OrderedDict - from copy import deepcopy -@@ -20,6 +22,10 @@ - ) - - -+class FlaskCompatibilityWarning(DeprecationWarning): -+ pass -+ -+ - def merge(first, second): - """ - Recursively merges two dictionaries. -@@ -118,3 +124,43 @@ def unpack(response, default_code=HTTPStatus.OK): - return data, code or default_code, headers - else: - raise ValueError("Too many response values") -+ -+ -+def to_view_name(view_func: typing.Callable) -> str: -+ """Helper that returns the default endpoint for a given -+ function. This always is the function name. -+ -+ Note: copy of simple flask internal helper -+ """ -+ assert view_func is not None, "expected view func if endpoint is not provided." -+ return view_func.__name__ -+ -+ -+def import_check_view_func(): -+ """ -+ Resolve import flask _endpoint_from_view_func. -+ -+ Show warning if function cannot be found and provide copy of last known implementation. -+ -+ Note: This helper method exists because reoccurring problem with flask function, but -+ actual method body remaining the same in each flask version. -+ """ -+ import importlib.metadata -+ -+ flask_version = importlib.metadata.version("flask").split(".") -+ try: -+ if flask_version[0] == "1": -+ from flask.helpers import _endpoint_from_view_func -+ elif flask_version[0] == "2": -+ from flask.scaffold import _endpoint_from_view_func -+ elif flask_version[0] == "3": -+ from flask.sansio.scaffold import _endpoint_from_view_func -+ else: -+ warnings.simplefilter("once", FlaskCompatibilityWarning) -+ _endpoint_from_view_func = None -+ except ImportError: -+ warnings.simplefilter("once", FlaskCompatibilityWarning) -+ _endpoint_from_view_func = None -+ if _endpoint_from_view_func is None: -+ _endpoint_from_view_func = to_view_name -+ return _endpoint_from_view_func -diff --git a/tests/test_utils.py b/tests/test_utils.py -index d98d68d0..fe3a1adb 100644 ---- a/tests/test_utils.py -+++ b/tests/test_utils.py -@@ -98,3 +98,14 @@ def test_value_headers_default_code(self): - def test_too_many_values(self): - with pytest.raises(ValueError): - utils.unpack((None, None, None, None)) -+ -+ -+class ToViewNameTest(object): -+ def test_none(self): -+ with pytest.raises(AssertionError): -+ _ = utils.to_view_name(None) -+ -+ -+class ImportCheckViewFuncTest(object): -+ def test_callable(self): -+ assert callable(utils.import_check_view_func()) - -From 13ac54e4ba513c01ec8e4a23b4e88b7b555cf2f1 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Trval?= -Date: Fri, 6 Oct 2023 15:46:13 +0200 -Subject: [PATCH 2/2] modify: include new import_check_view_func in - utils.__all__ to keep nice static checks - ---- - flask_restx/utils.py | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/flask_restx/utils.py b/flask_restx/utils.py -index 35dec2ae..367527a5 100644 ---- a/flask_restx/utils.py -+++ b/flask_restx/utils.py -@@ -19,6 +19,7 @@ - "not_none", - "not_none_sorted", - "unpack", -+ "import_check_view_func", - ) - -