diff --git a/src/linearization.py b/src/linearization.py index 32e3996a7610fac45cca0bd75652e90341e8052d..5f04a018d9c18d514bc931fd67298c838508c054 100644 --- a/src/linearization.py +++ b/src/linearization.py @@ -17,6 +17,7 @@ import numpy as np +from .multi_domain import MultiDomain from .operators.operator import Operator from .sugar import makeOp from .utilities import check_object_identity @@ -124,6 +125,8 @@ class Linearization(Operator): return self._metric def __getitem__(self, name): + if not isinstance(self.domain, MultiDomain): + return NotImplemented return self.new(self._val[name], self._jac.ducktape_left(name)) def __neg__(self): diff --git a/src/operators/diagonal_operator.py b/src/operators/diagonal_operator.py index 670e972219734c997d7abb14768da2be957650a8..557878278965838430033e96eb466c0f3e188368 100644 --- a/src/operators/diagonal_operator.py +++ b/src/operators/diagonal_operator.py @@ -94,7 +94,8 @@ class DiagonalOperator(EndomorphicOperator): raise ValueError("spaces and domain must have the same length") for i, j in enumerate(self._spaces): if diagonal.domain[i] != self._domain[j]: - raise ValueError("Mismatch:\n{diagonal.domain[i]}\n{self._domain[j]}") + raise ValueError(f"Mismatch between:\n{diagonal.domain[i]}\n" + f"and:\n{self._domain[j]}") if self._spaces == tuple(range(len(self._domain))): self._spaces = None # shortcut