git: 361d91e43dba - main - www/py-flask-restx: update to 1.3.0

From: Jan Beich <jbeich_at_FreeBSD.org>
Date: Sun, 10 Dec 2023 18:39:21 UTC
The branch main has been updated by jbeich:

URL: https://cgit.FreeBSD.org/ports/commit/?id=361d91e43dbad4e4b881e8a62f93ed1b9ed191e5

commit 361d91e43dbad4e4b881e8a62f93ed1b9ed191e5
Author:     Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2023-12-10 14:48:32 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2023-12-10 18:38:50 +0000

    www/py-flask-restx: update to 1.3.0
    
    Changes:        https://github.com/python-restx/flask-restx/releases/tag/1.3.0
    Reported by:    GitHub (watch releases)
---
 www/py-flask-restx/Makefile           |   3 +-
 www/py-flask-restx/distinfo           |   6 +-
 www/py-flask-restx/files/patch-flask3 | 127 ----------------------------------
 3 files changed, 4 insertions(+), 132 deletions(-)

diff --git a/www/py-flask-restx/Makefile b/www/py-flask-restx/Makefile
index 17e095205d63..3e7b4fc9f51c 100644
--- a/www/py-flask-restx/Makefile
+++ b/www/py-flask-restx/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	flask-restx
-PORTVERSION=	1.2.0
-PORTREVISION=	1
+PORTVERSION=	1.3.0
 CATEGORIES=	www python
 MASTER_SITES=	PYPI
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-flask-restx/distinfo b/www/py-flask-restx/distinfo
index 2580e6955d02..423ad8667b77 100644
--- a/www/py-flask-restx/distinfo
+++ b/www/py-flask-restx/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1697977240
-SHA256 (flask-restx-1.2.0.tar.gz) = 9a5338b108c57fbed1d24d5d53fe98442b2be7ffa2ff3291305af7a613ce6fc0
-SIZE (flask-restx-1.2.0.tar.gz) = 2813317
+TIMESTAMP = 1702219712
+SHA256 (flask-restx-1.3.0.tar.gz) = 4f3d3fa7b6191fcc715b18c201a12cd875176f92ba4acc61626ccfd571ee1728
+SIZE (flask-restx-1.3.0.tar.gz) = 2814072
diff --git a/www/py-flask-restx/files/patch-flask3 b/www/py-flask-restx/files/patch-flask3
deleted file mode 100644
index 22887f79e25f..000000000000
--- a/www/py-flask-restx/files/patch-flask3
+++ /dev/null
@@ -1,127 +0,0 @@
-https://github.com/python-restx/flask-restx/pull/572
-
---- flask_restx/api.py.orig	2023-10-22 12:20:40 UTC
-+++ flask_restx/api.py
-@@ -14,10 +14,6 @@ from flask import make_response as original_flask_make
- 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 .swagger import Swagger
- 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 @@ class Api(object):
-             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"))
---- flask_restx/utils.py.orig	2023-10-22 12:20:40 UTC
-+++ flask_restx/utils.py
-@@ -1,4 +1,6 @@ import re
- import re
-+import warnings
-+import typing
- 
- from collections import OrderedDict
- from copy import deepcopy
-@@ -17,9 +19,14 @@ __all__ = (
-     "not_none",
-     "not_none_sorted",
-     "unpack",
-+    "import_check_view_func",
- )
- 
- 
-+class FlaskCompatibilityWarning(DeprecationWarning):
-+    pass
-+
-+
- def merge(first, second):
-     """
-     Recursively merges two dictionaries.
-@@ -118,3 +125,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
---- tests/test_utils.py.orig	2023-10-22 12:20:40 UTC
-+++ tests/test_utils.py
-@@ -98,3 +98,17 @@ class UnpackTest(object):
-     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)
-+
-+    def test_name(self):
-+        assert utils.to_view_name(self.test_none) == self.test_none.__name__
-+
-+
-+class ImportCheckViewFuncTest(object):
-+    def test_callable(self):
-+        assert callable(utils.import_check_view_func())