On Wed, Nov 7, 2018 at 10:30 PM Zach Moshe <[email protected]> wrote:
>
> (Adding the public Beam-dev group)
>
> On Wed, Nov 7, 2018 at 2:26 PM Zach Moshe <[email protected]> wrote:
>>
>> Hi,
>> I've noticed that `beam.core.pvalue.PCollection` doesn't support a 
>> `__getitem__()` that returns a `GenericMeta` type (like regular types from 
>> typing do).
>>
>> While `PCollection[MyObject]` seems to work when used inside a method 
>> definition (e.g. `def func(coll: PCollection[MyObject]): ...`,

This is because that's not actually interpreted except by pytype. It
will also crash in Python 3.

>> it crashes when I try to create a type alias from it:
>>
>> MyCollection = PCollection[MyObject]
>>
>> TypeError: 'type' object has no attribute '__getitem__'
>>
>> Is that intended? Any reason why we shouldn't be able to create an alias?
>>
>> For some general context - my use-case is that I have an alias for the basic 
>> type I'm using throughout my module. I want to have another alias for a 
>> PCollection of these because I have several methods in the code which I want 
>> to annotate with pytypes and make sure they receive only a PCollection of 
>> MyObjects. It seems to be only supported if I copy the type definition to 
>> all methods instead of aliasing it as MyCollection and using the alias.
>>
>> To make it clear - I'm using regular pytype, not Beam's typehints (I want 
>> regular static type checking, not the pipeline's initialization one).
>>
>> I would be grateful if anyone, from either of the groups, could help me 
>> understand if I'm doing something wrong, expecting something that is 
>> intentionally not done, or it's some kind of a bug/missing-feature so I 
>> could mitigate appropriately.

It's just a missing feature. If you want to give
https://github.com/apache/beam/pull/6983 an LGTM it won't be anymore
:).

>> Many thanks,
>> Zach
>>
> --
> You received this message because you are subscribed to the Google Groups 
> "dataflow-beam" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/a/google.com/d/msgid/dataflow-beam/CAD%3DREx2EinaqMwyNX1TcWTRpfTW4inqnoWrvTw5qkQuJW0o_-w%40mail.gmail.com.

Reply via email to