You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by "cclauss (JIRA)" <ji...@apache.org> on 2018/03/28 13:30:00 UTC

[jira] [Created] (BEAM-3959) Eliminating Python "undefined names"

cclauss created BEAM-3959:
-----------------------------

             Summary: Eliminating Python "undefined names"
                 Key: BEAM-3959
                 URL: https://issues.apache.org/jira/browse/BEAM-3959
             Project: Beam
          Issue Type: Bug
          Components: sdk-py-core, sdk-py-harness
            Reporter: cclauss
            Assignee: Ahmet Altay


My sense is that E901,E999,F821,F822,F823 are the "showstopper" flake8 issues that can halt the runtime with a SyntaxError, NameError, etc. The other flake8 issues are merely "style violations" -- useful for readability but they do not effect runtime safety.

Work done under https://issues.apache.org/jira/browse/BEAM-3738 has enabled Jenkins to run linters on Python 3 code.  One of the advantages of the *flake8* linter is that it can detect "undefined names" in Python code so it has been added to the [Python 2|https://github.com/apache/beam/tree/master/sdks/python/run_pylint.sh] and [Python 3|https://github.com/apache/beam/tree/master/sdks/python/run_mini_py3lint.sh] test runs.

https://github.com/apache/beam/pull/4798 currently lists 23 undefined names when flake8 is run under Python 3.  Solutions to some of these undefined names can be found in:
* https://github.com/apache/beam/pull/4561
* https://github.com/apache/beam/pull/4774
* https://github.com/apache/beam/pull/4820

Once the Beam codebase can pass a flake8 F821 test with no undefined names, then F821 should be added to the the other "showstopper" issues as described in https://github.com/apache/beam/pull/4798



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)