-
Notifications
You must be signed in to change notification settings - Fork 4.4k
Open
Labels
Description
What would you like to happen?
CoGroupByKey produces Dict[K, Union[...]], which is narrower than TypedDict. If the user follows the CoGroupByKey with a ParDo where the function takes TypeDict as input, e.g. ParDo(fn(element: TypedDict))
, then the type check in Beam fails.
Users having types like:
myTypeDict = TypedDict(
'myTypeDict', {
'field_1': List[Field1Type],
'field_2': List[Field2Type],
})
are using less specific hints like myLessSpecificDict = Dict(str, Union[List[Field1Type], List[Field2Type]])
in order to satisfy beams typing.
We could have a first-class typehint TypeDict, which may be easier once we deprecate Python 3.7.
Issue Priority
Priority: 3 (nice-to-have improvement)
Issue Components
- Component: Python SDK
- Component: Java SDK
- Component: Go SDK
- Component: Typescript SDK
- Component: IO connector
- Component: Beam examples
- Component: Beam playground
- Component: Beam katas
- Component: Website
- Component: Spark Runner
- Component: Flink Runner
- Component: Samza Runner
- Component: Twister2 Runner
- Component: Hazelcast Jet Runner
- Component: Google Cloud Dataflow Runner