This adds support for the new syntactic type aliases added in Python 3.12. A few examples:
type NullableStr = str | None
type Pair[T] = tuple[T, T]
type NullableStrPair = Pair[NullableStr]
msgspec now supports these type aliases, except in cases where the type alias is recursive. For example, the following type isn't supported:
type Link[T] = tuple[T, Link[T] | None]
The internal datastructure we use to store type information was not designed to handle recursive types like these; supporting them will require a larger refactor.
This adds support for the new syntactic type aliases added in Python 3.12. A few examples:
msgspec now supports these type aliases, except in cases where the type alias is recursive. For example, the following type isn't supported:
The internal datastructure we use to store type information was not designed to handle recursive types like these; supporting them will require a larger refactor.
Fixes #579.