[
https://issues.apache.org/jira/browse/BEAM-7060?focusedWorklogId=287976&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-287976
]
ASF GitHub Bot logged work on BEAM-7060:
----------------------------------------
Author: ASF GitHub Bot
Created on: 02/Aug/19 14:50
Start Date: 02/Aug/19 14:50
Worklog Time Spent: 10m
Work Description: chadrik commented on pull request #9179: [BEAM-7060]
Use typing in type decorators of core.py
URL: https://github.com/apache/beam/pull/9179#discussion_r309855331
##########
File path: sdks/python/apache_beam/transforms/core.py
##########
@@ -89,9 +90,9 @@
]
# Type variables
-T = typehints.TypeVariable('T')
-K = typehints.TypeVariable('K')
-V = typehints.TypeVariable('V')
+T = typing.TypeVar('T')
Review comment:
there's a block of code just above this that imports objects from
`typehints`:
```python
from apache_beam.typehints import KV
from apache_beam.typehints import Any
from apache_beam.typehints import Iterable
from apache_beam.typehints import Union
from apache_beam.typehints import trivial_inference
```
This seems to be the only place left in the code where import typehint types
into the module namespace (other than some tests, and one place within the
typehints module itself, `typehints.trivial_inference`). I think it will
reduce confusion as we start to import `typing` objects into the module
namespace if we access these typehint types as `typehints.KV`, `typehints.Any`.
----------------------------------------------------------------
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:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 287976)
Time Spent: 6h (was: 5h 50m)
> 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
> Time Spent: 6h
> 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
(v7.6.14#76016)