[ 
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