From 5ff13b55c5f7a1bac5922c6ed08a2bdffc5bde9e Mon Sep 17 00:00:00 2001 From: Paul Haesler Date: Tue, 29 Aug 2023 08:20:18 +1000 Subject: [PATCH 1/6] CI updates - copied from autoupdate. --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a783d66d..4a5448b6 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -10,7 +10,7 @@ repos: hooks: - id: isort - repo: https://github.com/PyCQA/flake8 - rev: 6.0.0 + rev: 6.1.0 hooks: - id: flake8 args: ["--ignore=E501", "--select=F401,E201,E202,E203,E502,E241,E225,E306,E231,E226,E123,F811"] @@ -19,7 +19,7 @@ repos: # hooks: # - id: bandit - repo: https://github.com/PyCQA/pylint - rev: v2.17.0 + rev: v3.0.0a7 hooks: - id: pylint args: ["--disable=C,R,W,E1136"] From bfe2644122abdac4ffe806c755b2e93f0eccb794 Mon Sep 17 00:00:00 2001 From: Paul Haesler Date: Tue, 29 Aug 2023 16:39:00 +1000 Subject: [PATCH 2/6] Remove outdated pins. Update to new Babel API. --- datacube_ows/startup_utils.py | 13 ++++--------- setup.py | 6 +++--- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/datacube_ows/startup_utils.py b/datacube_ows/startup_utils.py index aca5d367..eaa05793 100644 --- a/datacube_ows/startup_utils.py +++ b/datacube_ows/startup_utils.py @@ -11,7 +11,7 @@ from botocore.credentials import RefreshableCredentials from datacube.utils.aws import configure_s3_access -from flask import Flask, request +from flask import g, Flask, request from flask_log_request_id import RequestID, RequestIDLogFilter from rasterio.errors import NotGeoreferencedWarning @@ -27,7 +27,6 @@ 'parse_config_file', 'initialise_flask', 'initialise_prometheus', - 'generate_locale_selector', 'CredentialManager', ] @@ -218,21 +217,17 @@ def request_extractor(): qreq = request.args.get('request') return qreq -def generate_locale_selector(locales): - def selector_template(): - return request.accept_languages.best_match(locales) - return selector_template - def initialise_babel(cfg, app): if cfg and cfg.internationalised: from flask_babel import Babel app.config["BABEL_TRANSLATION_DIRECTORIES"] = cfg.translations_dir + def get_locale(): + return request.accept_languages.best_match(cfg.locales, default=cfg.locales[0]) babel = Babel(app, - default_locale=cfg.locales[0], + locale_selector=get_locale, default_domain=cfg.message_domain, configure_jinja=False ) - babel.localeselector(generate_locale_selector(cfg.locales)) return babel else: return None diff --git a/setup.py b/setup.py index fc803bb9..bf853ca6 100644 --- a/setup.py +++ b/setup.py @@ -20,12 +20,12 @@ 'lxml', 'deepdiff', 'matplotlib', - 'pyparsing>=2.2.1,<3', # resolving dependency conflict between matplotlib and packaging + 'pyparsing', 'numpy', 'scipy', 'Pillow', 'Babel', - 'Flask-Babel<3.0.0', # API change in 3.0 + 'Flask-Babel>3.0.0', # New API in 3.x, bug in 3.0.0 'psycopg2', 'python_dateutil', 'pytz', @@ -35,7 +35,7 @@ 'python_slugify', 'geoalchemy2', 'lark', - 'xarray!=2022.6.0', + 'xarray', 'pyows', 'prometheus_flask_exporter', 'setuptools_scm' From 41ed4cad6625adc6c6d7072191c4f9d966d0bf6c Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 29 Aug 2023 06:43:38 +0000 Subject: [PATCH 3/6] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- datacube_ows/startup_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datacube_ows/startup_utils.py b/datacube_ows/startup_utils.py index eaa05793..eb0fcf59 100644 --- a/datacube_ows/startup_utils.py +++ b/datacube_ows/startup_utils.py @@ -11,7 +11,7 @@ from botocore.credentials import RefreshableCredentials from datacube.utils.aws import configure_s3_access -from flask import g, Flask, request +from flask import Flask, g, request from flask_log_request_id import RequestID, RequestIDLogFilter from rasterio.errors import NotGeoreferencedWarning From b266fe590d8780200c0df028ffcff13780561fb5 Mon Sep 17 00:00:00 2001 From: Paul Haesler Date: Tue, 29 Aug 2023 16:51:51 +1000 Subject: [PATCH 4/6] Avoid SQLAlc warning and remove broken (and unneeded) test. --- datacube_ows/ogc.py | 5 +++-- tests/test_startup.py | 8 -------- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/datacube_ows/ogc.py b/datacube_ows/ogc.py index 94106553..724f4081 100644 --- a/datacube_ows/ogc.py +++ b/datacube_ows/ogc.py @@ -7,6 +7,7 @@ import traceback from time import monotonic +from sqlalchemy import text from flask import g, render_template, request from flask_log_request_id import current_request_id @@ -183,10 +184,10 @@ def ping(): if dc: # pylint: disable=protected-access with dc.index._db.give_me_a_connection() as conn: - results = conn.execute(""" + results = conn.execute(text(""" SELECT * FROM wms.product_ranges - LIMIT 1""" + LIMIT 1""") ) for r in results: db_ok = True diff --git a/tests/test_startup.py b/tests/test_startup.py index 890d6218..ea66134b 100644 --- a/tests/test_startup.py +++ b/tests/test_startup.py @@ -123,14 +123,6 @@ def test_supported_version(): assert supported["wms"].versions[0].service == "wms" -def test_generate_locale_sel(): - app = flask.Flask("test_generate_locale_selector") - from datacube_ows.startup_utils import generate_locale_selector - with app.test_request_context(headers={"Accept-Language": "sw, fr;q=0.7, de;q=0.2"}): - selector = generate_locale_selector(["en", "de", "sw"]) - assert selector() == "sw" - - @pytest.fixture def babel_cfg(): cfg = MagicMock() From edad4abd0dede7858531f98eae3999c298dc668f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 29 Aug 2023 06:54:26 +0000 Subject: [PATCH 5/6] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- datacube_ows/ogc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datacube_ows/ogc.py b/datacube_ows/ogc.py index 724f4081..1f390419 100644 --- a/datacube_ows/ogc.py +++ b/datacube_ows/ogc.py @@ -7,9 +7,9 @@ import traceback from time import monotonic -from sqlalchemy import text from flask import g, render_template, request from flask_log_request_id import current_request_id +from sqlalchemy import text from datacube_ows import __version__ from datacube_ows.cube_pool import cube From 9e2e5a759c1b7855da9ef57855daa6baec7972e1 Mon Sep 17 00:00:00 2001 From: Paul Haesler Date: Tue, 29 Aug 2023 17:01:21 +1000 Subject: [PATCH 6/6] Flake8age --- datacube_ows/startup_utils.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/datacube_ows/startup_utils.py b/datacube_ows/startup_utils.py index eb0fcf59..94adcc77 100644 --- a/datacube_ows/startup_utils.py +++ b/datacube_ows/startup_utils.py @@ -11,7 +11,7 @@ from botocore.credentials import RefreshableCredentials from datacube.utils.aws import configure_s3_access -from flask import Flask, g, request +from flask import Flask, request from flask_log_request_id import RequestID, RequestIDLogFilter from rasterio.errors import NotGeoreferencedWarning @@ -221,8 +221,10 @@ def initialise_babel(cfg, app): if cfg and cfg.internationalised: from flask_babel import Babel app.config["BABEL_TRANSLATION_DIRECTORIES"] = cfg.translations_dir + def get_locale(): return request.accept_languages.best_match(cfg.locales, default=cfg.locales[0]) + babel = Babel(app, locale_selector=get_locale, default_domain=cfg.message_domain,