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

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

                Author: ASF GitHub Bot
            Created on: 30/Oct/19 19:51
            Start Date: 30/Oct/19 19:51
    Worklog Time Spent: 10m 
      Work Description: chadrik commented on pull request #9056: [BEAM-7746] 
Add python type hints
URL: https://github.com/apache/beam/pull/9056#discussion_r340825002
 
 

 ##########
 File path: sdks/python/tox.ini
 ##########
 @@ -160,16 +160,17 @@ commands =
 [testenv:py27-lint]
 # Checks for py2 syntax errors
 deps =
+  -r build-requirements.txt
 
 Review comment:
   This is required if we want `tox` to work on its own, and I really really 
do.  Using gradle to run tox tasks adds a lot of overhead and I kind of hate 
it.  gradle creates a complete virtualenv just to build an sdist, then it 
creates another virtualenv to run tox (and IIRC it does this every time).  If I 
run tox directly it creates a single virtualenv for both sdist and the tox env 
and it reuses that virtualenv for subsequent runs of tox.  Gradle also just 
seems slow to start up.  Also, I can't pass individual tests to run when using 
gradle.  Let's just say that as a python developer, the gradle experience is 
the thing I like least about the Beam project.
   
   Yes, by adding the gen_proto requirements to `build-requirements.txt` and 
installing that in  the `setupVirtualenv` task I'm making that overhead worse, 
but I certainly didn't start that problem:  the code is currently installing 
`tox` every time that the `sdist` task is run, which is pointless.  In other 
words, `setupVirtualenv` is currently installing the union of all possible task 
requirements, and I'm simply following that pattern.  
   
   I could add a feature to `setupVirtualenv` to provide a requirements file, 
which would let us cut out `tox` from the `sdist` task which would probably end 
up in a net overall win, because tox has a lot of deps.  Should I do that here 
or in a followup PR?
   
   I've been meaning to bring up some of these issues on the list.  I assume 
the reason for the two step test process (sdist + tox, each with its own 
virtualenv) is to ensure that tox is using an sdist built in the same way every 
time, using python2, just as it would be for distribution?  
   
 
----------------------------------------------------------------
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: 336429)
    Time Spent: 14h 50m  (was: 14h 40m)

> Add type hints to python code
> -----------------------------
>
>                 Key: BEAM-7746
>                 URL: https://issues.apache.org/jira/browse/BEAM-7746
>             Project: Beam
>          Issue Type: New Feature
>          Components: sdk-py-core
>            Reporter: Chad Dombrova
>            Assignee: Chad Dombrova
>            Priority: Major
>          Time Spent: 14h 50m
>  Remaining Estimate: 0h
>
> As a developer of the beam source code, I would like the code to use pep484 
> type hints so that I can clearly see what types are required, get completion 
> in my IDE, and enforce code correctness via a static analyzer like mypy.
> This may be considered a precursor to BEAM-7060
> Work has been started here:  [https://github.com/apache/beam/pull/9056]
>  
>  



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

Reply via email to