From 5dabbe65d57bd6c7a5e96b0a80a1622d062450f5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 May 2026 17:45:48 +0000 Subject: [PATCH 1/2] Bump pydantic-xml from 2.20.0 to 2.21.0 Bumps [pydantic-xml](https://github.com/dapper91/pydantic-xml) from 2.20.0 to 2.21.0. - [Release notes](https://github.com/dapper91/pydantic-xml/releases) - [Changelog](https://github.com/dapper91/pydantic-xml/blob/master/CHANGELOG.rst) - [Commits](https://github.com/dapper91/pydantic-xml/compare/v2.20.0...v2.21.0) --- updated-dependencies: - dependency-name: pydantic-xml dependency-version: 2.21.0 dependency-type: direct:production update-type: version-update:semver-minor ... 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 b83c5134b2..1d3d14810d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -80,7 +80,7 @@ dependencies = [ "pycountry>=26.2.16,<27", "pycryptodome>=3.18,<4", "pydantic-settings>=2.14.1,<3", - "pydantic-xml>=2.20.0,<3", + "pydantic-xml>=2.21.0,<3", "pydantic[email]>=2.13.4,<3", "pyinstrument>=5.0,<6", "PyJWT>=2.8,<3", diff --git a/uv.lock b/uv.lock index 6642a2826a..aec2cc0d6f 100644 --- a/uv.lock +++ b/uv.lock @@ -2202,7 +2202,7 @@ requires-dist = [ { name = "pycryptodome", specifier = ">=3.18,<4" }, { name = "pydantic", extras = ["email"], specifier = ">=2.13.4,<3" }, { name = "pydantic-settings", specifier = ">=2.14.1,<3" }, - { name = "pydantic-xml", specifier = ">=2.20.0,<3" }, + { name = "pydantic-xml", specifier = ">=2.21.0,<3" }, { name = "pyinstrument", specifier = ">=5.0,<6" }, { name = "pyjwt", specifier = ">=2.8,<3" }, { name = "pyld", specifier = "==3.0.0" }, @@ -2690,15 +2690,15 @@ wheels = [ [[package]] name = "pydantic-xml" -version = "2.20.0" +version = "2.21.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pydantic" }, { name = "pydantic-core" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cf/ab/5589aac52a5601bc91122625043034898c66fbe9fedce6785bfc6ef6e69e/pydantic_xml-2.20.0.tar.gz", hash = "sha256:38eb71fb66c05c31c632a50e964c273f67dafddc5aa7c64cd6bd2b487dc2eeaf", size = 26440, upload-time = "2026-04-11T21:24:23.967Z" } +sdist = { url = "https://files.pythonhosted.org/packages/13/87/085533e0873b2f80bdeb12156ffe5dddae7ee55573e2057ad574d73e3b6a/pydantic_xml-2.21.0.tar.gz", hash = "sha256:678ba9149c24e190ad94d6e3ce47f94cbb1409fd88d7df65d3d26939ff669ed0", size = 26825, upload-time = "2026-05-17T15:24:19.534Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7d/e0/e0baac028479a09b2b46d09c8f0b2a32d4991e7c7bd13c544e64c6ff86d0/pydantic_xml-2.20.0-py3-none-any.whl", hash = "sha256:b492819830ff368124c9f8b53ea23953373422eebded2393e9d99008a086e07a", size = 42882, upload-time = "2026-04-11T21:24:25.096Z" }, + { url = "https://files.pythonhosted.org/packages/8e/b1/278da37b539595b2cb6bb4fb3da1d69ff084c7bf5cc143f0a444550dc41a/pydantic_xml-2.21.0-py3-none-any.whl", hash = "sha256:966b8990746528304ebb96c97db7603ee3faf38f06266247b1fa444dbc16f8d6", size = 43449, upload-time = "2026-05-17T15:24:21.182Z" }, ] [[package]] From 5647f915b7abd9cf2e41f6947c2d2db6c141733a Mon Sep 17 00:00:00 2001 From: Jonathan Green Date: Wed, 27 May 2026 11:15:45 -0300 Subject: [PATCH 2/2] Align from_xml override with pydantic-xml 2.21.0 signature pydantic-xml 2.21.0 added an empty_as_string parameter to BaseXmlModel.from_xml. Add it to the Boundless override so the signature stays compatible with the supertype and mypy passes. --- .../manager/integration/license/boundless/model/xml.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/palace/manager/integration/license/boundless/model/xml.py b/src/palace/manager/integration/license/boundless/model/xml.py index 9c09324381..a67da0a7e7 100644 --- a/src/palace/manager/integration/license/boundless/model/xml.py +++ b/src/palace/manager/integration/license/boundless/model/xml.py @@ -43,6 +43,7 @@ def from_xml( cls, source: str | bytes, context: dict[str, Any] | None = None, + empty_as_string: bool = False, **kwargs: Any, ) -> Self: """ @@ -55,7 +56,9 @@ def from_xml( if "parser" not in kwargs: kwargs["parser"] = etree.XMLParser(recover=True) try: - return super().from_xml(source, context, **kwargs) + return super().from_xml( + source, context, empty_as_string=empty_as_string, **kwargs + ) except AttributeError: # Because we are using a very lenient XML parser, we can end up with # None coming back from the XML parser, which causes an AttributeError