From 0a291e8cafc51eeb46c4ee2481a2a2bc02d91c62 Mon Sep 17 00:00:00 2001 From: Danilo Lessa Bernardineli Date: Thu, 14 Dec 2023 17:36:30 -0300 Subject: [PATCH] Add Type Hints for cadCAD objects (#313) * add types.py --- cadCAD/types.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 cadCAD/types.py diff --git a/cadCAD/types.py b/cadCAD/types.py new file mode 100644 index 00000000..5b47964e --- /dev/null +++ b/cadCAD/types.py @@ -0,0 +1,18 @@ +from typing import TypedDict, Callable, Union, Dict, List, Tuple + +State = Dict[str, object] +Parameters = Dict[str, object] +Substep = int +StateHistory = List[List[State]] +PolicyOutput = Dict[str, object] +StateVariable = object + +PolicyFunction = Callable[[Parameters, Substep, StateHistory, State], PolicyOutput] +StateUpdateFunction = Callable[[Parameters, Substep, StateHistory, State, PolicyOutput], Tuple[str, StateVariable]] + +class StateUpdateBlock(TypedDict): + policies: Dict[str, PolicyFunction] + variables: Dict[str, StateUpdateFunction] + + +StateUpdateBlocks = List[StateUpdateBlock]