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/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 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]]