You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@beam.apache.org by GitBox <gi...@apache.org> on 2020/09/25 01:53:44 UTC

[GitHub] [beam] chadrik edited a comment on pull request #12881: [BEAM-7746] Get mypy passing on runners.worker

chadrik edited a comment on pull request #12881:
URL: https://github.com/apache/beam/pull/12881#issuecomment-698675941


   > > 23:36:24 apache_beam/runners/worker/data_plane.py:714: error: Incompatible return value type (got "Optional[GrpcClientDataChannel]", expected "GrpcClientDataChannel")  [return-value]
   > 
   > Sure this shouldn't return optional as well?
   
   When I do that, it just causes errors elsewhere.  I couldn't find a solution.  I think there's some implicit guarantee going on here.  I'd like to identify where it is and add an assert, a cast, and/or a comment, but I don't know the system well enough.
   
   > > 23:36:24 apache_beam/runners/worker/operations.py:722: error: Argument 1 to "append" of "list" has incompatible type "Tuple[DoOperation, Iterable[SplitResultResidual]]"; expected "Tuple[DoOperation, SplitResultResidual]"  [arg-type]
   > 
   > self.dofn_runner.process does return an `Iterable[SplitResultResidual]`
   
   yeah, the problem is that `self.execution_context.delayed_applications` is a list of `Tuple[..., SplitResultResidual]`.  
    and we're trying to append to that list a `Tuple[..., Iterable[SplitResultResidual]]`.   Should this be a list of `Union`, or is something wrong here?
   
   > > 23:36:24 apache_beam/runners/worker/bundle_processor.py:241: error: Signature of "try_split" incompatible with supertype "Operation"  [override]
   > 
   > The supertype returns Optional[Any], which should be compatible with this.
   
   The number of arguments is different. 
   
   > 
   > > 23:36:24 apache_beam/runners/worker/bundle_processor.py:978: error: "Operation" has no attribute "add_timer_info"  [attr-defined]
   > > 23:36:24 apache_beam/runners/worker/bundle_processor.py:990: error: "Operation" has no attribute "process_timer"  [attr-defined]
   > 
   > These will always be DoOperations.
   
   Does `create_execution_tree` return `OrderedDict[str, operations.DoOperation]`? 
   
   
   > 
   > > 23:36:24 apache_beam/runners/worker/bundle_processor.py:1568: error: Argument 5 to "StateBackedSideInputMap" has incompatible type "Coder"; expected "WindowedValueCoder"  [arg-type]
   > 
   > I think this will always hold, we just don't know it due to having deserialized it with the generic mechanisms.
   
   I changed `BeamTransformFactory.get_input_coders` to return `Dict[str, coders.WindowedValueCoder]`.  Does that seem right?
   
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org