@@ -98,7 +98,7 @@ def __complex__(self) -> complex:
9898 return complex (self .value )
9999
100100
101- class Expression :
101+ class Expression ( Generic [ _S ]) :
102102 """An object for evaluating functions of finite element functions.
103103
104104 Represents a mathematical expression evaluated at a pre-defined set
@@ -213,9 +213,9 @@ def _create_expression(dtype):
213213 def eval (
214214 self ,
215215 mesh : Mesh ,
216- entities : np .ndarray ,
217- values : np . ndarray | None = None ,
218- ) -> np . ndarray :
216+ entities : npt . NDArray [ np .int32 ] ,
217+ values : npt . NDArray [ _S ] | None = None ,
218+ ) -> npt . NDArray [ _S ] :
219219 """Evaluate Expression on entities.
220220
221221 Args:
@@ -271,12 +271,12 @@ def eval(
271271 )
272272 return values
273273
274- def X (self ) -> np . ndarray :
274+ def X (self ) -> npt . NDArray :
275275 """Evaluation points on the reference cell."""
276276 return self ._cpp_object .X ()
277277
278278 @property
279- def ufl_expression (self ):
279+ def ufl_expression (self ) -> ufl . core . expr . Expr :
280280 """Original UFL Expression."""
281281 return self ._ufl_expression
282282
@@ -306,7 +306,7 @@ def code(self) -> str:
306306 return self ._code
307307
308308 @property
309- def dtype (self ) -> np . dtype :
309+ def dtype (self ) -> npt . DTypeLike :
310310 """Expression value dtype."""
311311 return np .dtype (self ._cpp_object .dtype )
312312
0 commit comments