Details
-
New Feature
-
Status: Resolved
-
P2
-
Resolution: Won't Fix
-
None
-
None
Description
This existing test is wrong:
def test_map_wrapper_optional_output(self): # Optional does affect output type (Nones are NOT ignored). def map_fn(unused_element: int) -> typehints.Optional[int]: return 1 th = beam.Map(map_fn).get_type_hints() self.assertEqual(th.input_types, ((int, ), {})) self.assertEqual(th.output_types, ((typehints.Optional[int], ), {}))
The resulting output type should be int.
inital output hint: Optional[int] with wrapper: Iterable[Optional[int]] with DoFn.default_type_hints: Optional[int]
However any Nones returned by a DoFn's process method are dropped, so the actual element_type returned is plain int.