anopara/genetic-drawing

Six undefined names in genetic_drawing.py

Closed this issue · 0 comments

flake8 testing of https://github.com/anopara/genetic-drawing on Python 3.8.3

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

./genetic_drawing.py:51:9: F821 undefined name 'self'
        self.brushesRange = ranges
        ^
./genetic_drawing.py:54:9: F821 undefined name 'self'
        self.sampling_mask = cv2.cvtColor(cv2.imread(img_path),cv2.COLOR_BGR2GRAY)
        ^
./genetic_drawing.py:275:33: F821 undefined name 'rangeY'
            print(" Y range: ", rangeY, 'X range: ', rangeX)
                                ^
./genetic_drawing.py:275:54: F821 undefined name 'rangeX'
            print(" Y range: ", rangeY, 'X range: ', rangeX)
                                                     ^
./genetic_drawing.py:276:44: F821 undefined name 'rangeY'
            print('bg coord: ', posY, posY+rangeY, posX, posX+rangeX)
                                           ^
./genetic_drawing.py:276:63: F821 undefined name 'rangeX'
            print('bg coord: ', posY, posY+rangeY, posX, posX+rangeX)
                                                              ^
6     F821 undefined name 'self'
6

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.