From 2b03b808ac33860fbbb9339c05434dd848331675 Mon Sep 17 00:00:00 2001 From: Shadowbroker <43977454+BigBodyCobain@users.noreply.github.com> Date: Thu, 21 May 2026 10:18:40 -0600 Subject: [PATCH] Fix #279: add defusedxml to uv.lock so Docker image installs it (#282) defusedxml is listed in backend/pyproject.toml line 18 but was missing from uv.lock. The backend Dockerfile uses `uv sync --frozen --no-dev`, which only installs packages pinned in the lockfile. As a result the runtime image shipped without defusedxml even though pyproject declared it, and any import path that touched it crashed at startup with: ModuleNotFoundError: No module named 'defusedxml' Affected import sites: - backend/services/psk_reporter_fetcher.py:10 - backend/services/fetchers/aircraft_database.py:21 - backend/services/cctv_pipeline.py:990 - backend/services/cctv_pipeline.py:1018 Fix: regenerate uv.lock so defusedxml v0.7.1 (matching the >=0.7.1 specifier in pyproject) is locked. No code changes -- only the lockfile. Next image build picks it up via the existing `uv sync --frozen` step. Reporter: external user. Thanks for catching the missing dep. --- uv.lock | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/uv.lock b/uv.lock index a207ae0..fa417f4 100644 --- a/uv.lock +++ b/uv.lock @@ -82,6 +82,7 @@ dependencies = [ { name = "cachetools" }, { name = "cloudscraper" }, { name = "cryptography" }, + { name = "defusedxml" }, { name = "fastapi" }, { name = "feedparser" }, { name = "httpx" }, @@ -120,6 +121,7 @@ requires-dist = [ { name = "cachetools", specifier = "==5.5.2" }, { name = "cloudscraper", specifier = "==1.2.71" }, { name = "cryptography", specifier = ">=41.0.0" }, + { name = "defusedxml", specifier = ">=0.7.1" }, { name = "fastapi", specifier = "==0.115.12" }, { name = "feedparser", specifier = "==6.0.10" }, { name = "httpx", specifier = "==0.28.1" }, @@ -600,6 +602,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a4/87/d03a718e7bfdbbebaa4b6a66ba5bb069bc00a84e5ad176d8198cc785cd42/dbus_fast-4.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f6af190d8306f1bd506740c39701f5c211aa31ac660a3fcb401ebb97d33166c7", size = 1627620, upload-time = "2026-02-01T21:05:46.878Z" }, ] +[[package]] +name = "defusedxml" +version = "0.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/d5/c66da9b79e5bdb124974bfe172b4daf3c984ebd9c2a06e2b8a4dc7331c72/defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69", size = 75520, upload-time = "2021-03-08T10:59:26.269Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61", size = 25604, upload-time = "2021-03-08T10:59:24.45Z" }, +] + [[package]] name = "deprecated" version = "1.3.1"