Typing support
Runtype supports a wide-range of types and typing constructs, however full-support is still work in progress.
For now, some constructs are available for validation, but not for dispatch.
Here is the detailed list:
Types / Constructs |
Validation |
Dispatch |
---|---|---|
Primitives (None, bool, float, int, str, etc.) |
✔ |
✔ |
Date primitives (datetime, date, time, timedelta) |
✔ |
✔ |
Containers, non-generic (list, tuple, dict) |
✔ |
✔ |
Callable, non-generic (callable) |
✔ |
✔ |
abc.Set, abc.MutableMapping, etc. |
✔ |
✔ |
typing.AbstractSet |
✔ |
✔ |
typing.Any |
✔ |
✔ |
typing.Union, Optional |
✔ |
✔ |
typing.Type (Type[x]) |
✔ |
✔ |
typing.Literal |
✔ |
✔ |
Generic containers (list[x], tuple[x], dict[x]) |
✔ |
TODO |
Infinite tuple (tuple[x, …]) |
✔ |
TODO |
Generic callable |
TODO |
TODO |
typing.IO |
TODO |
TODO |
TypeVar |
TODO |
TODO |
Protocol |
TODO |
TODO |