TokenError: EOF in multi-line statement in final_inner_test.py
cclauss opened this issue · 1 comments
cclauss commented
Hi JFP... I hope all is well in your new role. CCC
flake8 testing of https://github.com/jfpuget/Kaggle_TrackML on Python 3.8.3
$ flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
./src/final_inner_test.py:1:1: E902 TokenError: EOF in multi-line statement
./src/data_prep_final.py:55:14: F821 undefined name 'tqdm'
for x in tqdm(df.itertuples(name=None, index=False)):
^
./src/final_test_150.py:165:14: F821 undefined name 'tqdm'
for i in tqdm(range(125)):
^
1 E902 TokenError: EOF in multi-line statement
2 F821 undefined name 'tqdm'
3
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.
jfpuget commented
Right, I commented the tqdm import in the file. It should either be uncommented or call to tqdm removed.