Fix $app attribute access in cheetah templates

Fixes https://github.com/galaxyproject/galaxy/issues/20365,
which occurs only on Python 3.13 on datasets that can be visualized by a
display application.
This commit is contained in:
mvdbeek
2025-06-09 11:55:43 +02:00
parent 90fad91813
commit d61d3fed03
+7
View File
@@ -46,3 +46,10 @@ class Container(LagomContainer):
return self[dep_type]
except UnresolvableType:
return None
def __getitem__(self, dep_type: Type[T]) -> T:
if isinstance(dep_type, str):
# Workaround for accessing attributes of $app inside cheetah templates.
# Cheetah's searchList implementation tests access via __getitem__ before __getattr__.
return getattr(self, dep_type) # type: ignore[unreachable]
return self.resolve(dep_type)