From c3f4bc95872387300c040d6894df9b313e27bbe7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Dec 2025 13:50:38 +0000 Subject: [PATCH 1/4] Bump django from 5.2.8 to 6.0 Bumps [django](https://github.com/django/django) from 5.2.8 to 6.0. - [Commits](https://github.com/django/django/compare/5.2.8...6.0) --- updated-dependencies: - dependency-name: django dependency-version: '6.0' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- pyproject.toml | 2 +- uv.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index b7eb1a8a4..f54b05861 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ requires-python = ">=3.14,<4.0.0" readme = "README.md" license = { text = "MIT" } dependencies = [ - "django (>=5.1.7,<6.0.0)", + "django>=5.1.7,<7.0.0", "dotenv (>=0.9.9,<0.10.0)", "gunicorn (>=23.0.0,<24.0.0)", "jinja2 (>=3.1.6,<4.0.0)", diff --git a/uv.lock b/uv.lock index 6f36f2be0..e3c741cf9 100644 --- a/uv.lock +++ b/uv.lock @@ -400,16 +400,16 @@ wheels = [ [[package]] name = "django" -version = "5.2.8" +version = "6.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "asgiref" }, { name = "sqlparse" }, { name = "tzdata", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/05/a2/933dbbb3dd9990494960f6e64aca2af4c0745b63b7113f59a822df92329e/django-5.2.8.tar.gz", hash = "sha256:23254866a5bb9a2cfa6004e8b809ec6246eba4b58a7589bc2772f1bcc8456c7f", size = 10849032, upload-time = "2025-11-05T14:07:32.778Z" } +sdist = { url = "https://files.pythonhosted.org/packages/15/75/19762bfc4ea556c303d9af8e36f0cd910ab17dff6c8774644314427a2120/django-6.0.tar.gz", hash = "sha256:7b0c1f50c0759bbe6331c6a39c89ae022a84672674aeda908784617ef47d8e26", size = 10932418, upload-time = "2025-12-03T16:26:21.878Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5e/3d/a035a4ee9b1d4d4beee2ae6e8e12fe6dee5514b21f62504e22efcbd9fb46/django-5.2.8-py3-none-any.whl", hash = "sha256:37e687f7bd73ddf043e2b6b97cfe02fcbb11f2dbb3adccc6a2b18c6daa054d7f", size = 8289692, upload-time = "2025-11-05T14:07:28.761Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ae/f19e24789a5ad852670d6885f5480f5e5895576945fcc01817dfd9bc002a/django-6.0-py3-none-any.whl", hash = "sha256:1cc2c7344303bbfb7ba5070487c17f7fc0b7174bbb0a38cebf03c675f5f19b6d", size = 8339181, upload-time = "2025-12-03T16:26:16.231Z" }, ] [[package]] @@ -775,7 +775,7 @@ requires-dist = [ { name = "azure-storage-blob", specifier = ">=12.25.1,<13.0.0" }, { name = "azure-storage-queue", specifier = ">=12.13.0,<13.0.0" }, { name = "business-python", specifier = ">=2.1.0,<3.0.0" }, - { name = "django", specifier = ">=5.1.7,<6.0.0" }, + { name = "django", specifier = ">=5.1.7,<7.0.0" }, { name = "django-extensions", specifier = ">=4.1,<5.0" }, { name = "django-linear-migrations", specifier = ">=2.19.0" }, { name = "django-qsessions", specifier = ">=2.0.0,<3.0.0" }, From 187aab1b14593d6f829c8e7de988fd43b6f1f5a4 Mon Sep 17 00:00:00 2001 From: Mat Moore Date: Thu, 18 Dec 2025 15:31:56 +0000 Subject: [PATCH 2/4] update pre-commit hook for ruff --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 16c0f1db0..d95e939b4 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -10,7 +10,7 @@ repos: - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: v0.11.12 + rev: v0.14.8 hooks: # Run the linter. - id: ruff-check From 84a605d6dc17364c9e65837fe78072bf870db2b9 Mon Sep 17 00:00:00 2001 From: Mat Moore Date: Thu, 18 Dec 2025 15:32:08 +0000 Subject: [PATCH 3/4] add django-upgrade tool --- .pre-commit-config.yaml | 5 +++++ pyproject.toml | 1 + uv.lock | 23 +++++++++++++++++++++++ 3 files changed, 29 insertions(+) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d95e939b4..542c963fb 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,3 +17,8 @@ repos: args: [--fix] # Run the formatter. - id: ruff-format + + - repo: https://github.com/adamchainz/django-upgrade + rev: '1.29.1' + hooks: + - id: django-upgrade diff --git a/pyproject.toml b/pyproject.toml index f54b05861..6a13f6ebe 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,6 +29,7 @@ dependencies = [ "django-extensions (>=4.1,<5.0)", "azure-monitor-opentelemetry (>=1.8.1,<2.0.0)", "django-linear-migrations>=2.19.0", + "django-upgrade>=1.29.1", ] [dependency-groups] diff --git a/uv.lock b/uv.lock index e3c741cf9..f0cb54dc5 100644 --- a/uv.lock +++ b/uv.lock @@ -462,6 +462,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/da/65/1cb57321118a54f832facd82d862a0bdfb910bc3b258d18a1a9eed44de07/django_qsessions-2.1.0-py3-none-any.whl", hash = "sha256:4be9a35a1a636ff9b2454b06eec84e655b443136097ad5570cc53d531b296bfe", size = 13960, upload-time = "2025-09-21T18:33:28.282Z" }, ] +[[package]] +name = "django-upgrade" +version = "1.29.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "tokenize-rt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9d/dc/8242d9fbf0ae64feccbdd781fa741db5cf0521127a26ed9361e5f2f31f1b/django_upgrade-1.29.1.tar.gz", hash = "sha256:8c53b6bcd326a638a5dc908a707f26d71593bad5789b33775c90a8dc8a76afd5", size = 39638, upload-time = "2025-10-23T16:34:57.003Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f0/b0/c9fe7b4dbfcacb2402169f8189d4f7fa1609237317d714f01143d167db1c/django_upgrade-1.29.1-py3-none-any.whl", hash = "sha256:39a4d71365189ce8a5ccab534b2d1f0ed69c71bea7f1ef4c46041918d5247e64", size = 68847, upload-time = "2025-10-23T16:34:55.511Z" }, +] + [[package]] name = "djlint" version = "1.36.4" @@ -737,6 +749,7 @@ dependencies = [ { name = "django-extensions" }, { name = "django-linear-migrations" }, { name = "django-qsessions" }, + { name = "django-upgrade" }, { name = "dotenv" }, { name = "factory-boy" }, { name = "gunicorn" }, @@ -779,6 +792,7 @@ requires-dist = [ { name = "django-extensions", specifier = ">=4.1,<5.0" }, { name = "django-linear-migrations", specifier = ">=2.19.0" }, { name = "django-qsessions", specifier = ">=2.0.0,<3.0.0" }, + { name = "django-upgrade", specifier = ">=1.29.1" }, { name = "dotenv", specifier = ">=0.9.9,<0.10.0" }, { name = "factory-boy", specifier = ">=3.3.3" }, { name = "gunicorn", specifier = ">=23.0.0,<24.0.0" }, @@ -1780,6 +1794,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/35/10/09ad4e5ccc27224ed8377a6f3d191034242c404d0c1ad5f119d79fb18363/time_machine-3.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:8b47da89595dc3c7f0b52f1e3f3f8da8325037f3746e66d74bebac9f42f2a989", size = 16944, upload-time = "2025-11-21T13:56:32.254Z" }, ] +[[package]] +name = "tokenize-rt" +version = "6.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/69/ed/8f07e893132d5051d86a553e749d5c89b2a4776eb3a579b72ed61f8559ca/tokenize_rt-6.2.0.tar.gz", hash = "sha256:8439c042b330c553fdbe1758e4a05c0ed460dbbbb24a606f11f0dee75da4cad6", size = 5476, upload-time = "2025-05-23T23:48:00.035Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/f0/3fe8c6e69135a845f4106f2ff8b6805638d4e85c264e70114e8126689587/tokenize_rt-6.2.0-py2.py3-none-any.whl", hash = "sha256:a152bf4f249c847a66497a4a95f63376ed68ac6abf092a2f7cfb29d044ecff44", size = 6004, upload-time = "2025-05-23T23:47:58.812Z" }, +] + [[package]] name = "tqdm" version = "4.67.1" From 65a6b2d8c562986b41ecbeb6f52c69adbf844c3b Mon Sep 17 00:00:00 2001 From: Mat Moore Date: Thu, 18 Dec 2025 15:33:32 +0000 Subject: [PATCH 4/4] modernise code (suggested by django-upgrade) --- manage_breast_screening/core/middleware/basic_auth.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manage_breast_screening/core/middleware/basic_auth.py b/manage_breast_screening/core/middleware/basic_auth.py index 3728fbd8a..89451a474 100644 --- a/manage_breast_screening/core/middleware/basic_auth.py +++ b/manage_breast_screening/core/middleware/basic_auth.py @@ -45,7 +45,7 @@ def process_view( return None # Validate Authorization header - header = request.META.get("HTTP_AUTHORIZATION", "") + header = request.headers.get("authorization", "") if not header.startswith("Basic "): return self._unauthorized_response() try: