From 2d06954658aeec93282932cf2549fa2c6bd444af Mon Sep 17 00:00:00 2001 From: Viicos <65306057+Viicos@users.noreply.github.com> Date: Tue, 23 Jul 2024 15:38:18 +0200 Subject: [PATCH 1/8] [#3197] Upgrade dependencies Bump dependencies that require building Switch from pyscopg2 to pyscopg (3), psycopg2 has no wheels and build fails one 3.12. --- requirements/base.in | 2 +- requirements/base.txt | 19 ++++++----------- requirements/ci.txt | 34 ++++++----------------------- requirements/dev.txt | 38 ++++++--------------------------- requirements/extensions.txt | 25 ++++++---------------- requirements/type-checking.txt | 39 ++++++---------------------------- 6 files changed, 31 insertions(+), 126 deletions(-) diff --git a/requirements/base.in b/requirements/base.in index 1a52ba1c1b..af2a1c462b 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -17,7 +17,7 @@ lxml-html-clean O365 # microsoft graph Pillow # handle images portalocker[redis] -psycopg2 # database driver +psycopg # database driver python-dotenv # environment variables for secrets python-decouple # processing of envvar configs python-magic diff --git a/requirements/base.txt b/requirements/base.txt index 9a69497d0e..8c899a44ac 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -10,8 +10,6 @@ asgiref==3.7.2 # via django asn1crypto==1.5.1 # via webauthn -async-timeout==4.0.2 - # via redis attrs==23.2.0 # via # glom @@ -192,7 +190,7 @@ django-redis==5.3.0 # via -r requirements/base.in django-relativedelta==2.0.0 # via zgw-consumers -django-sendfile2==0.7.0 +django-sendfile2==0.7.1 # via django-privates django-sessionprofile==2.0.0 # via django-digid-eherkenning @@ -267,8 +265,6 @@ humanize==3.14.0 # via flower idna==3.7 # via requests -importlib-resources==6.4.0 - # via schwifty inflection==0.5.1 # via # django-camunda @@ -280,7 +276,7 @@ isodate==0.6.1 # zeep josepy==1.14.0 # via mozilla-django-oidc -jq==1.3.0 +jq==1.7.0 # via -r requirements/base.in jsonschema==4.21.1 # via @@ -367,7 +363,7 @@ prometheus-client==0.13.1 # via flower prompt-toolkit==3.0.27 # via click-repl -psycopg2==2.8.6 +psycopg==3.2.1 # via -r requirements/base.in pycountry==23.12.11 # via schwifty @@ -451,9 +447,9 @@ rpds-py==0.18.0 # referencing rstr==3.2.2 # via schwifty -ruamel-yaml==0.17.32 +ruamel-yaml==0.18.6 # via prance -ruamel-yaml-clib==0.2.7 +ruamel-yaml-clib==0.2.8 # via ruamel-yaml schwifty==2024.5.3 # via -r requirements/base.in @@ -501,12 +497,9 @@ tornado==6.4.1 typing-extensions==4.11.0 # via # -r requirements/base.in - # asgiref - # django-modeltranslation - # django-solo # mozilla-django-oidc-db + # psycopg # qrcode - # schwifty # zgw-consumers tzdata==2023.3 # via diff --git a/requirements/ci.txt b/requirements/ci.txt index b9371502ff..8622a188e6 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -22,11 +22,6 @@ asn1crypto==1.5.1 # -c requirements/base.txt # -r requirements/base.txt # webauthn -async-timeout==4.0.2 - # via - # -c requirements/base.txt - # -r requirements/base.txt - # redis attrs==23.2.0 # via # -c requirements/base.txt @@ -329,7 +324,7 @@ django-relativedelta==2.0.0 # -c requirements/base.txt # -r requirements/base.txt # zgw-consumers -django-sendfile2==0.7.0 +django-sendfile2==0.7.1 # via # -c requirements/base.txt # -r requirements/base.txt @@ -425,10 +420,6 @@ et-xmlfile==1.1.0 # -c requirements/base.txt # -r requirements/base.txt # openpyxl -exceptiongroup==1.0.4 - # via - # hypothesis - # pytest face==20.1.1 # via # -c requirements/base.txt @@ -493,11 +484,6 @@ idna==3.7 # yarl imagesize==1.4.1 # via sphinx -importlib-resources==6.4.0 - # via - # -c requirements/base.txt - # -r requirements/base.txt - # schwifty inflection==0.5.1 # via # -c requirements/base.txt @@ -522,7 +508,7 @@ josepy==1.14.0 # -c requirements/base.txt # -r requirements/base.txt # mozilla-django-oidc -jq==1.3.0 +jq==1.7.0 # via # -c requirements/base.txt # -r requirements/base.txt @@ -710,7 +696,7 @@ prompt-toolkit==3.0.27 # -c requirements/base.txt # -r requirements/base.txt # click-repl -psycopg2==2.8.6 +psycopg==3.2.1 # via # -c requirements/base.txt # -r requirements/base.txt @@ -880,12 +866,12 @@ rstr==3.2.2 # -c requirements/base.txt # -r requirements/base.txt # schwifty -ruamel-yaml==0.17.32 +ruamel-yaml==0.18.6 # via # -c requirements/base.txt # -r requirements/base.txt # prance -ruamel-yaml-clib==0.2.7 +ruamel-yaml-clib==0.2.8 # via # -c requirements/base.txt # -r requirements/base.txt @@ -994,10 +980,6 @@ tinycss2==1.1.0 # -r requirements/base.txt # cssselect2 # weasyprint -tomli==1.2.1 - # via - # black - # pytest tornado==6.4.1 # via # -c requirements/base.txt @@ -1007,14 +989,10 @@ typing-extensions==4.11.0 # via # -c requirements/base.txt # -r requirements/base.txt - # asgiref - # black - # django-modeltranslation - # django-solo # mozilla-django-oidc-db + # psycopg # pyee # qrcode - # schwifty # zgw-consumers tzdata==2023.3 # via diff --git a/requirements/dev.txt b/requirements/dev.txt index 645235e6d2..7442cebc6a 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -25,11 +25,6 @@ asn1crypto==1.5.1 # -c requirements/ci.txt # -r requirements/ci.txt # webauthn -async-timeout==4.0.2 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # redis attrs==23.2.0 # via # -c requirements/ci.txt @@ -358,7 +353,7 @@ django-relativedelta==2.0.0 # zgw-consumers django-rosetta==0.9.8 # via -r requirements/dev.in -django-sendfile2==0.7.0 +django-sendfile2==0.7.1 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -459,12 +454,6 @@ et-xmlfile==1.1.0 # -c requirements/ci.txt # -r requirements/ci.txt # openpyxl -exceptiongroup==1.0.4 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # hypothesis - # pytest face==20.1.1 # via # -c requirements/ci.txt @@ -547,11 +536,6 @@ imagesize==1.4.1 # -c requirements/ci.txt # -r requirements/ci.txt # sphinx -importlib-resources==6.4.0 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # schwifty inflection==0.5.1 # via # -c requirements/ci.txt @@ -584,7 +568,7 @@ josepy==1.14.0 # -c requirements/ci.txt # -r requirements/ci.txt # mozilla-django-oidc -jq==1.3.0 +jq==1.7.0 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -796,7 +780,7 @@ prompt-toolkit==3.0.27 # -c requirements/ci.txt # -r requirements/ci.txt # click-repl -psycopg2==2.8.6 +psycopg==3.2.1 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -982,12 +966,12 @@ rstr==3.2.2 # -c requirements/ci.txt # -r requirements/ci.txt # schwifty -ruamel-yaml==0.17.32 +ruamel-yaml==0.18.6 # via # -c requirements/ci.txt # -r requirements/ci.txt # prance -ruamel-yaml-clib==0.2.7 +ruamel-yaml-clib==0.2.8 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -1142,12 +1126,6 @@ tinycss2==1.1.0 # weasyprint toml==0.10.2 # via autopep8 -tomli==1.2.1 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # black - # pytest tornado==6.4.1 # via # -c requirements/ci.txt @@ -1157,14 +1135,10 @@ typing-extensions==4.11.0 # via # -c requirements/ci.txt # -r requirements/ci.txt - # asgiref - # black - # django-modeltranslation - # django-solo # mozilla-django-oidc-db + # psycopg # pyee # qrcode - # schwifty # zgw-consumers tzdata==2023.3 # via diff --git a/requirements/extensions.txt b/requirements/extensions.txt index ce072beccd..884a6a3766 100644 --- a/requirements/extensions.txt +++ b/requirements/extensions.txt @@ -20,11 +20,6 @@ asn1crypto==1.5.1 # -c requirements/base.txt # -r requirements/base.txt # webauthn -async-timeout==4.0.2 - # via - # -c requirements/base.txt - # -r requirements/base.txt - # redis attrs==23.2.0 # via # -c requirements/base.txt @@ -315,7 +310,7 @@ django-relativedelta==2.0.0 # -c requirements/base.txt # -r requirements/base.txt # zgw-consumers -django-sendfile2==0.7.0 +django-sendfile2==0.7.1 # via # -c requirements/base.txt # -r requirements/base.txt @@ -448,11 +443,6 @@ idna==3.7 # -c requirements/base.txt # -r requirements/base.txt # requests -importlib-resources==6.4.0 - # via - # -c requirements/base.txt - # -r requirements/base.txt - # schwifty inflection==0.5.1 # via # -c requirements/base.txt @@ -471,7 +461,7 @@ josepy==1.14.0 # -c requirements/base.txt # -r requirements/base.txt # mozilla-django-oidc -jq==1.3.0 +jq==1.7.0 # via # -c requirements/base.txt # -r requirements/base.txt @@ -642,7 +632,7 @@ prompt-toolkit==3.0.27 # -c requirements/base.txt # -r requirements/base.txt # click-repl -psycopg2==2.8.6 +psycopg==3.2.1 # via # -c requirements/base.txt # -r requirements/base.txt @@ -787,12 +777,12 @@ rstr==3.2.2 # -c requirements/base.txt # -r requirements/base.txt # schwifty -ruamel-yaml==0.17.32 +ruamel-yaml==0.18.6 # via # -c requirements/base.txt # -r requirements/base.txt # prance -ruamel-yaml-clib==0.2.7 +ruamel-yaml-clib==0.2.8 # via # -c requirements/base.txt # -r requirements/base.txt @@ -872,12 +862,9 @@ typing-extensions==4.11.0 # via # -c requirements/base.txt # -r requirements/base.txt - # asgiref - # django-modeltranslation - # django-solo # mozilla-django-oidc-db + # psycopg # qrcode - # schwifty # zgw-consumers tzdata==2023.3 # via diff --git a/requirements/type-checking.txt b/requirements/type-checking.txt index ad391aaf0b..ee7f62869e 100644 --- a/requirements/type-checking.txt +++ b/requirements/type-checking.txt @@ -26,11 +26,6 @@ asn1crypto==1.5.1 # -c requirements/ci.txt # -r requirements/ci.txt # webauthn -async-timeout==4.0.2 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # redis attrs==23.2.0 # via # -c requirements/ci.txt @@ -347,7 +342,7 @@ django-relativedelta==2.0.0 # -c requirements/ci.txt # -r requirements/ci.txt # zgw-consumers -django-sendfile2==0.7.0 +django-sendfile2==0.7.1 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -456,12 +451,6 @@ et-xmlfile==1.1.0 # -c requirements/ci.txt # -r requirements/ci.txt # openpyxl -exceptiongroup==1.0.4 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # hypothesis - # pytest face==20.1.1 # via # -c requirements/ci.txt @@ -538,11 +527,6 @@ imagesize==1.4.1 # -c requirements/ci.txt # -r requirements/ci.txt # sphinx -importlib-resources==6.4.0 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # schwifty inflection==0.5.1 # via # -c requirements/ci.txt @@ -575,7 +559,7 @@ josepy==1.14.0 # -c requirements/ci.txt # -r requirements/ci.txt # mozilla-django-oidc -jq==1.3.0 +jq==1.7.0 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -785,7 +769,7 @@ prompt-toolkit==3.0.27 # -c requirements/ci.txt # -r requirements/ci.txt # click-repl -psycopg2==2.8.6 +psycopg==3.2.1 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -970,12 +954,12 @@ rstr==3.2.2 # -c requirements/ci.txt # -r requirements/ci.txt # schwifty -ruamel-yaml==0.17.32 +ruamel-yaml==0.18.6 # via # -c requirements/ci.txt # -r requirements/ci.txt # prance -ruamel-yaml-clib==0.2.7 +ruamel-yaml-clib==0.2.8 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -1124,13 +1108,6 @@ tinycss2==1.1.0 # -r requirements/ci.txt # cssselect2 # weasyprint -tomli==1.2.1 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # black - # django-stubs - # pytest tornado==6.4.1 # via # -c requirements/ci.txt @@ -1157,17 +1134,13 @@ typing-extensions==4.11.0 # via # -c requirements/ci.txt # -r requirements/ci.txt - # asgiref - # black - # django-modeltranslation - # django-solo # django-stubs # django-stubs-ext # djangorestframework-stubs # mozilla-django-oidc-db + # psycopg # pyee # qrcode - # schwifty # types-lxml # zgw-consumers tzdata==2023.3 From c60c5af236ca3d216cdd9d28bb0f35c87ddcc200 Mon Sep 17 00:00:00 2001 From: Viicos <65306057+Viicos@users.noreply.github.com> Date: Tue, 23 Jul 2024 15:40:07 +0200 Subject: [PATCH 2/8] [#3197] Fix test after psycopg upgrade --- src/openforms/accounts/tests/test_oidc.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/openforms/accounts/tests/test_oidc.py b/src/openforms/accounts/tests/test_oidc.py index dea79dc139..61de88b5f1 100644 --- a/src/openforms/accounts/tests/test_oidc.py +++ b/src/openforms/accounts/tests/test_oidc.py @@ -93,8 +93,8 @@ def test_duplicate_email_unique_constraint_violated(self): self.assertEqual(error_page.request.path, reverse("admin-oidc-error")) self.assertEqual( error_page.context["oidc_error"], - """duplicate key value violates unique constraint "filled_email_unique""" - """"\nDETAIL: Key (email)=(admin@example.com) already exists.\n""", + 'duplicate key value violates unique constraint "filled_email_unique"' + "\nDETAIL: Key (email)=(admin@example.com) already exists.", ) self.assertContains( error_page, "duplicate key value violates unique constraint" From 46a6b78917bd77a6d400b9e867e1601fcc730eef Mon Sep 17 00:00:00 2001 From: Viicos <65306057+Viicos@users.noreply.github.com> Date: Tue, 23 Jul 2024 16:32:40 +0200 Subject: [PATCH 3/8] [#3197] Fix test assertions Deprecated helper was removed Changes in the way subTest works internally --- src/openforms/formio/tests/test_assertions.py | 36 +++++++++---------- src/stuf/stuf_bg/tests/test_client.py | 4 +-- 2 files changed, 18 insertions(+), 22 deletions(-) diff --git a/src/openforms/formio/tests/test_assertions.py b/src/openforms/formio/tests/test_assertions.py index a30624eba6..2581eb96c0 100644 --- a/src/openforms/formio/tests/test_assertions.py +++ b/src/openforms/formio/tests/test_assertions.py @@ -47,29 +47,25 @@ def test_invalid_component_key(self): self.assertFormioComponent(FORMIO_CONFIGURATION, "bad-key", {}) def test_component_missing_property(self): - self._outcome.expectedFailure = True + self._outcome.expecting_failure = True - try: - self.assertFormioComponent( - FORMIO_CONFIGURATION, "text1", {"missingProperty": "bar"} - ) - except Exception: - pass + self.assertFormioComponent( + FORMIO_CONFIGURATION, "text1", {"missingProperty": "bar"} + ) - # internals because of the self.subTest usage - self.assertFalse(self._outcome.success) - self._outcome.errors = [] + # Resetting `expecting_failure` to not have the above + # assertion silently ignored: + self._outcome.expecting_failure = False + self.assertIsNotNone(self._outcome.expectedFailure) def test_component_unexpected_value(self): - self._outcome.expectedFailure = True + self._outcome.expecting_failure = True - try: - self.assertFormioComponent( - FORMIO_CONFIGURATION, "text1", {"defaultValue": "bar"} - ) - except Exception: - pass + self.assertFormioComponent( + FORMIO_CONFIGURATION, "text1", {"defaultValue": "bar"} + ) - # internals because of the self.subTest usage - self.assertFalse(self._outcome.success) - self._outcome.errors = [] + # Resetting `expecting_failure` to not have the above + # assertion silently ignored: + self._outcome.expecting_failure = False + self.assertIsNotNone(self._outcome.expectedFailure) diff --git a/src/stuf/stuf_bg/tests/test_client.py b/src/stuf/stuf_bg/tests/test_client.py index 36875ac2f8..8950551410 100644 --- a/src/stuf/stuf_bg/tests/test_client.py +++ b/src/stuf/stuf_bg/tests/test_client.py @@ -177,7 +177,7 @@ def test_getting_request_data_returns_valid_data(self): with self.subTest(attribute=attribute): glom_target = ATTRIBUTES_TO_STUF_BG_MAPPING.get(attribute) in_request = glom(request_dict, glom_target, default=missing) - self.assert_( + self.assertTrue( in_request is not missing, f"missing attribute in request {attribute} (as {glom_target})", ) @@ -192,7 +192,7 @@ def test_getting_request_data_returns_valid_data(self): if attribute in attributes_not_in_mock_response: continue in_response = glom(response_dict, glom_target, default=missing) - self.assert_( + self.assertTrue( in_response is not missing, f"missing attribute in response {attribute} (as {glom_target})", ) From f7dd34f5e5374e16941ea75a2b977743cc60cb8f Mon Sep 17 00:00:00 2001 From: Viicos <65306057+Viicos@users.noreply.github.com> Date: Tue, 23 Jul 2024 16:49:58 +0200 Subject: [PATCH 4/8] [#3197] Update dependencies to reduce deprecation warnings --- requirements/base.txt | 8 ++++---- requirements/ci.txt | 11 +++++------ requirements/dev.txt | 11 +++++------ requirements/extensions.txt | 8 ++++---- requirements/type-checking.txt | 11 +++++------ 5 files changed, 23 insertions(+), 26 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index 8c899a44ac..44b583ba22 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -154,7 +154,7 @@ django-csp-reports==1.8.1 # via -r requirements/base.in django-digid-eherkenning==0.16.0 # via -r requirements/base.in -django-filter==23.2 +django-filter==24.2 # via -r requirements/base.in django-flags==5.0.13 # via -r requirements/base.in @@ -338,7 +338,7 @@ openapi-spec-validator==0.6.0 # via openapi3-parser openapi3-parser==1.1.16 # via -r requirements/base.in -openpyxl==3.0.7 +openpyxl==3.1.5 # via tablib orderedmultidict==1.0.1 # via furl @@ -381,7 +381,7 @@ pyphen==0.14.0 # via weasyprint pypng==0.20220715.0 # via qrcode -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # celery # django-camunda @@ -393,7 +393,7 @@ python-dotenv==0.14.0 # via -r requirements/base.in python-magic==0.4.27 # via -r requirements/base.in -pytz==2022.2.1 +pytz==2024.1 # via # django-yubin # flower diff --git a/requirements/ci.txt b/requirements/ci.txt index 8622a188e6..4de2e52dca 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -255,7 +255,7 @@ django-digid-eherkenning==0.16.0 # via # -c requirements/base.txt # -r requirements/base.txt -django-filter==23.2 +django-filter==24.2 # via # -c requirements/base.txt # -r requirements/base.txt @@ -445,7 +445,7 @@ fonttools==4.45.1 # -c requirements/base.txt # -r requirements/base.txt # weasyprint -freezegun==0.3.15 +freezegun==1.5.1 # via -r requirements/test-tools.in frozendict==2.3.4 # via @@ -629,7 +629,7 @@ openapi3-parser==1.1.16 # via # -c requirements/base.txt # -r requirements/base.txt -openpyxl==3.0.7 +openpyxl==3.1.5 # via # -c requirements/base.txt # -r requirements/base.txt @@ -750,7 +750,7 @@ pyquery==1.4.1 # via -r requirements/test-tools.in pytest==7.4.0 # via -r requirements/test-tools.in -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # -c requirements/base.txt # -r requirements/base.txt @@ -772,7 +772,7 @@ python-magic==0.4.27 # via # -c requirements/base.txt # -r requirements/base.txt -pytz==2022.2.1 +pytz==2024.1 # via # -c requirements/base.txt # -r requirements/base.txt @@ -903,7 +903,6 @@ six==1.16.0 # -r requirements/base.txt # bleach # click-repl - # freezegun # furl # html5lib # isodate diff --git a/requirements/dev.txt b/requirements/dev.txt index 7442cebc6a..1825b2bb0b 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -280,7 +280,7 @@ django-digid-eherkenning==0.16.0 # -r requirements/ci.txt django-extensions==3.2.3 # via -r requirements/dev.in -django-filter==23.2 +django-filter==24.2 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -481,7 +481,7 @@ fonttools==4.45.1 # -c requirements/ci.txt # -r requirements/ci.txt # weasyprint -freezegun==0.3.15 +freezegun==1.5.1 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -701,7 +701,7 @@ openapi3-parser==1.1.16 # via # -c requirements/ci.txt # -r requirements/ci.txt -openpyxl==3.0.7 +openpyxl==3.1.5 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -850,7 +850,7 @@ pytest==7.4.0 # via # -c requirements/ci.txt # -r requirements/ci.txt -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -872,7 +872,7 @@ python-magic==0.4.27 # via # -c requirements/ci.txt # -r requirements/ci.txt -pytz==2022.2.1 +pytz==2024.1 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -1003,7 +1003,6 @@ six==1.16.0 # -r requirements/ci.txt # bleach # click-repl - # freezegun # furl # html5lib # isodate diff --git a/requirements/extensions.txt b/requirements/extensions.txt index 884a6a3766..82e0bf841c 100644 --- a/requirements/extensions.txt +++ b/requirements/extensions.txt @@ -243,7 +243,7 @@ django-digid-eherkenning==0.16.0 # via # -c requirements/base.txt # -r requirements/base.txt -django-filter==23.2 +django-filter==24.2 # via # -c requirements/base.txt # -r requirements/base.txt @@ -577,7 +577,7 @@ openapi3-parser==1.1.16 # via # -c requirements/base.txt # -r requirements/base.txt -openpyxl==3.0.7 +openpyxl==3.1.5 # via # -c requirements/base.txt # -r requirements/base.txt @@ -672,7 +672,7 @@ pypng==0.20220715.0 # -c requirements/base.txt # -r requirements/base.txt # qrcode -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # -c requirements/base.txt # -r requirements/base.txt @@ -692,7 +692,7 @@ python-magic==0.4.27 # via # -c requirements/base.txt # -r requirements/base.txt -pytz==2022.2.1 +pytz==2024.1 # via # -c requirements/base.txt # -r requirements/base.txt diff --git a/requirements/type-checking.txt b/requirements/type-checking.txt index ee7f62869e..78eb8c3d7d 100644 --- a/requirements/type-checking.txt +++ b/requirements/type-checking.txt @@ -271,7 +271,7 @@ django-digid-eherkenning==0.16.0 # via # -c requirements/ci.txt # -r requirements/ci.txt -django-filter==23.2 +django-filter==24.2 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -478,7 +478,7 @@ fonttools==4.45.1 # -c requirements/ci.txt # -r requirements/ci.txt # weasyprint -freezegun==0.3.15 +freezegun==1.5.1 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -692,7 +692,7 @@ openapi3-parser==1.1.16 # via # -c requirements/ci.txt # -r requirements/ci.txt -openpyxl==3.0.7 +openpyxl==3.1.5 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -838,7 +838,7 @@ pytest==7.4.0 # via # -c requirements/ci.txt # -r requirements/ci.txt -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -860,7 +860,7 @@ python-magic==0.4.27 # via # -c requirements/ci.txt # -r requirements/ci.txt -pytz==2022.2.1 +pytz==2024.1 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -991,7 +991,6 @@ six==1.16.0 # -r requirements/ci.txt # bleach # click-repl - # freezegun # furl # html5lib # isodate From f82767be04e49b61697b5f43c28dd072e63cc754 Mon Sep 17 00:00:00 2001 From: Viicos <65306057+Viicos@users.noreply.github.com> Date: Tue, 23 Jul 2024 16:54:14 +0200 Subject: [PATCH 5/8] [#3197] Update typing imports --- .../contrib/digid_eherkenning_oidc/backends.py | 2 +- .../contrib/digid_eherkenning_oidc/plugin.py | 3 +-- src/openforms/authentication/types.py | 4 +--- src/openforms/authentication/typing.py | 4 +--- src/openforms/contrib/brk/client.py | 3 +-- src/openforms/contrib/brk/constants.py | 4 +--- src/openforms/formio/formatters/custom.py | 4 +--- src/openforms/formio/typing/base.py | 14 +------------- src/openforms/formio/typing/custom.py | 2 +- src/openforms/formio/typing/dates.py | 4 +--- src/openforms/formio/typing/vanilla.py | 4 +--- .../contrib/objects_api/json_schema.py | 3 +-- .../registrations/contrib/objects_api/plugin.py | 4 +--- .../contrib/objects_api/submission_registration.py | 3 +-- .../registrations/contrib/objects_api/typing.py | 4 +--- .../registrations/contrib/zgw_apis/utils.py | 4 +--- src/openforms/submissions/logic/actions.py | 3 +-- src/openforms/tests/e2e/input_validation_base.py | 3 +-- src/openforms/utils/api_clients.py | 3 +-- 19 files changed, 19 insertions(+), 56 deletions(-) diff --git a/src/openforms/authentication/contrib/digid_eherkenning_oidc/backends.py b/src/openforms/authentication/contrib/digid_eherkenning_oidc/backends.py index c2762bae88..cf0c23bfaa 100644 --- a/src/openforms/authentication/contrib/digid_eherkenning_oidc/backends.py +++ b/src/openforms/authentication/contrib/digid_eherkenning_oidc/backends.py @@ -1,4 +1,5 @@ import logging +from typing import override from django.contrib.auth.models import AnonymousUser from django.core.exceptions import PermissionDenied @@ -10,7 +11,6 @@ from mozilla_django_oidc_db.backends import OIDCAuthenticationBackend from mozilla_django_oidc_db.config import dynamic_setting from mozilla_django_oidc_db.utils import obfuscate_claims -from typing_extensions import override from openforms.typing import JSONObject diff --git a/src/openforms/authentication/contrib/digid_eherkenning_oidc/plugin.py b/src/openforms/authentication/contrib/digid_eherkenning_oidc/plugin.py index 600bfee9be..032948e677 100644 --- a/src/openforms/authentication/contrib/digid_eherkenning_oidc/plugin.py +++ b/src/openforms/authentication/contrib/digid_eherkenning_oidc/plugin.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import Any, ClassVar, Generic, Protocol, TypedDict, TypeVar +from typing import Any, ClassVar, Generic, NotRequired, Protocol, TypedDict, TypeVar from django.http import ( HttpRequest, @@ -13,7 +13,6 @@ from digid_eherkenning.oidc.models import BaseConfig from mozilla_django_oidc_db.utils import do_op_logout from mozilla_django_oidc_db.views import _RETURN_URL_SESSION_KEY -from typing_extensions import NotRequired from openforms.authentication.constants import LegalSubjectIdentifierType from openforms.authentication.typing import FormAuth diff --git a/src/openforms/authentication/types.py b/src/openforms/authentication/types.py index 4057a2667e..96da16bb45 100644 --- a/src/openforms/authentication/types.py +++ b/src/openforms/authentication/types.py @@ -1,6 +1,4 @@ -from typing import Literal, TypedDict - -from typing_extensions import NotRequired +from typing import Literal, NotRequired, TypedDict class DigiDEntity(TypedDict): diff --git a/src/openforms/authentication/typing.py b/src/openforms/authentication/typing.py index 31baf682a2..0cb0ee7fab 100644 --- a/src/openforms/authentication/typing.py +++ b/src/openforms/authentication/typing.py @@ -1,6 +1,4 @@ -from typing import TypedDict - -from typing_extensions import NotRequired +from typing import NotRequired, TypedDict from openforms.typing import JSONObject diff --git a/src/openforms/contrib/brk/client.py b/src/openforms/contrib/brk/client.py index f16677aa0b..51926c25ae 100644 --- a/src/openforms/contrib/brk/client.py +++ b/src/openforms/contrib/brk/client.py @@ -1,8 +1,7 @@ import logging -from typing import TypedDict +from typing import NotRequired, TypedDict import requests -from typing_extensions import NotRequired from zgw_consumers.client import build_client from openforms.pre_requests.clients import PreRequestClientContext, PreRequestMixin diff --git a/src/openforms/contrib/brk/constants.py b/src/openforms/contrib/brk/constants.py index 86970ccf90..9fef1d3f96 100644 --- a/src/openforms/contrib/brk/constants.py +++ b/src/openforms/contrib/brk/constants.py @@ -1,6 +1,4 @@ -from typing import TypedDict - -from typing_extensions import NotRequired +from typing import NotRequired, TypedDict class AddressValue(TypedDict): diff --git a/src/openforms/formio/formatters/custom.py b/src/openforms/formio/formatters/custom.py index 169a080bea..a76a4cec6d 100644 --- a/src/openforms/formio/formatters/custom.py +++ b/src/openforms/formio/formatters/custom.py @@ -1,13 +1,11 @@ # TODO implement: iban, bsn, postcode, licenseplate, npFamilyMembers, cosign -from typing import TypedDict +from typing import NotRequired, TypedDict from django.template.defaultfilters import date as fmt_date, time as fmt_time from django.utils.dateparse import parse_date, parse_datetime from django.utils.html import format_html from django.utils.safestring import mark_safe -from typing_extensions import NotRequired - from ..typing import AddressNLComponent, Component from .base import FormatterBase diff --git a/src/openforms/formio/typing/base.py b/src/openforms/formio/typing/base.py index 8a4c39e203..bb3b83765f 100644 --- a/src/openforms/formio/typing/base.py +++ b/src/openforms/formio/typing/base.py @@ -4,12 +4,7 @@ These are common ancestors for all specific component types. """ -# TODO: on python 3.11+ we can use typing.NotRequired to mark keys that may be absent. -# For now at least, we use total=False. - -from typing import Literal, TypeAlias, TypedDict - -from typing_extensions import NotRequired +from typing import Literal, NotRequired, TypeAlias, TypedDict from openforms.typing import JSONValue @@ -69,13 +64,6 @@ class Component(TypedDict): Components are of a particular type, used as unique lookup keys in registries. Additionally, some common properties are (usually) present that also influence certain logic. - - We deliberately document keys here that may be absent, because: - - * we don't run mypy (yet) and type hints are used as just hints/documentation - * NotRequired is only available in typing_extensions and Python 3.11+ - * The ``total=False`` matches Form.io's own typescript types where (almost) every - property can be absent. """ type: str diff --git a/src/openforms/formio/typing/custom.py b/src/openforms/formio/typing/custom.py index 21891943bc..c1db889011 100644 --- a/src/openforms/formio/typing/custom.py +++ b/src/openforms/formio/typing/custom.py @@ -1,4 +1,4 @@ -from typing_extensions import NotRequired +from typing import NotRequired from .base import Component from .dates import DatePickerConfig, DatePickerCustomOptions diff --git a/src/openforms/formio/typing/dates.py b/src/openforms/formio/typing/dates.py index bdbd795b42..e38cf8a2e3 100644 --- a/src/openforms/formio/typing/dates.py +++ b/src/openforms/formio/typing/dates.py @@ -2,9 +2,7 @@ Types for our date/datetime validation extension. """ -from typing import Literal, TypedDict - -from typing_extensions import NotRequired +from typing import Literal, NotRequired, TypedDict class DateConstraintDelta(TypedDict): diff --git a/src/openforms/formio/typing/vanilla.py b/src/openforms/formio/typing/vanilla.py index d16bc49ead..31633393a4 100644 --- a/src/openforms/formio/typing/vanilla.py +++ b/src/openforms/formio/typing/vanilla.py @@ -1,6 +1,4 @@ -from typing import Literal, TypedDict - -from typing_extensions import NotRequired +from typing import Literal, NotRequired, TypedDict from .base import Component, OptionDict from .dates import DatePickerConfig diff --git a/src/openforms/registrations/contrib/objects_api/json_schema.py b/src/openforms/registrations/contrib/objects_api/json_schema.py index e41a72dbf8..5bdc8f3141 100644 --- a/src/openforms/registrations/contrib/objects_api/json_schema.py +++ b/src/openforms/registrations/contrib/objects_api/json_schema.py @@ -2,13 +2,12 @@ import itertools from dataclasses import dataclass, field, replace -from typing import Iterator, Literal, overload +from typing import Iterator, Literal, Self, overload from jsonschema_specifications import REGISTRY from referencing import Resource from referencing.exceptions import Unresolvable from referencing.jsonschema import DRAFT202012, ObjectSchema -from typing_extensions import Self @dataclass diff --git a/src/openforms/registrations/contrib/objects_api/plugin.py b/src/openforms/registrations/contrib/objects_api/plugin.py index 39488b9338..0af80a9049 100644 --- a/src/openforms/registrations/contrib/objects_api/plugin.py +++ b/src/openforms/registrations/contrib/objects_api/plugin.py @@ -2,13 +2,11 @@ import logging from functools import partial -from typing import TYPE_CHECKING, Any +from typing import TYPE_CHECKING, Any, override from django.urls import reverse from django.utils.translation import gettext_lazy as _ -from typing_extensions import override - from openforms.registrations.utils import execute_unless_result_exists from openforms.variables.service import get_static_variables diff --git a/src/openforms/registrations/contrib/objects_api/submission_registration.py b/src/openforms/registrations/contrib/objects_api/submission_registration.py index d47467393b..0e06b8f93a 100644 --- a/src/openforms/registrations/contrib/objects_api/submission_registration.py +++ b/src/openforms/registrations/contrib/objects_api/submission_registration.py @@ -4,13 +4,12 @@ from contextlib import contextmanager from datetime import date, datetime from decimal import Decimal -from typing import Any, Generic, Iterator, TypeVar, cast +from typing import Any, Generic, Iterator, TypeVar, cast, override from django.db.models import F import glom from glom import PathAccessError -from typing_extensions import override from openforms.authentication.service import AuthAttribute from openforms.contrib.objects_api.helpers import prepare_data_for_registration diff --git a/src/openforms/registrations/contrib/objects_api/typing.py b/src/openforms/registrations/contrib/objects_api/typing.py index c35c37ddf1..221e18b740 100644 --- a/src/openforms/registrations/contrib/objects_api/typing.py +++ b/src/openforms/registrations/contrib/objects_api/typing.py @@ -1,10 +1,8 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Literal, TypeAlias, TypedDict +from typing import TYPE_CHECKING, Literal, Required, TypeAlias, TypedDict from uuid import UUID -from typing_extensions import Required - ConfigVersion: TypeAlias = Literal[1, 2] if TYPE_CHECKING: diff --git a/src/openforms/registrations/contrib/zgw_apis/utils.py b/src/openforms/registrations/contrib/zgw_apis/utils.py index fc670763f8..c89a582933 100644 --- a/src/openforms/registrations/contrib/zgw_apis/utils.py +++ b/src/openforms/registrations/contrib/zgw_apis/utils.py @@ -1,7 +1,5 @@ from datetime import date, datetime -from typing import Literal, TypedDict - -from typing_extensions import NotRequired +from typing import Literal, NotRequired, TypedDict from openforms.typing import JSONValue from openforms.utils.date import datetime_in_amsterdam diff --git a/src/openforms/submissions/logic/actions.py b/src/openforms/submissions/logic/actions.py index 629318b926..25bb0d80d4 100644 --- a/src/openforms/submissions/logic/actions.py +++ b/src/openforms/submissions/logic/actions.py @@ -2,14 +2,13 @@ import json from dataclasses import dataclass -from typing import Any, Mapping, TypedDict +from typing import Any, Mapping, Self, TypedDict from django.core.cache import cache from django.core.serializers.json import DjangoJSONEncoder from glom import assign from json_logic import jsonLogic -from typing_extensions import Self from openforms.dmn.service import evaluate_dmn from openforms.formio.datastructures import FormioData diff --git a/src/openforms/tests/e2e/input_validation_base.py b/src/openforms/tests/e2e/input_validation_base.py index b36e3f1a0b..a2e30d4c99 100644 --- a/src/openforms/tests/e2e/input_validation_base.py +++ b/src/openforms/tests/e2e/input_validation_base.py @@ -1,4 +1,4 @@ -from typing import ClassVar, TypedDict +from typing import ClassVar, NotRequired, TypedDict, Unpack from django.test import override_settings, tag from django.urls import reverse @@ -7,7 +7,6 @@ from furl import furl from playwright.async_api import Page, expect from rest_framework import status -from typing_extensions import NotRequired, Unpack from openforms.formio.typing import Component from openforms.forms.models import Form diff --git a/src/openforms/utils/api_clients.py b/src/openforms/utils/api_clients.py index bcc8d5cf26..3125a84523 100644 --- a/src/openforms/utils/api_clients.py +++ b/src/openforms/utils/api_clients.py @@ -1,7 +1,6 @@ -from typing import Generic, Iterator, TypeVar +from typing import Generic, Iterator, TypedDict, TypeVar from ape_pie import APIClient -from typing_extensions import TypedDict # py3.11 import from typing T = TypeVar("T") From 8f7e883665c4e6ed6b18c50dce6a2da99ef7c2ba Mon Sep 17 00:00:00 2001 From: Viicos <65306057+Viicos@users.noreply.github.com> Date: Tue, 23 Jul 2024 16:59:13 +0200 Subject: [PATCH 6/8] [#3197] Update to 3.12 in the rest of the codebase --- .github/workflows/ci.yml | 8 ++++---- .github/workflows/code_quality.yml | 12 ++++++------ .github/workflows/dockerhub-description.yml | 2 +- .github/workflows/sb.yml | 2 +- .readthedocs.yaml | 4 ++-- Dockerfile | 8 ++++---- INSTALL.rst | 2 +- pyright.pyproject.toml | 2 +- 8 files changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5530c4b492..db351a31e5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,7 +48,7 @@ jobs: uses: maykinmedia/setup-django-backend@v1.3 with: apt-packages: 'libxml2 libxmlsec1 libxmlsec1-openssl gettext postgresql-client gdal-bin' - python-version: '3.10' + python-version: '3.12' optimize-postgres: 'yes' pg-service: 'postgres' setup-node: 'yes' @@ -143,7 +143,7 @@ jobs: uses: maykinmedia/setup-django-backend@v1.3 with: apt-packages: 'libxml2 libxmlsec1 libxmlsec1-openssl gettext postgresql-client gdal-bin' - python-version: '3.10' + python-version: '3.12' optimize-postgres: 'yes' pg-service: 'postgres' setup-node: 'yes' @@ -221,7 +221,7 @@ jobs: uses: maykinmedia/setup-django-backend@v1.3 with: apt-packages: 'libxml2 libxmlsec1 libxmlsec1-openssl gettext postgresql-client gdal-bin' - python-version: '3.10' + python-version: '3.12' optimize-postgres: 'yes' pg-service: 'postgres' setup-node: 'yes' @@ -292,7 +292,7 @@ jobs: uses: maykinmedia/setup-django-backend@v1.3 with: apt-packages: 'libxml2 libxmlsec1 libxmlsec1-openssl gdal-bin' - python-version: '3.10' + python-version: '3.12' setup-node: 'no' working-directory: 'open-forms' diff --git a/.github/workflows/code_quality.yml b/.github/workflows/code_quality.yml index 8451f916e4..4d6290a8f9 100644 --- a/.github/workflows/code_quality.yml +++ b/.github/workflows/code_quality.yml @@ -31,7 +31,7 @@ jobs: uses: maykinmedia/setup-django-backend@v1.3 with: apt-packages: 'libxml2 libxmlsec1 libxmlsec1-openssl gdal-bin' - python-version: '3.10' + python-version: '3.12' setup-node: 'no' - uses: isort/isort-action@v1.1.0 with: @@ -49,7 +49,7 @@ jobs: uses: maykinmedia/setup-django-backend@v1.3 with: apt-packages: 'libxml2 libxmlsec1 libxmlsec1-openssl gdal-bin' - python-version: '3.10' + python-version: '3.12' setup-node: 'no' - name: Run black run: | @@ -65,7 +65,7 @@ jobs: uses: maykinmedia/setup-django-backend@v1.3 with: apt-packages: 'libxml2 libxmlsec1 libxmlsec1-openssl gdal-bin' - python-version: '3.10' + python-version: '3.12' setup-node: 'no' - name: Run flake8 id: flake8 @@ -108,7 +108,7 @@ jobs: uses: maykinmedia/setup-django-backend@v1.3 with: apt-packages: 'libxml2 libxmlsec1 libxmlsec1-openssl gdal-bin' - python-version: '3.10' + python-version: '3.12' setup-node: 'no' - name: Run manage.py makemigrations --check --dry-run run: | @@ -140,7 +140,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: - python-version: '3.10' + python-version: '3.12' - name: Run linter run: python ./bin/lint_dependencies.py @@ -153,7 +153,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: - python-version: '3.10' + python-version: '3.12' - name: Install additional dependencies run: | pip install uv diff --git a/.github/workflows/dockerhub-description.yml b/.github/workflows/dockerhub-description.yml index bc591a5daa..874b7e1844 100644 --- a/.github/workflows/dockerhub-description.yml +++ b/.github/workflows/dockerhub-description.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: - python-version: '3.10' + python-version: '3.12' cache: 'pip' cache-dependency-path: 'docker/ci/requirements.txt' - name: Install dependencies diff --git a/.github/workflows/sb.yml b/.github/workflows/sb.yml index aeca4e9c1c..fd888e96bd 100644 --- a/.github/workflows/sb.yml +++ b/.github/workflows/sb.yml @@ -26,7 +26,7 @@ jobs: uses: maykinmedia/setup-django-backend@v1.2 with: apt-packages: 'libxml2 libxmlsec1 libxmlsec1-openssl gdal-bin' - python-version: '3.10' + python-version: '3.12' optimize-postgres: 'no' setup-node: 'yes' npm-ci-flags: '--legacy-peer-deps' diff --git a/.readthedocs.yaml b/.readthedocs.yaml index b15e73e91d..42014ae2b7 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -8,14 +8,14 @@ sphinx: configuration: docs/conf.py build: - os: 'ubuntu-20.04' + os: 'ubuntu-22.04' apt_packages: - libxml2-dev - libxmlsec1-dev - libxmlsec1-openssl - wget tools: - python: '3.10' + python: '3.12' jobs: post_checkout: - bash bin/rtd_post_checkout.sh diff --git a/Dockerfile b/Dockerfile index bc61fdc576..85a2a42352 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,7 +9,7 @@ FROM openformulieren/open-forms-sdk:${SDK_RELEASE} as sdk-image # Stage 1 - Backend build environment # includes compilers and build tooling to create the environment -FROM python:3.10-slim-bookworm AS backend-build +FROM python:3.12-slim-bookworm AS backend-build RUN apt-get update && apt-get upgrade -y && apt-get install -y --no-install-recommends \ pkg-config \ @@ -39,7 +39,7 @@ COPY ./patches /tmp/patches RUN apt-get update && apt-get install -y --no-install-recommends \ git \ && rm -rf /var/lib/apt/lists/* \ - && /tmp/patches/apply.sh /usr/local/lib/python3.10/site-packages + && /tmp/patches/apply.sh /usr/local/lib/python3.12/site-packages # Stage 2 - Install frontend deps and build assets FROM node:20-bookworm-slim AS frontend-build @@ -60,7 +60,7 @@ COPY ./src /app/src RUN npm run build # Stage 3 - Build docker image suitable for production -FROM python:3.10-slim-bookworm +FROM python:3.12-slim-bookworm # Stage 3.1 - Set up the needed production dependencies # install all the dependencies for GeoDjango @@ -94,7 +94,7 @@ COPY ./bin/check_celery_worker_liveness.py ./bin/report_component_problems.py ./ VOLUME ["/app/log", "/app/media", "/app/private_media", "/app/certifi_ca_bundle"] # copy backend build deps -COPY --from=backend-build /usr/local/lib/python3.10 /usr/local/lib/python3.10 +COPY --from=backend-build /usr/local/lib/python3.12 /usr/local/lib/python3.12 COPY --from=backend-build /usr/local/bin/uwsgi /usr/local/bin/uwsgi COPY --from=backend-build /usr/local/bin/celery /usr/local/bin/celery diff --git a/INSTALL.rst b/INSTALL.rst index 79c223bda7..4a44a36046 100644 --- a/INSTALL.rst +++ b/INSTALL.rst @@ -21,7 +21,7 @@ Prerequisites You need the following libraries and/or programs: -* `Python`_ 3.10 +* `Python`_ 3.12 * Python `Virtualenv`_ and `Pip`_ * `PostgreSQL`_ 10 or above * `Redis`_ for `Celery`_ to work diff --git a/pyright.pyproject.toml b/pyright.pyproject.toml index 5703f0dac2..e4791095b0 100644 --- a/pyright.pyproject.toml +++ b/pyright.pyproject.toml @@ -35,5 +35,5 @@ exclude = [ ] ignore = [] -pythonVersion = "3.10" +pythonVersion = "3.12" pythonPlatform = "Linux" From 6c6117e1d5d913f6c78d7098367475b52300ef55 Mon Sep 17 00:00:00 2001 From: Viicos <65306057+Viicos@users.noreply.github.com> Date: Tue, 23 Jul 2024 17:26:22 +0200 Subject: [PATCH 7/8] [#3197] Update `flake8` and fix new error --- requirements/ci.txt | 6 +++--- requirements/dev.txt | 6 +++--- requirements/type-checking.txt | 6 +++--- src/openforms/submissions/tests/test_submission_status.py | 4 +++- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/requirements/ci.txt b/requirements/ci.txt index 4de2e52dca..c95724eb9b 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -434,7 +434,7 @@ faker==23.1.0 # via # factory-boy # zgw-consumers -flake8==6.0.0 +flake8==7.1.0 # via -r requirements/test-tools.in flower==2.0.1 # via @@ -700,7 +700,7 @@ psycopg==3.2.1 # via # -c requirements/base.txt # -r requirements/base.txt -pycodestyle==2.10.0 +pycodestyle==2.12.0 # via flake8 pycountry==23.12.11 # via @@ -719,7 +719,7 @@ pydyf==0.8.0 # weasyprint pyee==11.1.0 # via playwright -pyflakes==3.0.1 +pyflakes==3.2.0 # via flake8 pygments==2.17.2 # via diff --git a/requirements/dev.txt b/requirements/dev.txt index 1825b2bb0b..209193cb0e 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -468,7 +468,7 @@ faker==23.1.0 # -c requirements/ci.txt # -r requirements/ci.txt # factory-boy -flake8==6.0.0 +flake8==7.1.0 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -784,7 +784,7 @@ psycopg==3.2.1 # via # -c requirements/ci.txt # -r requirements/ci.txt -pycodestyle==2.10.0 +pycodestyle==2.12.0 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -810,7 +810,7 @@ pyee==11.1.0 # -c requirements/ci.txt # -r requirements/ci.txt # playwright -pyflakes==3.0.1 +pyflakes==3.2.0 # via # -c requirements/ci.txt # -r requirements/ci.txt diff --git a/requirements/type-checking.txt b/requirements/type-checking.txt index 78eb8c3d7d..644812a879 100644 --- a/requirements/type-checking.txt +++ b/requirements/type-checking.txt @@ -465,7 +465,7 @@ faker==23.1.0 # -c requirements/ci.txt # -r requirements/ci.txt # factory-boy -flake8==6.0.0 +flake8==7.1.0 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -773,7 +773,7 @@ psycopg==3.2.1 # via # -c requirements/ci.txt # -r requirements/ci.txt -pycodestyle==2.10.0 +pycodestyle==2.12.0 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -798,7 +798,7 @@ pyee==11.1.0 # -c requirements/ci.txt # -r requirements/ci.txt # playwright -pyflakes==3.0.1 +pyflakes==3.2.0 # via # -c requirements/ci.txt # -r requirements/ci.txt diff --git a/src/openforms/submissions/tests/test_submission_status.py b/src/openforms/submissions/tests/test_submission_status.py index 5774e8b4c8..654bd46dc7 100644 --- a/src/openforms/submissions/tests/test_submission_status.py +++ b/src/openforms/submissions/tests/test_submission_status.py @@ -93,7 +93,9 @@ def test_wrongly_formatted_token(self): def test_invalid_token_timestamp(self): submission = SubmissionFactory.create(completed=True, metadata__tasks_ids=[]) # can't reverse because bad format lol - check_status_url = f"/api/v2/submissions/{submission.uuid}/$$$-{'a'*20}/status" + check_status_url = ( + f"/api/v2/submissions/{submission.uuid}/$$$-{'a' * 20}/status" + ) response = self.client.get(check_status_url) From 533f12b92488d0725becf88906725c3eb54d94c6 Mon Sep 17 00:00:00 2001 From: Viicos <65306057+Viicos@users.noreply.github.com> Date: Tue, 23 Jul 2024 21:00:11 +0200 Subject: [PATCH 8/8] [#3197] Add missing RTD dependencies --- .readthedocs.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 42014ae2b7..ea9cfb171b 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -14,6 +14,7 @@ build: - libxmlsec1-dev - libxmlsec1-openssl - wget + - libmagic1 tools: python: '3.12' jobs: