pygritia.cast module

Provides CastAction action class It provides automatic conversion both direction evaluation and update.

class pygritia.cast.CastAction(expr_type: Any, result_type: Any, expr: Any)[source]

Bases: pygritia.core.LazyAction

Cast action

evaluate(namespace: Mapping[Union[str, LazyMixin], Any]) → Any[source]

Evaluate expression

To substitute actual value for specific symbol, give value with keyword argument.

expr

Target expression

expr_type

Converter from result type to expression type

result_type

Converter from expression type to result type

update(val: Any, namespace: Mapping[Union[str, LazyMixin], Any]) → Any[source]

Update value of expression

If the expression is readonly, it raises AttributeError

pygritia.cast.lazy_cast(target_type: Callable[[_T], _U], expr: _T, expr_type: Optional[Callable[[_U], _T]] = None) → _U[source]

Create automatic casting lazy expression

Parameters:
  • target_type – Converter from expression type to result type
  • expr – Target expression
  • expr_type

    Converter from result type to expression type

    If it is omitted, the constructor of evaluated expr will be used.

Returns:

Casting expression