apache_beam.typehints.typehints module¶
Syntax & semantics for type-hinting custom-functions/PTransforms in the SDK.
This module defines type-hinting objects and the corresponding syntax for type-hinting function arguments, function return types, or PTransform object themselves. TypeHint’s defined in the module can be used to implement either static or run-time type-checking in regular Python code.
Type-hints are defined by ‘indexing’ a type-parameter into a defined CompositeTypeHint instance:
‘List[int]’.
Valid type-hints are partitioned into two categories: simple, and composite.
Simple type hints are type hints based on a subset of Python primitive types: int, bool, float, str, object, None, and bytes. No other primitive types are allowed.
Composite type-hints are reserved for hinting the types of container-like Python objects such as ‘list’. Composite type-hints can be parameterized by an inner simple or composite type-hint, using the ‘indexing’ syntax. In order to avoid conflicting with the namespace of the built-in container types, when specifying this category of type-hints, the first letter should be capitalized. The following composite type-hints are permitted. NOTE: ‘T’ can be any of the type-hints listed or a simple Python type:
Any
Union[T, T, T]
Optional[T]
Tuple[T, T]
Tuple[T, …]
List[T]
KV[T, T]
Dict[T, T]
Set[T]
Iterable[T]
Iterator[T]
Generator[T]
Type-hints can be nested, allowing one to define type-hints for complex types:
‘List[Tuple[int, int, str]]
In addition, type-hints can be used to implement run-time type-checking via the ‘type_check’ method on each TypeConstraint.
- apache_beam.typehints.typehints.WindowedValue¶
alias of
WindowedTypeConstraint