Hey all, I just helped a user debug an issue that arose from them accidentally passing a DoOutputsTuple into `Flatten`, e.g. something like ``` inputs_A = p | beam.Create([1,2,3]) inputs_B = inputs_A | ParDo(MyDoFn()).with_outputs("even") # this is actually a tuple (inputs_A, inputs_B) | Flatten() ```
This resulted in really confusing typehinting errors about pcollections of pcollections. I've also seen this result in confusion in another place where someone ended up with some kind of unpicklablepcollection elements in a pcollection. I put up a PR[1] to validate the inputs to Flatten but I realize now it's a backwards incompatible change. Does anyone have any comments or objections to this change? I didn't even realize you could apply transforms to raw iterables before this (e.g. `[1, 2, 3] | beam.Map(lambda x:x+1)`) [1] https://github.com/apache/beam/pull/35874