decorator¶
import ampform.dynamics.decorator
Tools for defining lineshapes with sympy
.
-
class
UnevaluatedExpression
(*args)[source]¶ Bases:
sympy.core.expr.Expr
Base class for classes that expressions with an
evaluate()
method.Derive from this class when decorating a class with
implement_expr()
orimplement_doit_method()
. It is important to derive fromUnevaluatedExpression
, because anevaluate()
method has to be implemented.
-
create_expression
(cls: Type[UnevaluatedExpression], *args: Any, evaluate: bool = False, **kwargs: Any) → Expr[source]¶ Helper function for implementing
Expr.__new__
.See e.g. source code of
BlattWeisskopfSquared
.
-
implement_doit_method
() → Callable[[Type[UnevaluatedExpression]], Type[UnevaluatedExpression]][source]¶ Implement
doit()
method for anUnevaluatedExpression
class.Implement a
doit
method for a class that derives fromExpr
(viaUnevaluatedExpression
).
-
implement_expr
(n_args: int) → Callable[[Type[UnevaluatedExpression]], Type[UnevaluatedExpression]][source]¶ Decorator for classes that derive from
UnevaluatedExpression
.Implement a
__new__
anddoit
method for a class that derives fromExpr
(viaUnevaluatedExpression
).
-
implement_new_method
(n_args: int) → Callable[[Type[UnevaluatedExpression]], Type[UnevaluatedExpression]][source]¶ Implement
__new__()
method for anUnevaluatedExpression
class.Implement a
__new__
method for a class that derives fromExpr
(viaUnevaluatedExpression
).