Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-flask-jwt-extended for openSUSE:Factory checked in at 2024-01-21 23:09:08 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-flask-jwt-extended (Old) and /work/SRC/openSUSE:Factory/.python-flask-jwt-extended.new.16006 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-flask-jwt-extended" Sun Jan 21 23:09:08 2024 rev:4 rq:1140113 version:4.6.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-flask-jwt-extended/python-flask-jwt-extended.changes 2023-06-19 22:50:44.341624213 +0200 +++ /work/SRC/openSUSE:Factory/.python-flask-jwt-extended.new.16006/python-flask-jwt-extended.changes 2024-01-21 23:09:22.407730124 +0100 @@ -1,0 +2,13 @@ +Sat Jan 20 13:08:27 UTC 2024 - Dirk Müller <dmuel...@suse.com> + +- update to 4.6.0: + * Bump cryptography from 41.0.4 to 41.0.6 + * Do not check JWT_TOKEN_LOCATION when testing if + cookie_csrf_protect is enabled +- update to 4.5.3: + * Replace "defining" with "define" + * Fix documentation syntax error + * remove duplicate comments + * Support python 3.12 and add support for flask 3.0 + +------------------------------------------------------------------- Old: ---- Flask-JWT-Extended-4.5.2.tar.gz New: ---- Flask-JWT-Extended-4.6.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-flask-jwt-extended.spec ++++++ --- /var/tmp/diff_new_pack.E3FweH/_old 2024-01-21 23:09:23.563772264 +0100 +++ /var/tmp/diff_new_pack.E3FweH/_new 2024-01-21 23:09:23.567772410 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-flask-jwt-extended # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,9 +16,9 @@ # -%define skip_python2 1 +%{?sle15_python_module_pythons} Name: python-flask-jwt-extended -Version: 4.5.2 +Version: 4.6.0 Release: 0 Summary: A Flask extension that provides JWT support License: MIT @@ -27,7 +27,7 @@ BuildRequires: %{python_module Flask >= 1.0} BuildRequires: %{python_module PyJWT >= 2.0} BuildRequires: %{python_module Werkzeug >= 0.14} -BuildRequires: %{python_module cryptography >= 3.0} +BuildRequires: %{python_module cryptography >= 41.0.6} BuildRequires: %{python_module pip} BuildRequires: %{python_module pytest} BuildRequires: %{python_module python-dateutil} @@ -38,7 +38,7 @@ Requires: python-Flask >= 1.0 Requires: python-PyJWT >= 2.0 Requires: python-Werkzeug >= 0.14 -Suggests: python-cryptography >= 3.0 +Suggests: python-cryptography >= 41.0.6 BuildArch: noarch %python_subpackages ++++++ Flask-JWT-Extended-4.5.2.tar.gz -> Flask-JWT-Extended-4.6.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-JWT-Extended-4.5.2/Flask_JWT_Extended.egg-info/PKG-INFO new/Flask-JWT-Extended-4.6.0/Flask_JWT_Extended.egg-info/PKG-INFO --- old/Flask-JWT-Extended-4.5.2/Flask_JWT_Extended.egg-info/PKG-INFO 2023-05-26 21:16:32.000000000 +0200 +++ new/Flask-JWT-Extended-4.6.0/Flask_JWT_Extended.egg-info/PKG-INFO 2023-12-13 06:29:35.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: Flask-JWT-Extended -Version: 4.5.2 +Version: 4.6.0 Summary: Extended JWT integration with Flask Home-page: https://github.com/vimalloc/flask-jwt-extended Author: Lily Acadia Gilbert @@ -23,13 +23,19 @@ Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Topic :: Software Development :: Libraries :: Python Modules Requires-Python: >=3.7,<4 Description-Content-Type: text/markdown -Provides-Extra: asymmetric_crypto License-File: LICENSE +Requires-Dist: Werkzeug>=0.14 +Requires-Dist: Flask<4.0,>=2.0 +Requires-Dist: PyJWT<3.0,>=2.0 +Requires-Dist: typing_extensions>=3.7.4; python_version < "3.8" +Provides-Extra: asymmetric-crypto +Requires-Dist: cryptography>=3.3.1; extra == "asymmetric-crypto" # Flask-JWT-Extended @@ -85,7 +91,7 @@ A subset of checks can also be ran by adding an argument to tox. The available arguments are: -- py37, py38, py39, py310, pypy3 +- py37, py38, py39, py310, py311, py312, pypy3 - Run unit tests on the given python version - mypy - Run mypy type checking diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-JWT-Extended-4.5.2/Flask_JWT_Extended.egg-info/requires.txt new/Flask-JWT-Extended-4.6.0/Flask_JWT_Extended.egg-info/requires.txt --- old/Flask-JWT-Extended-4.5.2/Flask_JWT_Extended.egg-info/requires.txt 2023-05-26 21:16:32.000000000 +0200 +++ new/Flask-JWT-Extended-4.6.0/Flask_JWT_Extended.egg-info/requires.txt 2023-12-13 06:29:35.000000000 +0100 @@ -1,5 +1,5 @@ Werkzeug>=0.14 -Flask<3.0,>=2.0 +Flask<4.0,>=2.0 PyJWT<3.0,>=2.0 [:python_version < "3.8"] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-JWT-Extended-4.5.2/PKG-INFO new/Flask-JWT-Extended-4.6.0/PKG-INFO --- old/Flask-JWT-Extended-4.5.2/PKG-INFO 2023-05-26 21:16:32.357577800 +0200 +++ new/Flask-JWT-Extended-4.6.0/PKG-INFO 2023-12-13 06:29:35.098530000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: Flask-JWT-Extended -Version: 4.5.2 +Version: 4.6.0 Summary: Extended JWT integration with Flask Home-page: https://github.com/vimalloc/flask-jwt-extended Author: Lily Acadia Gilbert @@ -23,13 +23,19 @@ Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Topic :: Software Development :: Libraries :: Python Modules Requires-Python: >=3.7,<4 Description-Content-Type: text/markdown -Provides-Extra: asymmetric_crypto License-File: LICENSE +Requires-Dist: Werkzeug>=0.14 +Requires-Dist: Flask<4.0,>=2.0 +Requires-Dist: PyJWT<3.0,>=2.0 +Requires-Dist: typing_extensions>=3.7.4; python_version < "3.8" +Provides-Extra: asymmetric-crypto +Requires-Dist: cryptography>=3.3.1; extra == "asymmetric-crypto" # Flask-JWT-Extended @@ -85,7 +91,7 @@ A subset of checks can also be ran by adding an argument to tox. The available arguments are: -- py37, py38, py39, py310, pypy3 +- py37, py38, py39, py310, py311, py312, pypy3 - Run unit tests on the given python version - mypy - Run mypy type checking diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-JWT-Extended-4.5.2/README.md new/Flask-JWT-Extended-4.6.0/README.md --- old/Flask-JWT-Extended-4.5.2/README.md 2023-05-26 21:16:17.000000000 +0200 +++ new/Flask-JWT-Extended-4.6.0/README.md 2023-12-13 06:29:27.000000000 +0100 @@ -52,7 +52,7 @@ A subset of checks can also be ran by adding an argument to tox. The available arguments are: -- py37, py38, py39, py310, pypy3 +- py37, py38, py39, py310, py311, py312, pypy3 - Run unit tests on the given python version - mypy - Run mypy type checking diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-JWT-Extended-4.5.2/flask_jwt_extended/__init__.py new/Flask-JWT-Extended-4.6.0/flask_jwt_extended/__init__.py --- old/Flask-JWT-Extended-4.5.2/flask_jwt_extended/__init__.py 2023-05-26 21:16:17.000000000 +0200 +++ new/Flask-JWT-Extended-4.6.0/flask_jwt_extended/__init__.py 2023-12-13 06:29:27.000000000 +0100 @@ -19,4 +19,4 @@ from .view_decorators import jwt_required as jwt_required from .view_decorators import verify_jwt_in_request as verify_jwt_in_request -__version__ = "4.5.2" +__version__ = "4.6.0" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-JWT-Extended-4.5.2/flask_jwt_extended/config.py new/Flask-JWT-Extended-4.6.0/flask_jwt_extended/config.py --- old/Flask-JWT-Extended-4.5.2/flask_jwt_extended/config.py 2023-05-26 21:16:17.000000000 +0200 +++ new/Flask-JWT-Extended-4.6.0/flask_jwt_extended/config.py 2023-12-13 06:29:27.000000000 +0100 @@ -135,8 +135,8 @@ return current_app.config["JWT_REFRESH_JSON_KEY"] @property - def csrf_protect(self) -> bool: - return self.jwt_in_cookies and current_app.config["JWT_COOKIE_CSRF_PROTECT"] + def cookie_csrf_protect(self) -> bool: + return current_app.config["JWT_COOKIE_CSRF_PROTECT"] @property def csrf_request_methods(self) -> Iterable[str]: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-JWT-Extended-4.5.2/flask_jwt_extended/jwt_manager.py new/Flask-JWT-Extended-4.6.0/flask_jwt_extended/jwt_manager.py --- old/Flask-JWT-Extended-4.5.2/flask_jwt_extended/jwt_manager.py 2023-05-26 21:16:17.000000000 +0200 +++ new/Flask-JWT-Extended-4.6.0/flask_jwt_extended/jwt_manager.py 2023-12-13 06:29:27.000000000 +0100 @@ -516,7 +516,7 @@ algorithm=config.algorithm, audience=config.encode_audience, claim_overrides=claim_overrides, - csrf=config.csrf_protect, + csrf=config.cookie_csrf_protect, expires_delta=expires_delta, fresh=fresh, header_overrides=header_overrides, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-JWT-Extended-4.5.2/flask_jwt_extended/utils.py new/Flask-JWT-Extended-4.6.0/flask_jwt_extended/utils.py --- old/Flask-JWT-Extended-4.5.2/flask_jwt_extended/utils.py 2023-05-26 21:16:17.000000000 +0200 +++ new/Flask-JWT-Extended-4.6.0/flask_jwt_extended/utils.py 2023-12-13 06:29:27.000000000 +0100 @@ -160,13 +160,13 @@ Optional. A hash of claims to include in the access token. These claims are merged into the default claims (exp, iat, etc) and claims returned from the :meth:`~flask_jwt_extended.JWTManager.additional_claims_loader` callback. - On conflict, these claims take presidence. + On conflict, these claims take precedence. :param headers: Optional. A hash of headers to include in the access token. These headers are merged into the default headers (alg, typ) and headers returned from the :meth:`~flask_jwt_extended.JWTManager.additional_headers_loader` - callback. On conflict, these headers take presidence. + callback. On conflict, these headers take precedence. :return: An encoded access token @@ -206,13 +206,13 @@ Optional. A hash of claims to include in the refresh token. These claims are merged into the default claims (exp, iat, etc) and claims returned from the :meth:`~flask_jwt_extended.JWTManager.additional_claims_loader` callback. - On conflict, these claims take presidence. + On conflict, these claims take precedence. :param headers: Optional. A hash of headers to include in the refresh token. These headers are merged into the default headers (alg, typ) and headers returned from the :meth:`~flask_jwt_extended.JWTManager.additional_headers_loader` callback. - On conflict, these headers take presidence. + On conflict, these headers take precedence. :return: An encoded refresh token @@ -305,7 +305,7 @@ samesite=config.cookie_samesite, ) - if config.csrf_protect and config.csrf_in_cookies: + if config.cookie_csrf_protect and config.csrf_in_cookies: response.set_cookie( config.access_csrf_cookie_name, value=get_csrf_token(encoded_access_token), @@ -358,7 +358,7 @@ samesite=config.cookie_samesite, ) - if config.csrf_protect and config.csrf_in_cookies: + if config.cookie_csrf_protect and config.csrf_in_cookies: response.set_cookie( config.refresh_csrf_cookie_name, value=get_csrf_token(encoded_refresh_token), @@ -408,7 +408,7 @@ samesite=config.cookie_samesite, ) - if config.csrf_protect and config.csrf_in_cookies: + if config.cookie_csrf_protect and config.csrf_in_cookies: response.set_cookie( config.access_csrf_cookie_name, value="", @@ -446,7 +446,7 @@ samesite=config.cookie_samesite, ) - if config.csrf_protect and config.csrf_in_cookies: + if config.cookie_csrf_protect and config.csrf_in_cookies: response.set_cookie( config.refresh_csrf_cookie_name, value="", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-JWT-Extended-4.5.2/flask_jwt_extended/view_decorators.py new/Flask-JWT-Extended-4.6.0/flask_jwt_extended/view_decorators.py --- old/Flask-JWT-Extended-4.5.2/flask_jwt_extended/view_decorators.py 2023-05-26 21:16:17.000000000 +0200 +++ new/Flask-JWT-Extended-4.6.0/flask_jwt_extended/view_decorators.py 2023-12-13 06:29:27.000000000 +0100 @@ -81,10 +81,6 @@ If ``True``, revocation status of the token will be *not* checked. If ``False``, revocation status of the token will be checked. - :param skip_revocation_check: - If ``True``, revocation status of the token will be *not* checked. If ``False``, - revocation status of the token will be checked. - :return: A tuple containing the jwt_header and the jwt_data if a valid JWT is present in the request. If ``optional=True`` and no JWT is in the request, @@ -248,7 +244,7 @@ if not encoded_token: raise NoAuthorizationError('Missing cookie "{}"'.format(cookie_key)) - if config.csrf_protect and request.method in config.csrf_request_methods: + if config.cookie_csrf_protect and request.method in config.csrf_request_methods: csrf_value = request.headers.get(csrf_header_key, None) if not csrf_value and config.csrf_check_form: csrf_value = request.form.get(csrf_field_key, None) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-JWT-Extended-4.5.2/requirements.txt new/Flask-JWT-Extended-4.6.0/requirements.txt --- old/Flask-JWT-Extended-4.5.2/requirements.txt 2023-05-26 21:16:17.000000000 +0200 +++ new/Flask-JWT-Extended-4.6.0/requirements.txt 2023-12-13 06:29:27.000000000 +0100 @@ -1,6 +1,6 @@ black==21.12b0 -cryptography==39.0.1 -Flask==2.3.2 +cryptography==41.0.6 +Flask==3.0.0 pre-commit==2.18.1 PyJWT==2.7.0 tox==3.25.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-JWT-Extended-4.5.2/setup.py new/Flask-JWT-Extended-4.6.0/setup.py --- old/Flask-JWT-Extended-4.5.2/setup.py 2023-05-26 21:16:17.000000000 +0200 +++ new/Flask-JWT-Extended-4.6.0/setup.py 2023-12-13 06:29:27.000000000 +0100 @@ -30,7 +30,7 @@ platforms="any", install_requires=[ "Werkzeug>=0.14", # Needed for SameSite cookie functionality - "Flask>=2.0,<3.0", + "Flask>=2.0,<4.0", "PyJWT>=2.0,<3.0", "typing_extensions>=3.7.4; python_version<'3.8'", # typing.Literal ], @@ -52,6 +52,7 @@ "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-JWT-Extended-4.5.2/tests/test_config.py new/Flask-JWT-Extended-4.6.0/tests/test_config.py --- old/Flask-JWT-Extended-4.5.2/tests/test_config.py 2023-05-26 21:16:17.000000000 +0200 +++ new/Flask-JWT-Extended-4.6.0/tests/test_config.py 2023-12-13 06:29:27.000000000 +0100 @@ -51,7 +51,7 @@ assert config.json_key == "access_token" assert config.refresh_json_key == "refresh_token" - assert config.csrf_protect is False + assert config.cookie_csrf_protect is True assert config.csrf_request_methods == ["POST", "PUT", "PATCH", "DELETE"] assert config.csrf_in_cookies is True assert config.access_csrf_cookie_name == "csrf_access_token" @@ -142,7 +142,7 @@ assert config.session_cookie is False assert config.cookie_samesite == "Strict" - assert config.csrf_protect is True + assert config.cookie_csrf_protect is True assert config.csrf_request_methods == ["GET"] assert config.csrf_in_cookies is False assert config.access_csrf_cookie_name == "access_csrf_cookie" @@ -333,17 +333,11 @@ def test_csrf_protect_config(app): with app.test_request_context(): - app.config["JWT_TOKEN_LOCATION"] = ["headers"] app.config["JWT_COOKIE_CSRF_PROTECT"] = True - assert config.csrf_protect is False + assert config.cookie_csrf_protect is True - app.config["JWT_TOKEN_LOCATION"] = ["cookies"] - app.config["JWT_COOKIE_CSRF_PROTECT"] = True - assert config.csrf_protect is True - - app.config["JWT_TOKEN_LOCATION"] = ["cookies"] app.config["JWT_COOKIE_CSRF_PROTECT"] = False - assert config.csrf_protect is False + assert config.cookie_csrf_protect is False def test_missing_algorithm_in_decode_algorithms(app): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-JWT-Extended-4.5.2/tox.ini new/Flask-JWT-Extended-4.6.0/tox.ini --- old/Flask-JWT-Extended-4.5.2/tox.ini 2023-05-26 21:16:17.000000000 +0200 +++ new/Flask-JWT-Extended-4.6.0/tox.ini 2023-12-13 06:29:27.000000000 +0100 @@ -4,7 +4,7 @@ # and then run "tox" from this directory. [tox] -envlist = py37,py38,py39,py310,py311,pypy3.9,flask21,mypy,coverage,style,docs +envlist = py37,py38,py39,py310,py311,py312,pypy3.9,flask21,flask2x,mypy,coverage,style,docs [testenv] commands = @@ -14,6 +14,9 @@ cryptography python-dateutil flask21: Flask>=2.1,<2.2 + flask21: Werkzeug>=2,<3 + flask2x: Flask<3.0 + flask2x: Werkzeug>=2,<3 [testenv:mypy] commands = @@ -44,9 +47,6 @@ # This gets color output working when run through tox passenv=TERM deps = -rdocs/requirements.txt -#deps = -# Sphinx -# Pallets-Sphinx-Themes changedir = docs allowlist_externals = make commands =