facebookresearch / facebookresearch/SlowFast
lake8 testing SlowFast on Python 3.8.0
- Dominant language
- Python
- Stars
- 7.4k
- Forks
- 1.3k
- PR merge metrics
- No merged PRs in 30d
Description
[Two imports are commented out](https://github.com/facebookresearch/SlowFast/blob/master/slowfast/utils/ava_evaluation/label_map_util.py#L25-L26) which creates _undefined names_ that will raise NameError at runtime.
[flake8](http://flake8.pycqa.org) testing of https://github.com/facebookresearch/SlowFast on Python 3.8.0
$ __flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics__
```
231./slowfast/utils/ava_evaluation/label_map_util.py:139:21: F821 undefined name 'string_int_label_map_pb2'
232 label_map = string_int_label_map_pb2.StringIntLabelMap()
233 ^
234./slowfast/utils/ava_evaluation/label_map_util.py:141:13: F821 undefined name 'text_format'
235 text_format.Merge(label_map_string, label_map)
236 ^
237./slowfast/utils/ava_evaluation/label_map_util.py:142:16: F821 undefined name 'text_format'
238 except text_format.ParseError:
239 ^
2403 F821 undefined name 'string_int_label_map_pb2'
2413
```
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__](https://github.com/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.
Contributor guide
Assessment
This issue has not been assessed yet.