stuffmatic / blam

🚨 No longer maintained. Check out fSpy instead 🚨 A camera and projector calibration toolkit for Blender that also does automatic 3D reconstruction of geometry with rectangular faces.
https://fspy.io/
GNU General Public License v3.0
644 stars 95 forks source link

Add a mypy config file #27

Open walles opened 6 years ago

walles commented 6 years ago

mypy provides optional static type checking: https://pypi.python.org/pypi/mypy

With this config file in place, here's what I get:

src/blam.py:62: error: Implicit generic "Any". Use 'typing.List' and specify generic parameters
src/blam.py:170: error: Access to generic instance variables via class is ambiguous
src/blam.py:370: error: Incompatible types in assignment (expression has type "complex", variable has type "float")
src/blam.py:1097: error: Need type annotation for variable
src/blam.py:1102: error: Need type annotation for variable
src/blam.py:1151: error: Need type annotation for variable
src/blam.py:1210: error: Name 'f10Idx' is not defined
src/blam.py:1224: error: Name 'f10dx' is not defined
src/blam.py:1400: error: Need type annotation for variable
src/blam.py:1422: error: Need type annotation for variable
src/blam.py:1471: error: Need type annotation for variable

The most suspicious warnings are the ones about f10Idx and f10dx being accessed without first being set to anything. Mixing float with complex could be fine. The ambiguous generics thing needs more research.

The rest of the warnings are mypy complaining about that it can't deduce the types for the contents of various collections. Those can be added in a separate PR if this gets merged.