[ 
https://issues.apache.org/jira/browse/BEAM-7060?focusedWorklogId=305928&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-305928
 ]

ASF GitHub Bot logged work on BEAM-7060:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 03/Sep/19 21:58
            Start Date: 03/Sep/19 21:58
    Worklog Time Spent: 10m 
      Work Description: udim commented on pull request #9283: [BEAM-7060] Type 
hints from Python 3 annotations
URL: https://github.com/apache/beam/pull/9283#discussion_r320496053
 
 

 ##########
 File path: sdks/python/apache_beam/typehints/decorators.py
 ##########
 @@ -265,23 +368,34 @@ def _unpack_positional_arg_hints(arg, hint):
   return hint
 
 
-def getcallargs_forhints(func, *typeargs, **typekwargs):
-  """Like inspect.getcallargs, but understands that Tuple[] and an Any unpack.
+def getcallargs_forhints(using_var_hints, func, *typeargs, **typekwargs):
+  """Like inspect.getcallargs, with support for declaring default args as Any.
+
+  In Python 2, understands that Tuple[] and an Any unpack.
+
+  Args:
+    using_var_hints: For variable length arguments, whether to expect the bound
 
 Review comment:
   I think we might be able to auto-detect the variation in use.
   
   For VAR_POSITIONAL:
   - True if we got tuple(Tuple[FOO, ...]), otherwise False
   
   For VAR_KEYWORD:
   - True if we got tuple(Dict[FOO, BAR]), otherwise False
 
----------------------------------------------------------------
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:
us...@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 305928)
    Time Spent: 13h 20m  (was: 13h 10m)

> Design Py3-compatible typehints annotation support in Beam 3.
> -------------------------------------------------------------
>
>                 Key: BEAM-7060
>                 URL: https://issues.apache.org/jira/browse/BEAM-7060
>             Project: Beam
>          Issue Type: Sub-task
>          Components: sdk-py-core
>            Reporter: Valentyn Tymofieiev
>            Assignee: Udi Meiri
>            Priority: Major
>             Fix For: 2.16.0
>
>          Time Spent: 13h 20m
>  Remaining Estimate: 0h
>
> Existing [Typehints implementaiton in 
> Beam|[https://github.com/apache/beam/blob/master/sdks/python/apache_beam/typehints/
> ] heavily relies on internal details of CPython implementation, and some of 
> the assumptions of this implementation broke as of Python 3.6, see for 
> example: https://issues.apache.org/jira/browse/BEAM-6877, which makes  
> typehints support unusable on Python 3.6 as of now. [Python 3 Kanban 
> Board|https://issues.apache.org/jira/secure/RapidBoard.jspa?rapidView=245&view=detail]
>  lists several specific typehints-related breakages, prefixed with "TypeHints 
> Py3 Error".
> We need to decide whether to:
> - Deprecate in-house typehints implementation.
> - Continue to support in-house implementation, which at this point is a stale 
> code and has other known issues.
> - Attempt to use some off-the-shelf libraries for supporting 
> type-annotations, like  Pytype, Mypy, PyAnnotate.
> WRT to this decision we also need to plan on immediate next steps to unblock 
> adoption of Beam for  Python 3.6+ users. One potential option may be to have 
> Beam SDK ignore any typehint annotations on Py 3.6+.
> cc: [~udim], [~altay], [~robertwb].



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to