Hi Norio, Thank you for your interest. If you would like to work on this I can assign the JIRA to you. I do not think this change in sufficient or correct. This reads as if SplitLinesToWordsFn returns a Tuple of things, however instead it produces three unrelated collections of different types.
I think the work for fixing the issue should be: - Clarifying what the API needs to look like for typehints in case of multiple outputs. - Updating documentation for that (pydocs & https://beam.apache.org/documentation/sdks/python-type-safety/). - Adding examples. At that point we can choose to either update current examples or add new examples. Thank you, Ahmet On Mon, Dec 11, 2017 at 2:48 AM, Akagi Norio <redtree.dev1...@gmail.com> wrote: > Hi, > > I’m working on a task BEAM-3280 (Add typehints with TaggedOutput) and just > want to clarify before I send a PR. > https://issues.apache.org/jira/browse/BEAM-3280 > > Is it sufficient to modify the code in apache_beam.cookbook.multiple_ > output_pardo.py like below ? > > # with_outputs allows accessing the explicitly tagged outputs of a DoFn. > split_lines_result = (lines > | > beam.ParDo(SplitLinesToWordsFn().with_output_types( > beam.typehints.Tuple[ > beam.typehints.Generator[unicode], > beam.typehints.Generator[unicode], > beam.typehints.Generator[int], > ], > )).with_outputs( > SplitLinesToWordsFn.OUTPUT_TAG_SHORT_WORDS, > > SplitLinesToWordsFn.OUTPUT_TAG_CHARACTER_COUNT, > main='words') > ) > > Or do you expect something different to add a typehint to multiple outputs? > > Regards, > Norio Akagi >