Skip to content
This repository was archived by the owner on Jan 14, 2020. It is now read-only.

Conversation

@walles
Copy link

@walles walles commented Feb 16, 2018

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.

`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:66: error: "Type[List[Any]]" has no attribute "__getslice__"
src/blam.py:88: error: Module has no attribute "div"
src/blam.py:142: error: Slice index must be an integer or None
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, these should be
fixed. Also, the slice index is currently a `float` and that code needs
to be fixed.

`__getslice__` and `div` are most likely leftovers from earlier Python
versions and should be benign. 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.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant