[ 
https://issues.apache.org/jira/browse/BEAM-12413?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dmytro Kozhevin updated BEAM-12413:
-----------------------------------
    Description: 
Returning a slice of the tuple doesn't alter the type inference output. For 
example:
  
 {{@beam.typehints.with_output_types(Tuple[int, str])}}
 {{class Foo(beam.DoFn):}}
 {{  def process(self, a):}}
 {{    yield a, str(a)}}
 {{pcoll = beam.Pipeline() }}| beam.Create([1]) | beam.ParDo(Foo()) | 
beam.Map(lambda x: x[1:])}}
 {{print(pcoll.element_type)}}
  
 This prints Tuple[int, str], while the real type is str. At worst, this should 
return Any.

  was:
Returning a slice of the tuple doesn't alter the type inference output. For 
example:
  
 {{@beam.typehints.with_output_types(Tuple[int, str])}}
 {{class Foo(beam.DoFn):}}
 {{  def process(self, a):}}
 {{    yield a, str(a)}}
{{pcoll = }}{{beam.Pipeline()}}{{ | beam.Create([1]) | beam.ParDo(Foo()) | 
beam.Map(lambda x: x[1:])}}
 {{print(pcoll.element_type)}}
  
 This prints Tuple[int, str], while the real type is str. At worst, this should 
return Any.


> Type inference works incorrectly with tuple slices
> --------------------------------------------------
>
>                 Key: BEAM-12413
>                 URL: https://issues.apache.org/jira/browse/BEAM-12413
>             Project: Beam
>          Issue Type: Bug
>          Components: sdk-py-core
>            Reporter: Dmytro Kozhevin
>            Priority: P2
>
> Returning a slice of the tuple doesn't alter the type inference output. For 
> example:
>   
>  {{@beam.typehints.with_output_types(Tuple[int, str])}}
>  {{class Foo(beam.DoFn):}}
>  {{  def process(self, a):}}
>  {{    yield a, str(a)}}
>  {{pcoll = beam.Pipeline() }}| beam.Create([1]) | beam.ParDo(Foo()) | 
> beam.Map(lambda x: x[1:])}}
>  {{print(pcoll.element_type)}}
>   
>  This prints Tuple[int, str], while the real type is str. At worst, this 
> should return Any.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to