Skip to content
This repository has been archived by the owner on Dec 29, 2022. It is now read-only.

Undefined names in article_analytics.py #4

Open
cclauss opened this issue Mar 23, 2021 · 0 comments
Open

Undefined names in article_analytics.py #4

cclauss opened this issue Mar 23, 2021 · 0 comments

Comments

@cclauss
Copy link

cclauss commented Mar 23, 2021

% flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics

./wikiloop-analysis/cross-edits-analysis/article_analytics.py:58:50: F821 undefined name 'article'
            articles_with_non_zero_scores.append(article)
                                                 ^
./wikiloop-analysis/cross-edits-analysis/article_analytics.py:59:27: F821 undefined name 'columns_to_count'
            for column in columns_to_count:
                          ^
2     F821 undefined name 'article'
2

https://flake8.pycqa.org/en/latest/user/error-codes.html

On the flake8 test selection, this PR does not focus on "style violations" (the majority of flake8 error codes that psf/black can autocorrect). Instead, these tests are focus on runtime safety and correctness:

  • E9 tests are about Python syntax errors usually raised because flake8 can not build an Abstract Syntax Tree (AST). Often these issues are a sign of unused code or code that has not been ported to Python 3. These would be compile-time errors in a compiled language but in a dynamic language like Python, they result in the script halting/crashing on the user.
  • F63 tests are usually about the confusion between identity and equality in Python. Use ==/!= to compare str, bytes, and int literals is the classic case. These are areas where a == b is True but a is b is False (or vice versa). Python >= 3.8 will raise SyntaxWarnings on these instances.
  • F7 tests logic errors and syntax errors in type hints
  • F82 tests are almost always undefined names which are usually a sign of a typo, missing imports, or code that has not been ported to Python 3. These also would be compile-time errors in a compiled language but in Python, a NameError is raised which will halt/crash the script on the user.

@HaoranFei

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant