Type-check spatialmath
Spatialmath should be type-checked using mypy; it is full of type annotations, but without a type-checker confirming them, they may be inaccurate. Running mypy reveals various errors; resolving the first few reveal many more (>500).
Generally, these should be resolved without changing the interface or implementation when possible.
Initial error, along with version info:
jbarnett@jbarnett-LT:~/spatialmath-python$ mypy --version
mypy 0.942
jbarnett@jbarnett-LT:~/spatialmath-python$ python --version
Python 3.10.12
jbarnett@jbarnett-LT:~/spatialmath-python$ mypy spatialmath
spatialmath/geom3d.py:717: error: Invalid "type: ignore" comment
spatialmath/geom3d.py:736: error: Invalid "type: ignore" comment
spatialmath/geom3d.py:755: error: Invalid "type: ignore" comment
spatialmath/geom3d.py:774: error: Invalid "type: ignore" comment
spatialmath/geom3d.py:992: error: Invalid "type: ignore" comment
spatialmath/geom3d.py:1022: error: Invalid "type: ignore" comment
spatialmath/geom3d.py:1050: error: Invalid "type: ignore" comment
Found 7 errors in 1 file (errors prevented further checking)
Next up:
jbarnett@jbarnett-LT:~/spatialmath-python$ mypy spatialmath
/home/jbarnett/.local/lib/python3.10/site-packages/numpy/__init__.pyi:651: error: Positional-only parameters are only supported in Python 3.8 and greater
Found 1 error in 1 file (errors prevented further checking)
Even though I'm running python 3.10, mypy complains; this is due to a bug in the version that ships in Ubuntu 22.04.
After upgrading mypy (by adding it as a dev dependency, and installing a virtual environment):
(.venv) jbarnett@jbarnett-LT:~/spatialmath-python$ mypy --version
mypy 1.13.0 (compiled: yes)
(.venv) jbarnett@jbarnett-LT:~/spatialmath-python$ mypy spatialmath
spatialmath/timing.py:11: error: Skipping analyzing "ansitable": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/_types_311.py:3: error: Module "typing" has no attribute "Self" [attr-defined]
spatialmath/base/_types_311.py:3: note: Use `from typing_extensions import Self` instead
spatialmath/base/_types_311.py:3: note: See https://mypy.readthedocs.io/en/stable/runtime_troubles.html#using-new-additions-to-the-typing-module
spatialmath/base/types.py:9: error: Incompatible import of "SE2Array" (imported name has type "type[ndarray[Any, Any]]", local name has type "type[ndarray[Any, Any]]") [assignment]
spatialmath/base/types.py:9: error: Incompatible import of "SO2Array" (imported name has type "type[ndarray[Any, Any]]", local name has type "type[ndarray[Any, Any]]") [assignment]
spatialmath/base/types.py:11: error: Incompatible import of "L" (imported name has type "typing_extensions._SpecialForm", local name has type "<typing special form>") [assignment]
spatialmath/base/symbolic.py:19: error: Skipping analyzing "sympy": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/symbolic.py:28: error: Incompatible types in assignment (expression has type "tuple[()]", variable has type "tuple[Any]") [assignment]
spatialmath/base/argcheck.py:291: error: Overloaded function signature 2 will never be matched: signature 1's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/argcheck.py:301: error: Overloaded function signature 3 will never be matched: signature 1's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/argcheck.py:301: error: Overloaded function signature 3 will never be matched: signature 2's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/argcheck.py:311: error: Overloaded function signature 4 will never be matched: signature 1's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/argcheck.py:311: error: Overloaded function signature 4 will never be matched: signature 2's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/vectors.py:21: error: Skipping analyzing "sympy": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/vectors.py:56: error: Incompatible types in assignment (expression has type "float | Any", variable has type "int") [assignment]
spatialmath/base/vectors.py:90: error: Incompatible types in assignment (expression has type "float | Any", variable has type "int") [assignment]
spatialmath/base/vectors.py:846: error: Unsupported left operand type for - ("list[float]") [operator]
spatialmath/base/vectors.py:846: error: Unsupported left operand type for - ("tuple[float, float, float]") [operator]
spatialmath/base/vectors.py:846: note: Both left and right operands are unions
spatialmath/base/transformsNd.py:27: error: Skipping analyzing "sympy": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/transformsNd.py:594: error: Overloaded function signatures 1 and 2 overlap with incompatible return types [overload-overlap]
spatialmath/base/transforms2d.py:22: error: Skipping analyzing "matplotlib.pyplot": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/transforms2d.py:22: error: Skipping analyzing "matplotlib": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/transforms2d.py:37: error: Skipping analyzing "sympy": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/transforms2d.py:66: error: Incompatible types in assignment (expression has type "float | ndarray[Any, dtype[Any]]", variable has type "float") [assignment]
spatialmath/base/transforms2d.py:464: error: Overloaded function signature 3 will never be matched: signature 1's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/transforms2d.py:474: error: Overloaded function signature 4 will never be matched: signature 2's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/transforms2d.py:654: error: Incompatible types in assignment (expression has type "ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None", variable has type "ndarray[tuple[Literal[3]], dtype[floating[Any]]]") [assignment]
spatialmath/base/transforms2d.py:665: error: No overload variant of "__mul__" of "ndarray" matches argument type "None" [operator]
spatialmath/base/transforms2d.py:665: note: Possible overload variants:
spatialmath/base/transforms2d.py:665: note: def __mul__(self, _SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]]] | bool | int | float | _NestedSequence[bool | int | float], /) -> ndarray[Any, dtype[floating[Any]]]
spatialmath/base/transforms2d.py:665: note: def __mul__(self, _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], /) -> ndarray[Any, dtype[complexfloating[Any, Any]]]
spatialmath/base/transforms2d.py:665: note: def __mul__(self, _SupportsArray[dtype[bool_ | number[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | number[Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], /) -> ndarray[Any, dtype[number[Any]]]
spatialmath/base/transforms2d.py:665: note: def __mul__(self, _SupportsArray[dtype[bool_ | integer[Any] | timedelta64]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | timedelta64]]] | bool | int | _NestedSequence[bool | int], /) -> ndarray[Any, dtype[timedelta64]]
spatialmath/base/transforms2d.py:665: note: def __mul__(self, _SupportsArray[dtype[object_]] | _NestedSequence[_SupportsArray[dtype[object_]]], /) -> Any
spatialmath/base/transforms2d.py:665: note: Right operand is of type "float | None"
spatialmath/base/transforms2d.py:666: error: Argument 1 to "cos" has incompatible type "float | None"; expected "SupportsFloat | SupportsIndex" [arg-type]
spatialmath/base/transforms2d.py:666: note: Left operand is of type "ndarray[Any, dtype[floating[Any]]] | Any"
spatialmath/base/transforms2d.py:667: error: Unsupported operand types for - ("None" and "float") [operator]
spatialmath/base/transforms2d.py:667: note: Left operand is of type "float | None"
spatialmath/base/transforms2d.py:667: note: Left operand is of type "ndarray[Any, dtype[floating[Any]]] | Any"
spatialmath/base/transforms2d.py:667: error: Argument 1 to "sin" has incompatible type "float | None"; expected "SupportsFloat | SupportsIndex" [arg-type]
spatialmath/base/transforms2d.py:694: error: Single overload definition, multiple required [misc]
spatialmath/base/transforms2d.py:699: error: Overloaded function implementation does not accept all possible arguments of signature 1 [misc]
spatialmath/base/transforms2d.py:699: error: Overloaded function implementation cannot produce return type of signature 1 [misc]
spatialmath/base/transforms2d.py:923: error: Incompatible types in assignment (expression has type "float | ndarray[Any, dtype[floating[Any]]]", variable has type "float") [assignment]
spatialmath/base/transforms2d.py:945: error: Incompatible types in assignment (expression has type "float | ndarray[Any, dtype[floating[Any]]]", variable has type "float") [assignment]
spatialmath/base/transforms2d.py:1134: error: Skipping analyzing "scipy.spatial": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/transforms2d.py:1213: error: Incompatible types in assignment (expression has type "float", variable has type "int") [assignment]
spatialmath/base/transforms2d.py:1229: error: Skipping analyzing "matplotlib.axes": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/transforms2d.py:1441: error: Incompatible types in assignment (expression has type "str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]", variable has type "str") [assignment]
spatialmath/base/transforms2d.py:1455: error: Incompatible types in assignment (expression has type "str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]", variable has type "str") [assignment]
spatialmath/base/quaternions.py:19: error: Skipping analyzing "scipy.interpolate": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/quaternions.py:19: error: Skipping analyzing "scipy": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/quaternions.py:79: error: Unsupported operand type for unary - ("list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]") [operator]
spatialmath/base/quaternions.py:81: error: Incompatible return value type (got "list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]", expected "ndarray[tuple[Literal[4]], dtype[floating[Any]]]") [return-value]
spatialmath/base/quaternions.py:109: error: Incompatible return value type (got "floating[Any]", expected "float") [return-value]
spatialmath/base/quaternions.py:187: error: Overloaded function signature 2 will never be matched: signature 1's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/quaternions.py:431: error: Unsupported operand types for ** ("list[float]" and "int") [operator]
spatialmath/base/quaternions.py:431: error: Unsupported operand types for ** ("tuple[float, float, float]" and "int") [operator]
spatialmath/base/quaternions.py:431: note: Left operand is of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]"
spatialmath/base/quaternions.py:432: error: Unsupported operand types for ** ("list[float]" and "int") [operator]
spatialmath/base/quaternions.py:432: error: Unsupported operand types for ** ("tuple[float, float, float]" and "int") [operator]
spatialmath/base/quaternions.py:432: note: Left operand is of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]"
spatialmath/base/quaternions.py:598: error: Argument "check" to "isrot" has incompatible type "bool | None"; expected "bool" [arg-type]
spatialmath/base/quaternions.py:878: error: Argument 1 to "_compute_cdf_sin_squared" has incompatible type "ndarray[Any, dtype[floating[Any]]]"; expected "float" [arg-type]
spatialmath/base/quaternions.py:923: error: Incompatible types in assignment (expression has type "float | ndarray[Any, dtype[Any]]", variable has type "list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None") [assignment]
spatialmath/base/quaternions.py:945: error: Unsupported operand types for / ("list[float]" and "int") [operator]
spatialmath/base/quaternions.py:945: error: Unsupported operand types for / ("tuple[float, ...]" and "int") [operator]
spatialmath/base/quaternions.py:945: note: Left operand is of type "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]"
spatialmath/base/quaternions.py:1091: error: Missing return statement [return]
spatialmath/base/quaternions.py:1131: error: Argument 2 to "replace" of "str" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/base/quaternions.py:1132: error: Value of type "tuple[str, str] | None" is not indexable [index]
spatialmath/base/graphics.py:5: error: Skipping analyzing "matplotlib": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/graphics.py:26: error: Skipping analyzing "matplotlib.pyplot": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/graphics.py:27: error: Skipping analyzing "matplotlib.patches": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/graphics.py:28: error: Skipping analyzing "mpl_toolkits.mplot3d.art3d": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/graphics.py:33: error: Skipping analyzing "mpl_toolkits.mplot3d": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/graphics.py:209: error: Argument 2 to "islistof" has incompatible type "tuple[type[tuple[Any, ...]], type[list[Any]]]"; expected "type[Any] | Callable[..., Any]" [arg-type]
spatialmath/base/graphics.py:210: error: Value of type "float" is not indexable [index]
spatialmath/base/graphics.py:211: error: Value of type "float" is not indexable [index]
spatialmath/base/graphics.py:242: error: Incompatible types in assignment (expression has type "list[tuple[Any, Any]]", variable has type "zip[tuple[Any, Any]]") [assignment]
spatialmath/base/graphics.py:412: error: Incompatible types in assignment (expression has type "list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]]", variable has type "float | None") [assignment]
spatialmath/base/graphics.py:484: error: Item "None" of "str | None" has no attribute "__iter__" (not iterable) [union-attr]
spatialmath/base/graphics.py:490: error: Incompatible types in assignment (expression has type "None", variable has type "str") [assignment]
spatialmath/base/graphics.py:502: error: Missing return statement [return]
spatialmath/base/graphics.py:582: error: Incompatible types in assignment (expression has type "list[str]", variable has type "str") [assignment]
spatialmath/base/graphics.py:635: error: Argument "fmt" to "_render2D" has incompatible type "tuple[Any, ...]"; expected "Callable[..., Any] | None" [arg-type]
spatialmath/base/graphics.py:696: error: Tuple index out of range [misc]
spatialmath/base/graphics.py:749: error: Argument 3 to "circle" has incompatible type "int | None"; expected "int" [arg-type]
spatialmath/base/graphics.py:799: error: Skipping analyzing "scipy.linalg": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/graphics.py:805: error: Skipping analyzing "scipy.stats.distributions": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/graphics.py:808: error: Unsupported operand types for * ("float" and "None") [operator]
spatialmath/base/graphics.py:808: note: Right operand is of type "float | None"
spatialmath/base/graphics.py:810: error: Incompatible types in assignment (expression has type "float | None", variable has type "float") [assignment]
spatialmath/base/graphics.py:812: error: Argument "resolution" to "circle" has incompatible type "int | None"; expected "int" [arg-type]
spatialmath/base/graphics.py:812: error: Argument "closed" to "circle" has incompatible type "bool | None"; expected "bool" [arg-type]
spatialmath/base/graphics.py:820: error: Missing return statement [return]
spatialmath/base/graphics.py:891: error: Incompatible default for argument "centre" (default has type "tuple[int, int, int]", argument has type "list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None") [assignment]
spatialmath/base/graphics.py:910: error: Argument 3 to "linspace" has incompatible type "int | None"; expected "SupportsIndex" [arg-type]
spatialmath/base/graphics.py:911: error: Argument 3 to "linspace" has incompatible type "int | None"; expected "SupportsIndex" [arg-type]
spatialmath/base/graphics.py:915: error: Value of type "list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:916: error: Value of type "list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:917: error: Tuple index out of range [misc]
spatialmath/base/graphics.py:917: error: Value of type "list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:980: error: Argument 1 to "getmatrix" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None"; expected "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" [arg-type]
spatialmath/base/graphics.py:1035: error: Unsupported operand types for * ("float" and "None") [operator]
spatialmath/base/graphics.py:1035: note: Right operand is of type "float | None"
spatialmath/base/graphics.py:1037: error: Incompatible types in assignment (expression has type "float | None", variable has type "float") [assignment]
spatialmath/base/graphics.py:1043: error: Argument 1 to "getvector" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None"; expected "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" [arg-type]
spatialmath/base/graphics.py:1108: error: Argument 1 to "ellipsoid" has incompatible type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]"; expected "ndarray[tuple[Literal[2], Literal[2]], dtype[floating[Any]]]" [arg-type]
spatialmath/base/graphics.py:1144: error: No overload variant of "linspace" matches argument types "int", "float", "float" [call-overload]
spatialmath/base/graphics.py:1144: note: Possible overload variants:
spatialmath/base/graphics.py:1144: note: def linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]]] | bool | int | float | _NestedSequence[bool | int | float], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]]] | bool | int | float | _NestedSequence[bool | int | float], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[False] = ..., dtype: None = ..., axis: SupportsIndex = ...) -> ndarray[Any, dtype[floating[Any]]]
spatialmath/base/graphics.py:1144: note: def linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[False] = ..., dtype: None = ..., axis: SupportsIndex = ...) -> ndarray[Any, dtype[complexfloating[Any, Any]]]
spatialmath/base/graphics.py:1144: note: def [_SCT: generic] linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[False] = ..., dtype: dtype[_SCT] | type[_SCT] | _SupportsDType[dtype[_SCT]] = ..., axis: SupportsIndex = ...) -> ndarray[Any, dtype[_SCT]]
spatialmath/base/graphics.py:1144: note: def linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[False] = ..., dtype: dtype[Any] | type[Any] | _SupportsDType[dtype[Any]] | str | tuple[Any, int] | tuple[Any, SupportsIndex | Sequence[SupportsIndex]] | list[Any] | _DTypeDict | tuple[Any, Any] | None = ..., axis: SupportsIndex = ...) -> ndarray[Any, dtype[Any]]
spatialmath/base/graphics.py:1144: note: def linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]]] | bool | int | float | _NestedSequence[bool | int | float], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]]] | bool | int | float | _NestedSequence[bool | int | float], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[True] = ..., dtype: None = ..., axis: SupportsIndex = ...) -> tuple[ndarray[Any, dtype[floating[Any]]], floating[Any]]
spatialmath/base/graphics.py:1144: note: def linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[True] = ..., dtype: None = ..., axis: SupportsIndex = ...) -> tuple[ndarray[Any, dtype[complexfloating[Any, Any]]], complexfloating[Any, Any]]
spatialmath/base/graphics.py:1144: note: def [_SCT: generic] linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[True] = ..., dtype: dtype[_SCT] | type[_SCT] | _SupportsDType[dtype[_SCT]] = ..., axis: SupportsIndex = ...) -> tuple[ndarray[Any, dtype[_SCT]], _SCT]
spatialmath/base/graphics.py:1144: note: def linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[True] = ..., dtype: dtype[Any] | type[Any] | _SupportsDType[dtype[Any]] | str | tuple[Any, int] | tuple[Any, SupportsIndex | Sequence[SupportsIndex]] | list[Any] | _DTypeDict | tuple[Any, Any] | None = ..., axis: SupportsIndex = ...) -> tuple[ndarray[Any, dtype[Any]], Any]
spatialmath/base/graphics.py:1145: error: No overload variant of "linspace" matches argument types "int", "float", "float" [call-overload]
spatialmath/base/graphics.py:1145: note: Possible overload variants:
spatialmath/base/graphics.py:1145: note: def linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]]] | bool | int | float | _NestedSequence[bool | int | float], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]]] | bool | int | float | _NestedSequence[bool | int | float], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[False] = ..., dtype: None = ..., axis: SupportsIndex = ...) -> ndarray[Any, dtype[floating[Any]]]
spatialmath/base/graphics.py:1145: note: def linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[False] = ..., dtype: None = ..., axis: SupportsIndex = ...) -> ndarray[Any, dtype[complexfloating[Any, Any]]]
spatialmath/base/graphics.py:1145: note: def [_SCT: generic] linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[False] = ..., dtype: dtype[_SCT] | type[_SCT] | _SupportsDType[dtype[_SCT]] = ..., axis: SupportsIndex = ...) -> ndarray[Any, dtype[_SCT]]
spatialmath/base/graphics.py:1145: note: def linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[False] = ..., dtype: dtype[Any] | type[Any] | _SupportsDType[dtype[Any]] | str | tuple[Any, int] | tuple[Any, SupportsIndex | Sequence[SupportsIndex]] | list[Any] | _DTypeDict | tuple[Any, Any] | None = ..., axis: SupportsIndex = ...) -> ndarray[Any, dtype[Any]]
spatialmath/base/graphics.py:1145: note: def linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]]] | bool | int | float | _NestedSequence[bool | int | float], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]]] | bool | int | float | _NestedSequence[bool | int | float], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[True] = ..., dtype: None = ..., axis: SupportsIndex = ...) -> tuple[ndarray[Any, dtype[floating[Any]]], floating[Any]]
spatialmath/base/graphics.py:1145: note: def linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[True] = ..., dtype: None = ..., axis: SupportsIndex = ...) -> tuple[ndarray[Any, dtype[complexfloating[Any, Any]]], complexfloating[Any, Any]]
spatialmath/base/graphics.py:1145: note: def [_SCT: generic] linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[True] = ..., dtype: dtype[_SCT] | type[_SCT] | _SupportsDType[dtype[_SCT]] = ..., axis: SupportsIndex = ...) -> tuple[ndarray[Any, dtype[_SCT]], _SCT]
spatialmath/base/graphics.py:1145: note: def linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[True] = ..., dtype: dtype[Any] | type[Any] | _SupportsDType[dtype[Any]] | str | tuple[Any, int] | tuple[Any, SupportsIndex | Sequence[SupportsIndex]] | list[Any] | _DTypeDict | tuple[Any, Any] | None = ..., axis: SupportsIndex = ...) -> tuple[ndarray[Any, dtype[Any]], Any]
spatialmath/base/graphics.py:1146: error: Name "z" is not defined [name-defined]
spatialmath/base/graphics.py:1205: error: List item 1 has incompatible type "float | list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]]"; expected "float" [list-item]
spatialmath/base/graphics.py:1208: error: Value of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:1208: error: Argument 3 to "linspace" has incompatible type "int | None"; expected "SupportsIndex" [arg-type]
spatialmath/base/graphics.py:1213: error: Value of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:1219: error: Value of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:1222: error: No overload variant of "get" of "dict" matches argument types "str", "bool" [call-overload]
spatialmath/base/graphics.py:1222: note: Possible overload variants:
spatialmath/base/graphics.py:1222: note: def get(self, str, /) -> Any | None
spatialmath/base/graphics.py:1222: note: def get(self, str, Any, /) -> Any
spatialmath/base/graphics.py:1222: note: def [_T] get(self, str, _T, /) -> Any | _T
spatialmath/base/graphics.py:1224: error: Value of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:1226: error: Value of type "float | list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]]" is not indexable [index]
spatialmath/base/graphics.py:1228: error: Value of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:1230: error: Value of type "float | list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]]" is not indexable [index]
spatialmath/base/graphics.py:1289: error: Argument 3 to "linspace" has incompatible type "int | None"; expected "SupportsIndex" [arg-type]
spatialmath/base/graphics.py:1290: error: Argument 3 to "linspace" has incompatible type "int | None"; expected "SupportsIndex" [arg-type]
spatialmath/base/graphics.py:1294: error: Value of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:1295: error: Value of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:1296: error: Value of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:1303: error: Value of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:1306: error: No overload variant of "get" of "dict" matches argument types "str", "bool" [call-overload]
spatialmath/base/graphics.py:1306: note: Possible overload variants:
spatialmath/base/graphics.py:1306: note: def get(self, str, /) -> Any | None
spatialmath/base/graphics.py:1306: note: def get(self, str, Any, /) -> Any
spatialmath/base/graphics.py:1306: note: def [_T] get(self, str, _T, /) -> Any | _T
spatialmath/base/graphics.py:1307: error: Value of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:1309: error: Value of type "float" is not indexable [index]
spatialmath/base/graphics.py:1311: error: Value of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:1313: error: Value of type "float" is not indexable [index]
spatialmath/base/graphics.py:1359: error: No overload variant of "__add__" of "ndarray" matches argument type "None" [operator]
spatialmath/base/graphics.py:1359: note: Possible overload variants:
spatialmath/base/graphics.py:1359: note: def __add__(self, _SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]]] | bool | int | float | _NestedSequence[bool | int | float], /) -> ndarray[Any, dtype[floating[Any]]]
spatialmath/base/graphics.py:1359: note: def __add__(self, _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], /) -> ndarray[Any, dtype[complexfloating[Any, Any]]]
spatialmath/base/graphics.py:1359: note: def __add__(self, _SupportsArray[dtype[bool_ | number[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | number[Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], /) -> ndarray[Any, dtype[number[Any]]]
spatialmath/base/graphics.py:1359: note: def __add__(self, _SupportsArray[dtype[object_]] | _NestedSequence[_SupportsArray[dtype[object_]]], /) -> Any
spatialmath/base/graphics.py:1359: note: Right operand is of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None"
spatialmath/base/graphics.py:1374: error: "ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]" has no attribute "A" [attr-defined]
spatialmath/base/graphics.py:1498: error: Overloaded function implementation does not accept all possible arguments of signature 1 [misc]
spatialmath/base/graphics.py:1498: error: Overloaded function implementation does not accept all possible arguments of signature 2 [misc]
spatialmath/base/graphics.py:1573: error: Incompatible default for argument "dim" (default has type "None", argument has type "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]") [assignment]
spatialmath/base/graphics.py:1573: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True
spatialmath/base/graphics.py:1573: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase
spatialmath/base/graphics.py:1628: error: Incompatible default for argument "dim" (default has type "None", argument has type "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]") [assignment]
spatialmath/base/graphics.py:1628: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True
spatialmath/base/graphics.py:1628: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase
spatialmath/base/graphics.py:1688: error: Incompatible default for argument "dim" (default has type "None", argument has type "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]") [assignment]
spatialmath/base/graphics.py:1688: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True
spatialmath/base/graphics.py:1688: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase
spatialmath/base/graphics.py:1745: error: Name "get_ipython" is not defined [name-defined]
spatialmath/base/graphics.py:1769: error: All conditional function variants must have identical signatures [misc]
spatialmath/base/graphics.py:1769: note: Original:
spatialmath/base/graphics.py:1769: note: def plot_text(pos: list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]], text: str, ax: Any | None = ..., color: str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None = ..., **kwargs: Any) -> list[Any]
spatialmath/base/graphics.py:1769: note: Redefinition:
spatialmath/base/graphics.py:1769: note: def plot_text(*args: Any, **kwargs: Any) -> None
spatialmath/base/graphics.py:1772: error: All conditional function variants must have identical signatures [misc]
spatialmath/base/graphics.py:1772: note: Original:
spatialmath/base/graphics.py:1772: note: def plot_box(*fmt: str | None, lbrt: list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]] | None = ..., lrbt: list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]] | None = ..., lbwh: list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]] | None = ..., bbox: list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]] | None = ..., ltrb: list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]] | None = ..., lb: list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None = ..., lt: list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None = ..., rb: list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None = ..., rt: list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None = ..., wh: list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None = ..., centre: list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None = ..., w: float | None = ..., h: float | None = ..., ax: Any | None = ..., filled: bool = ..., **kwargs: Any) -> list[Any]
spatialmath/base/graphics.py:1772: note: Redefinition:
spatialmath/base/graphics.py:1772: note: def plot_box(*args: Any, **kwargs: Any) -> None
spatialmath/base/graphics.py:1775: error: All conditional function variants must have identical signatures [misc]
spatialmath/base/graphics.py:1775: note: Original:
spatialmath/base/graphics.py:1775: note: def plot_circle(radius: float, centre: list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]], *fmt: str | None, resolution: int | None = ..., ax: Any | None = ..., filled: bool | None = ..., **kwargs: Any) -> list[Any]
spatialmath/base/graphics.py:1775: note: Redefinition:
spatialmath/base/graphics.py:1775: note: def plot_circle(*args: Any, **kwargs: Any) -> None
spatialmath/base/graphics.py:1778: error: All conditional function variants must have identical signatures [misc]
spatialmath/base/graphics.py:1778: note: Original:
spatialmath/base/graphics.py:1778: note: def plot_ellipse(E: ndarray[tuple[Literal[2], Literal[2]], dtype[floating[Any]]], centre: list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]], *fmt: str | None, scale: float | None = ..., confidence: float | None = ..., resolution: int | None = ..., inverted: bool | None = ..., ax: Any | None = ..., filled: bool | None = ..., **kwargs: Any) -> list[Any]
spatialmath/base/graphics.py:1778: note: Redefinition:
spatialmath/base/graphics.py:1778: note: def plot_ellipse(*args: Any, **kwargs: Any) -> None
spatialmath/base/graphics.py:1781: error: All conditional function variants must have identical signatures [misc]
spatialmath/base/graphics.py:1781: note: Original:
spatialmath/base/graphics.py:1781: note: def plot_arrow(start: list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]], end: list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]], label: str | None = ..., label_pos: str = ..., ax: Any | None = ..., **kwargs: Any) -> list[Any]
spatialmath/base/graphics.py:1781: note: Redefinition:
spatialmath/base/graphics.py:1781: note: def plot_arrow(*args: Any, **kwargs: Any) -> None
spatialmath/base/graphics.py:1784: error: All conditional function variants must have identical signatures [misc]
spatialmath/base/graphics.py:1784: note: Original:
spatialmath/base/graphics.py:1784: note: def plot_sphere(radius: float, centre: list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None = ..., pose: ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]] | None = ..., resolution: int | None = ..., ax: Any | None = ..., **kwargs: Any) -> list[Any]
spatialmath/base/graphics.py:1784: note: Redefinition:
spatialmath/base/graphics.py:1784: note: def plot_sphere(*args: Any, **kwargs: Any) -> None
spatialmath/base/graphics.py:1787: error: All conditional function variants must have identical signatures [misc]
spatialmath/base/graphics.py:1787: note: Original:
spatialmath/base/graphics.py:1787: note: def plot_ellipsoid(E: ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]], centre: list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None = ..., scale: float | None = ..., confidence: float | None = ..., resolution: int | None = ..., inverted: bool | None = ..., ax: Any | None = ..., **kwargs: Any) -> list[Any]
spatialmath/base/graphics.py:1787: note: Redefinition:
spatialmath/base/graphics.py:1787: note: def plot_ellipsoid(*args: Any, **kwargs: Any) -> None
spatialmath/base/graphics.py:1790: error: All conditional function variants must have identical signatures [misc]
spatialmath/base/graphics.py:1790: note: Original:
spatialmath/base/graphics.py:1790: note: def plot_text(pos: list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]], text: str, ax: Any | None = ..., color: str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None = ..., **kwargs: Any) -> list[Any]
spatialmath/base/graphics.py:1790: note: Redefinition:
spatialmath/base/graphics.py:1790: note: def plot_text(*args: Any, **kwargs: Any) -> None
spatialmath/base/graphics.py:1793: error: All conditional function variants must have identical signatures [misc]
spatialmath/base/graphics.py:1793: note: Original:
spatialmath/base/graphics.py:1793: note: def plot_cuboid(sides: list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] = ..., centre: list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None = ..., pose: ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]] | None = ..., ax: Any | None = ..., filled: bool | None = ..., **kwargs: Any) -> list[Any]
spatialmath/base/graphics.py:1793: note: Redefinition:
spatialmath/base/graphics.py:1793: note: def plot_cuboid(*args: Any, **kwargs: Any) -> None
spatialmath/base/graphics.py:1796: error: All conditional function variants must have identical signatures [misc]
spatialmath/base/graphics.py:1796: note: Original:
spatialmath/base/graphics.py:1796: note: def plot_cone(radius: float, height: float, resolution: int | None = ..., flip: bool | None = ..., centre: list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None = ..., ends: bool | None = ..., pose: ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]] | None = ..., ax: Any | None = ..., filled: bool | None = ..., **kwargs: Any) -> list[Any]
spatialmath/base/graphics.py:1796: note: Redefinition:
spatialmath/base/graphics.py:1796: note: def plot_cone(*args: Any, **kwargs: Any) -> None
spatialmath/base/graphics.py:1799: error: All conditional function variants must have identical signatures [misc]
spatialmath/base/graphics.py:1799: note: Original:
spatialmath/base/graphics.py:1799: note: def plot_cylinder(radius: float, height: float | list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]], resolution: int | None = ..., centre: list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None = ..., ends: Any = ..., pose: ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]] | None = ..., ax: Any = ..., filled: Any = ..., **kwargs: Any) -> list[Any]
spatialmath/base/graphics.py:1799: note: Redefinition:
spatialmath/base/graphics.py:1799: note: def plot_cylinder(*args: Any, **kwargs: Any) -> None
spatialmath/base/animate.py:14: error: Skipping analyzing "matplotlib.pyplot": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/animate.py:14: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
spatialmath/base/animate.py:14: error: Skipping analyzing "matplotlib": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/animate.py:76: error: Need type annotation for "displaylist" (hint: "displaylist: list[<type>] = ...") [var-annotated]
spatialmath/base/animate.py:106: error: Argument "dim" to "plotvol3" has incompatible type "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]] | None"; expected "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" [arg-type]
spatialmath/base/animate.py:155: error: Argument 1 to "r2t" has incompatible type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]"; expected "ndarray[tuple[Literal[2], Literal[2]], dtype[floating[Any]]]" [arg-type]
spatialmath/base/animate.py:157: error: Incompatible types in assignment (expression has type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]", variable has type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]") [assignment]
spatialmath/base/animate.py:163: error: Argument 1 to "r2t" has incompatible type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]"; expected "ndarray[tuple[Literal[2], Literal[2]], dtype[floating[Any]]]" [arg-type]
spatialmath/base/animate.py:467: error: Argument 4 to "plot" of "Animate" has incompatible type "str"; expected "list[Any]" [arg-type]
spatialmath/base/animate.py:539: error: Need type annotation for "displaylist" (hint: "displaylist: list[<type>] = ...") [var-annotated]
spatialmath/base/animate.py:555: error: Argument 1 to "len" has incompatible type "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]"; expected "Sized" [arg-type]
spatialmath/base/animate.py:557: error: Value of type "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" is not indexable [index]
spatialmath/base/animate.py:558: error: Value of type "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" is not indexable [index]
spatialmath/base/animate.py:595: error: Incompatible types in assignment (expression has type "ndarray[tuple[Literal[2], Literal[2]], dtype[floating[Any]]] | ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]", variable has type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]") [assignment]
spatialmath/base/transforms3d.py:82: error: Incompatible types in assignment (expression has type "float | ndarray[Any, dtype[Any]]", variable has type "float") [assignment]
spatialmath/base/transforms3d.py:121: error: Incompatible types in assignment (expression has type "float | ndarray[Any, dtype[Any]]", variable has type "float") [assignment]
spatialmath/base/transforms3d.py:155: error: Incompatible types in assignment (expression has type "float | ndarray[Any, dtype[Any]]", variable has type "float") [assignment]
spatialmath/base/transforms3d.py:499: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[Any]]", variable has type "list[list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | float | None]") [assignment]
spatialmath/base/transforms3d.py:501: error: Incompatible types in assignment (expression has type "float | ndarray[Any, dtype[Any]]", variable has type "list[list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | float | None]") [assignment]
spatialmath/base/transforms3d.py:501: error: Argument 1 to "getunit" has incompatible type "list[list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | float | None]"; expected "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" [arg-type]
spatialmath/base/transforms3d.py:505: error: Argument 1 to "rotx" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | float | None"; expected "float" [arg-type]
spatialmath/base/transforms3d.py:505: error: Argument 1 to "roty" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | float | None"; expected "float" [arg-type]
spatialmath/base/transforms3d.py:505: error: Argument 1 to "rotz" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | float | None"; expected "float" [arg-type]
spatialmath/base/transforms3d.py:507: error: Argument 1 to "rotz" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | float | None"; expected "float" [arg-type]
spatialmath/base/transforms3d.py:507: error: Argument 1 to "roty" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | float | None"; expected "float" [arg-type]
spatialmath/base/transforms3d.py:507: error: Argument 1 to "rotx" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | float | None"; expected "float" [arg-type]
spatialmath/base/transforms3d.py:509: error: Argument 1 to "roty" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | float | None"; expected "float" [arg-type]
spatialmath/base/transforms3d.py:509: error: Argument 1 to "rotx" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | float | None"; expected "float" [arg-type]
spatialmath/base/transforms3d.py:509: error: Argument 1 to "rotz" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | float | None"; expected "float" [arg-type]
spatialmath/base/transforms3d.py:648: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[Any]]", variable has type "list[generic | int | float | complex | str | bytes | memoryview[int] | None]") [assignment]
spatialmath/base/transforms3d.py:650: error: Incompatible types in assignment (expression has type "float | ndarray[Any, dtype[Any]]", variable has type "list[generic | int | float | complex | str | bytes | memoryview[int] | None]") [assignment]
spatialmath/base/transforms3d.py:650: error: Argument 1 to "getunit" has incompatible type "list[generic | int | float | complex | str | bytes | memoryview[int] | None]"; expected "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" [arg-type]
spatialmath/base/transforms3d.py:652: error: Argument 1 to "rotz" has incompatible type "generic | int | float | complex | str | bytes | memoryview[int] | None"; expected "float" [arg-type]
spatialmath/base/transforms3d.py:652: error: Argument 1 to "roty" has incompatible type "generic | int | float | complex | str | bytes | memoryview[int] | None"; expected "float" [arg-type]
spatialmath/base/transforms3d.py:762: error: Incompatible return value type (got "ndarray[Any, dtype[bool_]]", expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]") [return-value]
spatialmath/base/transforms3d.py:842: error: Incompatible return value type (got "ndarray[Any, dtype[bool_]]", expected "ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]") [return-value]
spatialmath/base/transforms3d.py:1024: error: Incompatible types in assignment (expression has type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]", variable has type "ndarray[tuple[Literal[2], Literal[2]], dtype[floating[Any]]] | ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]") [assignment]
spatialmath/base/transforms3d.py:1097: error: Incompatible types in assignment (expression has type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]", variable has type "ndarray[tuple[Literal[2], Literal[2]], dtype[floating[Any]]] | ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]") [assignment]
spatialmath/base/transforms3d.py:1113: error: Incompatible types in assignment (expression has type "float", variable has type "int") [assignment]
spatialmath/base/transforms3d.py:1114: error: Incompatible types in assignment (expression has type "float", variable has type "int") [assignment]
spatialmath/base/transforms3d.py:1186: error: Incompatible types in assignment (expression has type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]", variable has type "ndarray[tuple[Literal[2], Literal[2]], dtype[floating[Any]]] | ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]") [assignment]
spatialmath/base/transforms3d.py:1287: error: Overloaded function signature 3 will never be matched: signature 1's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/transforms3d.py:1292: error: Overloaded function signature 4 will never be matched: signature 2's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/transforms3d.py:1370: error: Incompatible types in assignment (expression has type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]", variable has type "ndarray[tuple[Literal[2], Literal[2]], dtype[floating[Any]]] | ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]") [assignment]
spatialmath/base/transforms3d.py:1418: error: Overloaded function signatures 3 and 4 overlap with incompatible return types [overload-overlap]
spatialmath/base/transforms3d.py:1544: error: Single overload definition, multiple required [misc]
spatialmath/base/transforms3d.py:1549: error: Overloaded function implementation does not accept all possible arguments of signature 1 [misc]
spatialmath/base/transforms3d.py:1549: error: Overloaded function implementation cannot produce return type of signature 1 [misc]
spatialmath/base/transforms3d.py:2241: error: Overloaded function signature 3 will never be matched: signature 1's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/transforms3d.py:2251: error: Overloaded function signature 4 will never be matched: signature 2's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/transforms3d.py:2473: error: Overloaded function signature 2 will never be matched: signature 1's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/transforms3d.py:2540: error: Incompatible types in assignment (expression has type "Callable[[SupportsFloat | SupportsIndex], float]", variable has type overloaded function) [assignment]
spatialmath/base/transforms3d.py:2541: error: Incompatible types in assignment (expression has type "Callable[[SupportsFloat | SupportsIndex], float]", variable has type overloaded function) [assignment]
spatialmath/base/transforms3d.py:2542: error: Incompatible types in assignment (expression has type "Callable[[SupportsFloat | SupportsIndex], float]", variable has type overloaded function) [assignment]
spatialmath/base/transforms3d.py:2773: error: Incompatible return value type (got "ndarray[Any, dtype[bool_]]", expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]") [return-value]
spatialmath/base/transforms3d.py:2860: error: Argument 1 to "transl" has incompatible type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/base/transforms3d.py:2892: error: Incompatible types in assignment (expression has type "str", variable has type "float") [assignment]
spatialmath/base/transforms3d.py:2894: error: Unsupported operand types for + ("float" and "str") [operator]
spatialmath/base/transforms3d.py:2911: error: Skipping analyzing "matplotlib.pyplot": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/transforms3d.py:2911: error: Skipping analyzing "matplotlib": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/transforms3d.py:2912: error: Skipping analyzing "mpl_toolkits.mplot3d": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/transforms3d.py:3219: error: Incompatible types in assignment (expression has type "tuple[float, float, float]", variable has type "ndarray[Any, dtype[Any]]") [assignment]
spatialmath/twist.py:1822: error: Invalid conversion specifier in format string: unexpected } [str-format]
spatialmath/spline.py:12: error: Skipping analyzing "matplotlib.pyplot": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/spline.py:12: error: Skipping analyzing "matplotlib": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/spline.py:14: error: Skipping analyzing "scipy.interpolate": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/spline.py:15: error: Skipping analyzing "scipy.spatial.transform": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/spline.py:65: error: Argument 1 to "tranimate" has incompatible type "list[SE3]"; expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/spline.py:102: error: Incompatible types in assignment (expression has type "list[SE3]", variable has type "SE3") [assignment]
spatialmath/spline.py:204: error: Incompatible types in assignment (expression has type "float", variable has type "floating[Any]") [assignment]
spatialmath/spline.py:226: error: "None" not callable [misc]
spatialmath/spline.py:235: error: List comprehension has incompatible type List[floating[Any]]; expected List[float] [misc]
spatialmath/spline.py:235: error: "None" not callable [misc]
spatialmath/spline.py:267: error: Incompatible types in assignment (expression has type "list[SE3]", variable has type "SE3") [assignment]
spatialmath/spline.py:278: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[floating[Any]]]", variable has type "list[float] | None") [assignment]
spatialmath/spline.py:279: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[Any]]", variable has type "list[float] | None") [assignment]
spatialmath/spline.py:280: error: Argument 2 to "append" has incompatible type "None"; expected "_SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes]" [arg-type]
spatialmath/spline.py:282: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[Any]]", variable has type "list[float] | None") [assignment]
spatialmath/spline.py:283: error: Argument 1 to "append" has incompatible type "None"; expected "_SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes]" [arg-type]
spatialmath/quaternion.py:134: error: Signature of "isvalid" incompatible with supertype "BasePoseList" [override]
spatialmath/quaternion.py:134: note: Superclass:
spatialmath/quaternion.py:134: note: abstractstaticmethod[[Any, Any], Any]
spatialmath/quaternion.py:134: note: Subclass:
spatialmath/quaternion.py:134: note: @staticmethod
spatialmath/quaternion.py:134: note: def isvalid(x: list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]) -> bool
spatialmath/quaternion.py:154: error: Item "list[float]" of "list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]" has no attribute "shape" [union-attr]
spatialmath/quaternion.py:154: error: Item "tuple[float, ...]" of "list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]" has no attribute "shape" [union-attr]
spatialmath/quaternion.py:179: error: Incompatible return value type (got "ndarray[Any, dtype[Any]] | Any", expected "float") [return-value]
spatialmath/quaternion.py:181: error: Incompatible return value type (got "ndarray[Any, dtype[Any]]", expected "float") [return-value]
spatialmath/quaternion.py:206: error: Incompatible return value type (got "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]", expected "ndarray[tuple[Literal[3]], dtype[floating[Any]]]") [return-value]
spatialmath/quaternion.py:235: error: Incompatible return value type (got "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]", expected "ndarray[tuple[Literal[4]], dtype[floating[Any]]]") [return-value]
spatialmath/quaternion.py:292: error: Argument 1 to "qmatrix" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/quaternion.py:336: error: Argument 1 to "qnorm" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/quaternion.py:338: error: Incompatible return value type (got "ndarray[Any, dtype[Any]]", expected "float") [return-value]
spatialmath/quaternion.py:471: error: Incompatible return value type (got "list[Any]", expected "float") [return-value]
spatialmath/quaternion.py:476: error: Argument 1 of "__eq__" is incompatible with supertype "UserList"; supertype defines the argument type as "object" [override]
spatialmath/quaternion.py:476: note: This violates the Liskov substitution principle
spatialmath/quaternion.py:476: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/quaternion.py:476: note: It is recommended for "__eq__" to work with arbitrary objects, for example:
spatialmath/quaternion.py:476: note: def __eq__(self, other: object) -> bool:
spatialmath/quaternion.py:476: note: if not isinstance(other, Quaternion):
spatialmath/quaternion.py:476: note: return NotImplemented
spatialmath/quaternion.py:476: note: return <logic to compare two Quaternion instances>
spatialmath/quaternion.py:476: error: Argument 1 of "__eq__" is incompatible with supertype "object"; supertype defines the argument type as "object" [override]
spatialmath/quaternion.py:501: error: Incompatible return value type (got "list[Any]", expected "bool") [return-value]
spatialmath/quaternion.py:504: error: Argument 1 of "__ne__" is incompatible with supertype "object"; supertype defines the argument type as "object" [override]
spatialmath/quaternion.py:504: note: This violates the Liskov substitution principle
spatialmath/quaternion.py:504: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/quaternion.py:528: error: Incompatible return value type (got "list[Any]", expected "bool") [return-value]
spatialmath/quaternion.py:531: error: Argument 1 of "__mul__" is incompatible with supertype "UserList"; supertype defines the argument type as "int" [override]
spatialmath/quaternion.py:531: note: This violates the Liskov substitution principle
spatialmath/quaternion.py:531: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/quaternion.py:594: error: Argument 1 of "__rmul__" is incompatible with supertype "UserList"; supertype defines the argument type as "int" [override]
spatialmath/quaternion.py:594: note: This violates the Liskov substitution principle
spatialmath/quaternion.py:594: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/quaternion.py:618: error: Return type "bool" of "__imul__" incompatible with return type "Quaternion" in supertype "UserList" [override]
spatialmath/quaternion.py:618: error: Return type "bool" of "__imul__" incompatible with return type "Quaternion" in "__mul__" of supertype "UserList" [override]
spatialmath/quaternion.py:619: error: Argument 1 of "__imul__" is incompatible with supertype "UserList"; supertype defines the argument type as "int" [override]
spatialmath/quaternion.py:619: note: This violates the Liskov substitution principle
spatialmath/quaternion.py:619: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/quaternion.py:619: error: Argument 1 of "__imul__" is incompatible with "__mul__" of supertype "UserList"; supertype defines the argument type as "int" [override]
spatialmath/quaternion.py:644: error: Incompatible return value type (got "Quaternion", expected "bool") [return-value]
spatialmath/quaternion.py:698: error: Argument 1 of "__add__" is incompatible with supertype "UserList"; supertype defines the argument type as "Iterable[Any]" [override]
spatialmath/quaternion.py:698: note: This violates the Liskov substitution principle
spatialmath/quaternion.py:698: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/quaternion.py:1003: error: Argument "check" to "isrot" has incompatible type "bool | None"; expected "bool" [arg-type]
spatialmath/quaternion.py:1051: error: Signature of "isvalid" incompatible with supertype "BasePoseList" [override]
spatialmath/quaternion.py:1051: note: Superclass:
spatialmath/quaternion.py:1051: note: abstractstaticmethod[[Any, Any], Any]
spatialmath/quaternion.py:1051: note: Subclass:
spatialmath/quaternion.py:1051: note: @staticmethod
spatialmath/quaternion.py:1051: note: def isvalid(x: float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]], check: bool | None = ...) -> bool
spatialmath/quaternion.py:1071: error: Item "float" of "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" has no attribute "shape" [union-attr]
spatialmath/quaternion.py:1071: error: Item "list[float]" of "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" has no attribute "shape" [union-attr]
spatialmath/quaternion.py:1071: error: Item "tuple[float, ...]" of "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" has no attribute "shape" [union-attr]
spatialmath/quaternion.py:1103: error: Argument 1 to "q2r" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[4]], dtype[floating[Any]]] | list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/quaternion.py:1134: error: Argument 1 to "q2v" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/quaternion.py:1162: error: Argument 2 to "getunit" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:1164: error: Item "float" of "float | ndarray[Any, dtype[floating[Any]]]" has no attribute "__iter__" (not iterable) [union-attr]
spatialmath/quaternion.py:1192: error: Argument 2 to "getunit" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:1194: error: Item "float" of "float | ndarray[Any, dtype[floating[Any]]]" has no attribute "__iter__" (not iterable) [union-attr]
spatialmath/quaternion.py:1222: error: Argument 2 to "getunit" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:1224: error: Item "float" of "float | ndarray[Any, dtype[floating[Any]]]" has no attribute "__iter__" (not iterable) [union-attr]
spatialmath/quaternion.py:1287: error: Incompatible types in assignment (expression has type "list[float]", variable has type "tuple[list[float], ...]") [assignment]
spatialmath/quaternion.py:1289: error: Argument 1 to "eul2r" has incompatible type "tuple[list[float], ...]"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/quaternion.py:1289: error: Argument "unit" to "eul2r" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:1342: error: Incompatible types in assignment (expression has type "list[float]", variable has type "tuple[list[float], ...]") [assignment]
spatialmath/quaternion.py:1344: error: Argument 1 to "rpy2r" has incompatible type "tuple[list[float], ...]"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/quaternion.py:1344: error: Argument "unit" to "rpy2r" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:1344: error: Argument "order" to "rpy2r" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:1414: error: Incompatible types in assignment (expression has type "float | ndarray[Any, dtype[Any]]", variable has type "float") [assignment]
spatialmath/quaternion.py:1414: error: Argument 2 to "getunit" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:1553: error: Argument 1 to "qdot" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/quaternion.py:1570: error: Argument 1 to "qdotb" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/quaternion.py:1573: error: Argument 1 of "__mul__" is incompatible with supertype "Quaternion"; supertype defines the argument type as "Quaternion" [override]
spatialmath/quaternion.py:1573: note: This violates the Liskov substitution principle
spatialmath/quaternion.py:1573: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/quaternion.py:1573: error: Argument 1 of "__mul__" is incompatible with supertype "UserList"; supertype defines the argument type as "int" [override]
spatialmath/quaternion.py:1643: error: Incompatible return value type (got "Quaternion", expected "UnitQuaternion") [return-value]
spatialmath/quaternion.py:1670: error: Return type "UnitQuaternion" of "__imul__" incompatible with return type "bool" in supertype "Quaternion" [override]
spatialmath/quaternion.py:1671: error: Argument 1 of "__imul__" is incompatible with supertype "Quaternion"; supertype defines the argument type as "Quaternion" [override]
spatialmath/quaternion.py:1671: note: This violates the Liskov substitution principle
spatialmath/quaternion.py:1671: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/quaternion.py:1671: error: Argument 1 of "__imul__" is incompatible with "__mul__" of supertype "Quaternion"; supertype defines the argument type as "Quaternion" [override]
spatialmath/quaternion.py:1671: error: Argument 1 of "__imul__" is incompatible with supertype "UserList"; supertype defines the argument type as "int" [override]
spatialmath/quaternion.py:1671: error: Argument 1 of "__imul__" is incompatible with "__mul__" of supertype "UserList"; supertype defines the argument type as "int" [override]
spatialmath/quaternion.py:1695: error: Argument 1 of "__truediv__" is incompatible with supertype "Quaternion"; supertype defines the argument type as "Quaternion" [override]
spatialmath/quaternion.py:1695: note: This violates the Liskov substitution principle
spatialmath/quaternion.py:1695: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/quaternion.py:1754: error: Incompatible return value type (got "Quaternion", expected "UnitQuaternion") [return-value]
spatialmath/quaternion.py:1759: error: Argument 1 of "__eq__" is incompatible with supertype "Quaternion"; supertype defines the argument type as "Quaternion" [override]
spatialmath/quaternion.py:1759: note: This violates the Liskov substitution principle
spatialmath/quaternion.py:1759: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/quaternion.py:1759: note: It is recommended for "__eq__" to work with arbitrary objects, for example:
spatialmath/quaternion.py:1759: note: def __eq__(self, other: object) -> bool:
spatialmath/quaternion.py:1759: note: if not isinstance(other, UnitQuaternion):
spatialmath/quaternion.py:1759: note: return NotImplemented
spatialmath/quaternion.py:1759: note: return <logic to compare two UnitQuaternion instances>
spatialmath/quaternion.py:1759: error: Argument 1 of "__eq__" is incompatible with supertype "UserList"; supertype defines the argument type as "object" [override]
spatialmath/quaternion.py:1759: error: Argument 1 of "__eq__" is incompatible with supertype "object"; supertype defines the argument type as "object" [override]
spatialmath/quaternion.py:1785: error: Incompatible return value type (got "list[Any]", expected "bool") [return-value]
spatialmath/quaternion.py:1790: error: Argument 1 of "__ne__" is incompatible with supertype "Quaternion"; supertype defines the argument type as "Quaternion" [override]
spatialmath/quaternion.py:1790: note: This violates the Liskov substitution principle
spatialmath/quaternion.py:1790: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/quaternion.py:1790: error: Argument 1 of "__ne__" is incompatible with supertype "object"; supertype defines the argument type as "object" [override]
spatialmath/quaternion.py:1816: error: Incompatible return value type (got "list[Any]", expected "bool") [return-value]
spatialmath/quaternion.py:1886: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[floating[Any]]]", variable has type "float") [assignment]
spatialmath/quaternion.py:1888: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[Any]]", variable has type "float") [assignment]
spatialmath/quaternion.py:1912: error: "float" has no attribute "__iter__"; maybe "__int__"? (not iterable) [attr-defined]
spatialmath/quaternion.py:1962: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[floating[Any]]]", variable has type "float") [assignment]
spatialmath/quaternion.py:1964: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[Any]]", variable has type "float") [assignment]
spatialmath/quaternion.py:1984: error: "float" has no attribute "__iter__"; maybe "__int__"? (not iterable) [attr-defined]
spatialmath/quaternion.py:2016: error: Argument 1 to "qqmul" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/quaternion.py:2037: error: Argument 1 to "q2r" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[4]], dtype[floating[Any]]] | list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/quaternion.py:2037: error: Argument 2 to "trplot" has incompatible type "*tuple[list[Any], ...]"; expected "str" [arg-type]
spatialmath/quaternion.py:2037: error: Argument 2 to "trplot" has incompatible type "*tuple[list[Any], ...]"; expected "bool" [arg-type]
spatialmath/quaternion.py:2037: error: Argument 2 to "trplot" has incompatible type "*tuple[list[Any], ...]"; expected "tuple[str, str, str]" [arg-type]
spatialmath/quaternion.py:2037: error: Argument 2 to "trplot" has incompatible type "*tuple[list[Any], ...]"; expected "float" [arg-type]
spatialmath/quaternion.py:2037: error: Argument 2 to "trplot" has incompatible type "*tuple[list[Any], ...]"; expected "bool | None" [arg-type]
spatialmath/quaternion.py:2037: error: Argument 2 to "trplot" has incompatible type "*tuple[list[Any], ...]"; expected "bool | str | tuple[str, float] | None" [arg-type]
spatialmath/quaternion.py:2037: error: Argument 2 to "trplot" has incompatible type "*tuple[list[Any], ...]"; expected "float | None" [arg-type]
spatialmath/quaternion.py:2037: error: Argument 2 to "trplot" has incompatible type "*tuple[list[Any], ...]"; expected "tuple[float, float, float]" [arg-type]
spatialmath/quaternion.py:2063: error: Argument 1 to "tranimate" has incompatible type "list[ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]]"; expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/quaternion.py:2065: error: Argument 1 to "q2r" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[4]], dtype[floating[Any]]] | list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/quaternion.py:2110: error: Argument "unit" to "tr2rpy" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:2110: error: Argument "order" to "tr2rpy" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:2112: error: Argument "unit" to "tr2rpy" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:2112: error: Argument "order" to "tr2rpy" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:2146: error: Argument "unit" to "tr2eul" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:2148: error: Argument "unit" to "tr2eul" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:2174: error: Argument "unit" to "tr2angvec" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:2278: error: Incompatible return value type (got "ndarray[Any, dtype[Any]]", expected "float") [return-value]
spatialmath/pose3d.py:65: error: Overloaded function signature 3 will never be matched: signature 2's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/pose3d.py:111: error: Signature of "_identity" incompatible with supertype "BasePoseList" [override]
spatialmath/pose3d.py:111: note: Superclass:
spatialmath/pose3d.py:111: note: abstractstaticmethod[[], Any]
spatialmath/pose3d.py:111: note: Subclass:
spatialmath/pose3d.py:111: note: @staticmethod
spatialmath/pose3d.py:111: note: def _identity() -> ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]
spatialmath/pose3d.py:247: error: Name "base" is not defined [name-defined]
spatialmath/pose3d.py:348: error: Signature of "isvalid" incompatible with supertype "BasePoseList" [override]
spatialmath/pose3d.py:348: note: Superclass:
spatialmath/pose3d.py:348: note: abstractstaticmethod[[Any, Any], Any]
spatialmath/pose3d.py:348: note: Subclass:
spatialmath/pose3d.py:348: note: @staticmethod
spatialmath/pose3d.py:348: note: def isvalid(x: ndarray[Any, dtype[Any]], check: bool = ...) -> bool
spatialmath/pose3d.py:702: error: Argument 1 to "orthogonalize" has incompatible type "str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:702: error: Argument 2 to "orthogonalize" has incompatible type "str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:703: error: Argument 1 to "cross" has incompatible type "str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None"; expected "_SupportsArray[dtype[_UnknownType]] | _NestedSequence[_SupportsArray[dtype[_UnknownType]]] | _UnknownType | _NestedSequence[_UnknownType]" [arg-type]
spatialmath/pose3d.py:703: error: Argument 2 to "cross" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]"; expected "_SupportsArray[dtype[_UnknownType]] | _NestedSequence[_SupportsArray[dtype[_UnknownType]]] | _UnknownType | _NestedSequence[_UnknownType]" [arg-type]
spatialmath/pose3d.py:710: error: Argument 1 to "orthogonalize" has incompatible type "str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:710: error: Argument 2 to "orthogonalize" has incompatible type "str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:711: error: Argument 1 to "cross" has incompatible type "str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None"; expected "_SupportsArray[dtype[_UnknownType]] | _NestedSequence[_SupportsArray[dtype[_UnknownType]]] | _UnknownType | _NestedSequence[_UnknownType]" [arg-type]
spatialmath/pose3d.py:711: error: Argument 2 to "cross" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]"; expected "_SupportsArray[dtype[_UnknownType]] | _NestedSequence[_SupportsArray[dtype[_UnknownType]]] | _UnknownType | _NestedSequence[_UnknownType]" [arg-type]
spatialmath/pose3d.py:718: error: Argument 1 to "orthogonalize" has incompatible type "str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:718: error: Argument 2 to "orthogonalize" has incompatible type "str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:719: error: Argument 1 to "cross" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]"; expected "_SupportsArray[dtype[_UnknownType]] | _NestedSequence[_SupportsArray[dtype[_UnknownType]]] | _UnknownType | _NestedSequence[_UnknownType]" [arg-type]
spatialmath/pose3d.py:719: error: Argument 2 to "cross" has incompatible type "str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None"; expected "_SupportsArray[dtype[_UnknownType]] | _NestedSequence[_SupportsArray[dtype[_UnknownType]]] | _UnknownType | _NestedSequence[_UnknownType]" [arg-type]
spatialmath/pose3d.py:924: error: Incompatible types in assignment (expression has type "Callable[[Any, Any], float]", variable has type "Callable[[Any, Any], floating[Any]]") [assignment]
spatialmath/pose3d.py:924: error: Incompatible return value type (got "float", expected "floating[Any]") [return-value]
spatialmath/pose3d.py:1032: error: Signature of "_identity" incompatible with supertype "BasePoseList" [override]
spatialmath/pose3d.py:1032: note: Superclass:
spatialmath/pose3d.py:1032: note: abstractstaticmethod[[], Any]
spatialmath/pose3d.py:1032: note: Subclass:
spatialmath/pose3d.py:1032: note: @staticmethod
spatialmath/pose3d.py:1032: note: def _identity() -> ndarray[Any, dtype[Any]]
spatialmath/pose3d.py:1048: error: "Callable[[SO3], ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]]" has no attribute "setter" [attr-defined]
spatialmath/pose3d.py:1053: error: No overload variant of "__setitem__" of "list" matches argument types "tuple[slice, slice]", "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]" [call-overload]
spatialmath/pose3d.py:1053: note: Possible overload variants:
spatialmath/pose3d.py:1053: note: def __setitem__(self, SupportsIndex, ndarray[Any, dtype[Any]], /) -> None
spatialmath/pose3d.py:1053: note: def __setitem__(self, slice, Iterable[ndarray[Any, dtype[Any]]], /) -> None
spatialmath/pose3d.py:1079: error: No overload variant of "__getitem__" of "list" matches argument type "tuple[slice, int]" [call-overload]
spatialmath/pose3d.py:1079: note: Possible overload variants:
spatialmath/pose3d.py:1079: note: def __getitem__(self, SupportsIndex, /) -> ndarray[Any, dtype[Any]]
spatialmath/pose3d.py:1079: note: def __getitem__(self, slice, /) -> list[ndarray[Any, dtype[Any]]]
spatialmath/pose3d.py:1088: error: No overload variant of "__setitem__" of "list" matches argument types "tuple[slice, int]", "ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [call-overload]
spatialmath/pose3d.py:1088: note: Possible overload variants:
spatialmath/pose3d.py:1088: note: def __setitem__(self, SupportsIndex, ndarray[Any, dtype[Any]], /) -> None
spatialmath/pose3d.py:1088: note: def __setitem__(self, slice, Iterable[ndarray[Any, dtype[Any]]], /) -> None
spatialmath/pose3d.py:1113: error: No overload variant of "__getitem__" of "list" matches argument type "tuple[int, int]" [call-overload]
spatialmath/pose3d.py:1113: note: Possible overload variants:
spatialmath/pose3d.py:1113: note: def __getitem__(self, SupportsIndex, /) -> ndarray[Any, dtype[Any]]
spatialmath/pose3d.py:1113: note: def __getitem__(self, slice, /) -> list[ndarray[Any, dtype[Any]]]
spatialmath/pose3d.py:1115: error: Incompatible return value type (got "ndarray[Any, dtype[Any]]", expected "float") [return-value]
spatialmath/pose3d.py:1121: error: No overload variant of "__setitem__" of "list" matches argument types "tuple[int, int]", "float" [call-overload]
spatialmath/pose3d.py:1121: note: Possible overload variants:
spatialmath/pose3d.py:1121: note: def __setitem__(self, SupportsIndex, ndarray[Any, dtype[Any]], /) -> None
spatialmath/pose3d.py:1121: note: def __setitem__(self, slice, Iterable[ndarray[Any, dtype[Any]]], /) -> None
spatialmath/pose3d.py:1146: error: No overload variant of "__getitem__" of "list" matches argument type "tuple[int, int]" [call-overload]
spatialmath/pose3d.py:1146: note: Possible overload variants:
spatialmath/pose3d.py:1146: note: def __getitem__(self, SupportsIndex, /) -> ndarray[Any, dtype[Any]]
spatialmath/pose3d.py:1146: note: def __getitem__(self, slice, /) -> list[ndarray[Any, dtype[Any]]]
spatialmath/pose3d.py:1148: error: Incompatible return value type (got "ndarray[Any, dtype[Any]]", expected "float") [return-value]
spatialmath/pose3d.py:1154: error: No overload variant of "__setitem__" of "list" matches argument types "tuple[int, int]", "float" [call-overload]
spatialmath/pose3d.py:1154: note: Possible overload variants:
spatialmath/pose3d.py:1154: note: def __setitem__(self, SupportsIndex, ndarray[Any, dtype[Any]], /) -> None
spatialmath/pose3d.py:1154: note: def __setitem__(self, slice, Iterable[ndarray[Any, dtype[Any]]], /) -> None
spatialmath/pose3d.py:1179: error: No overload variant of "__getitem__" of "list" matches argument type "tuple[int, int]" [call-overload]
spatialmath/pose3d.py:1179: note: Possible overload variants:
spatialmath/pose3d.py:1179: note: def __getitem__(self, SupportsIndex, /) -> ndarray[Any, dtype[Any]]
spatialmath/pose3d.py:1179: note: def __getitem__(self, slice, /) -> list[ndarray[Any, dtype[Any]]]
spatialmath/pose3d.py:1181: error: Incompatible return value type (got "ndarray[Any, dtype[Any]]", expected "float") [return-value]
spatialmath/pose3d.py:1187: error: No overload variant of "__setitem__" of "list" matches argument types "tuple[int, int]", "float" [call-overload]
spatialmath/pose3d.py:1187: note: Possible overload variants:
spatialmath/pose3d.py:1187: note: def __setitem__(self, SupportsIndex, ndarray[Any, dtype[Any]], /) -> None
spatialmath/pose3d.py:1187: note: def __setitem__(self, slice, Iterable[ndarray[Any, dtype[Any]]], /) -> None
spatialmath/pose3d.py:1220: error: Argument 1 to "SE3" has incompatible type "ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:1220: error: Argument 1 to "trinv" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:1224: error: Missing return statement [return]
spatialmath/pose3d.py:1291: error: Argument 1 to "tr2delta" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:1293: error: Argument 1 to "tr2delta" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:1293: error: Argument 2 to "tr2delta" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]] | None" [arg-type]
spatialmath/pose3d.py:1319: error: Incompatible return value type (got "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]", expected "ndarray[tuple[Literal[6], Literal[6]], dtype[floating[Any]]]") [return-value]
spatialmath/pose3d.py:1319: error: Argument 1 to "tr2adjoint" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:1345: error: Argument 1 to "tr2jac" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:1369: error: Signature of "isvalid" incompatible with supertype "BasePoseList" [override]
spatialmath/pose3d.py:1369: note: Superclass:
spatialmath/pose3d.py:1369: note: abstractstaticmethod[[Any, Any], Any]
spatialmath/pose3d.py:1369: note: Subclass:
spatialmath/pose3d.py:1369: note: @staticmethod
spatialmath/pose3d.py:1369: note: def isvalid(x: ndarray[Any, dtype[Any]], check: bool = ...) -> bool
spatialmath/pose3d.py:1562: error: Value of type "list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/pose3d.py:1565: error: Value of type "list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/pose3d.py:1568: error: Value of type "list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/pose3d.py:1576: error: Overload does not consistently use the "@classmethod" decorator on all function signatures. [misc]
spatialmath/pose3d.py:1576: error: Signature of "Eul" incompatible with supertype "SO3" [override]
spatialmath/pose3d.py:1576: note: Superclass:
spatialmath/pose3d.py:1576: note: @overload
spatialmath/pose3d.py:1576: note: @classmethod
spatialmath/pose3d.py:1576: note: def Eul(cls, *angles: float, unit: str = ...) -> Any
spatialmath/pose3d.py:1576: note: @overload
spatialmath/pose3d.py:1576: note: @classmethod
spatialmath/pose3d.py:1576: note: def Eul(cls, *angles: list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | ndarray[Any, dtype[Any]], unit: str = ...) -> Any
spatialmath/pose3d.py:1576: note: Subclass:
spatialmath/pose3d.py:1576: note: @overload
spatialmath/pose3d.py:1576: note: def Eul(cls, phi: float, theta: float, psi: float, unit: str = ...) -> SE3
spatialmath/pose3d.py:1576: note: @overload
spatialmath/pose3d.py:1576: note: def Eul(cls, angles: list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]], unit: str = ...) -> SE3
spatialmath/pose3d.py:1584: error: Overloaded function implementation does not accept all possible arguments of signature 1 [misc]
spatialmath/pose3d.py:1584: error: Overloaded function implementation does not accept all possible arguments of signature 2 [misc]
spatialmath/pose3d.py:1626: error: Overload does not consistently use the "@classmethod" decorator on all function signatures. [misc]
spatialmath/pose3d.py:1626: error: Signature of "RPY" incompatible with supertype "SO3" [override]
spatialmath/pose3d.py:1626: note: Superclass:
spatialmath/pose3d.py:1626: note: @overload
spatialmath/pose3d.py:1626: note: @classmethod
spatialmath/pose3d.py:1626: note: def RPY(cls, *angles: float, unit: str = ..., order: Any = ...) -> Any
spatialmath/pose3d.py:1626: note: @overload
spatialmath/pose3d.py:1626: note: @classmethod
spatialmath/pose3d.py:1626: note: def RPY(cls, *angles: list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | ndarray[Any, dtype[Any]], unit: str = ..., order: Any = ...) -> Any
spatialmath/pose3d.py:1626: note: Subclass:
spatialmath/pose3d.py:1626: note: @overload
spatialmath/pose3d.py:1626: note: def RPY(cls, roll: float, pitch: float, yaw: float, unit: str = ...) -> SE3
spatialmath/pose3d.py:1626: note: @overload
spatialmath/pose3d.py:1626: note: def RPY(cls, angles: list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]], unit: str = ...) -> SE3
spatialmath/pose3d.py:1634: error: Overloaded function implementation does not accept all possible arguments of signature 1 [misc]
spatialmath/pose3d.py:1634: error: Overloaded function implementation does not accept all possible arguments of signature 2 [misc]
spatialmath/pose3d.py:1730: error: Name "unit" is not defined [name-defined]
spatialmath/pose3d.py:1815: error: Signature of "Exp" incompatible with supertype "SO3" [override]
spatialmath/pose3d.py:1815: note: Superclass:
spatialmath/pose3d.py:1815: note: @classmethod
spatialmath/pose3d.py:1815: note: def Exp(cls, S: ndarray[tuple[Literal[3]], dtype[floating[Any]]] | ndarray[Any, dtype[Any]], check: bool = ..., so3: bool = ...) -> Any
spatialmath/pose3d.py:1815: note: Subclass:
spatialmath/pose3d.py:1815: note: @classmethod
spatialmath/pose3d.py:1815: note: def Exp(cls, S: ndarray[tuple[Literal[6]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]], check: bool = ...) -> SE3
spatialmath/pose3d.py:1834: error: Argument 1 to "SE3" has incompatible type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:1834: error: Argument 1 to "trexp" has incompatible type "ndarray[tuple[Literal[6]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]"; expected "ndarray[tuple[Literal[3, 3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:1854: error: Argument 1 to "SE3" has incompatible type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:1854: error: Argument 1 to "trnorm" has incompatible type "ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]"; expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:1854: error: Argument 1 to "delta2tr" has incompatible type "list[float] | tuple[float, float, float, float, float, float] | ndarray[tuple[Literal[6]], dtype[floating[Any]]]"; expected "ndarray[tuple[Literal[6]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:1856: error: Overload does not consistently use the "@classmethod" decorator on all function signatures. [misc]
spatialmath/pose3d.py:1864: error: Overloaded function implementation does not accept all possible arguments of signature 2 [misc]
spatialmath/pose3d.py:1992: error: Incompatible types in assignment (expression has type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]", variable has type "SO3 | ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]") [assignment]
spatialmath/pose3d.py:2000: error: Argument 1 to "SE3" has incompatible type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:2000: error: Argument 1 to "rt2tr" has incompatible type "SO3 | ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]"; expected "ndarray[tuple[Literal[2], Literal[2]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:2000: error: Argument 2 to "rt2tr" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[_64Bit]]] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]"; expected "list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:2023: error: Argument 1 of "angdist" is incompatible with supertype "SO3"; supertype defines the argument type as "SO3" [override]
spatialmath/pose3d.py:2023: note: This violates the Liskov substitution principle
spatialmath/pose3d.py:2023: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/pose3d.py:2080: error: Incompatible types in assignment (expression has type "Callable[[Any, Any], float]", variable has type "Callable[[Any, Any], floating[Any]]") [assignment]
spatialmath/pose3d.py:2080: error: Incompatible return value type (got "float", expected "floating[Any]") [return-value]
spatialmath/pose3d.py:2088: error: Incompatible return value type (got "ndarray[Any, dtype[Any]]", expected "float") [return-value]
spatialmath/geom3d.py:9: error: Skipping analyzing "matplotlib.pyplot": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/geom3d.py:9: error: Skipping analyzing "matplotlib": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/geom3d.py:223: error: Value of type "float | Any | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" is not indexable [index]
spatialmath/geom3d.py:226: error: Value of type "float | Any | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" is not indexable [index]
spatialmath/geom3d.py:227: error: Value of type "float | Any | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" is not indexable [index]
spatialmath/geom3d.py:328: error: Signature of "_identity" incompatible with supertype "BasePoseList" [override]
spatialmath/geom3d.py:328: note: Superclass:
spatialmath/geom3d.py:328: note: abstractstaticmethod[[], Any]
spatialmath/geom3d.py:328: note: Subclass:
spatialmath/geom3d.py:328: note: @staticmethod
spatialmath/geom3d.py:328: note: def _identity() -> ndarray[tuple[Literal[6]], dtype[floating[Any]]]
spatialmath/geom3d.py:332: error: Signature of "isvalid" incompatible with supertype "BasePoseList" [override]
spatialmath/geom3d.py:332: note: Superclass:
spatialmath/geom3d.py:332: note: abstractstaticmethod[[Any, Any], Any]
spatialmath/geom3d.py:332: note: Subclass:
spatialmath/geom3d.py:332: note: @staticmethod
spatialmath/geom3d.py:332: note: def isvalid(x: ndarray[Any, dtype[Any]], check: bool = ...) -> bool
spatialmath/geom3d.py:420: error: Argument 1 of "append" is incompatible with supertype "BasePoseList"; supertype defines the argument type as "BasePoseList" [override]
spatialmath/geom3d.py:420: note: This violates the Liskov substitution principle
spatialmath/geom3d.py:420: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/geom3d.py:436: error: Argument 1 to "append" of "BasePoseList" has incompatible type "ndarray[tuple[Literal[6]], dtype[floating[Any]]]"; expected "BasePoseList" [arg-type]
spatialmath/geom3d.py:444: error: Incompatible return value type (got "list[Any]", expected "ndarray[tuple[Literal[6]], dtype[floating[Any]]]") [return-value]
spatialmath/geom3d.py:850: error: Name "dot" is not defined [name-defined]
spatialmath/geom3d.py:988: error: Incompatible return value type (got "tuple[ndarray[Any, dtype[Any]], floating[Any]]", expected "tuple[ndarray[tuple[Literal[3]], dtype[floating[Any]]], float]") [return-value]
spatialmath/geom3d.py:1008: error: Incompatible return value type (got "None", expected "Line3") [return-value]
spatialmath/geom3d.py:1020: error: Return type "float" of "__mul__" incompatible with return type "Line3" in supertype "UserList" [override]
spatialmath/geom3d.py:1021: error: Argument 1 of "__mul__" is incompatible with supertype "UserList"; supertype defines the argument type as "int" [override]
spatialmath/geom3d.py:1021: note: This violates the Liskov substitution principle
spatialmath/geom3d.py:1021: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/geom3d.py:1049: error: Name "SE3" is not defined [name-defined]
spatialmath/geom3d.py:1123: error: Too many arguments for "tuple" [call-arg]
spatialmath/geom3d.py:1125: error: Incompatible return value type (got "None", expected "tuple[ndarray[tuple[Literal[3]], dtype[floating[Any]]], float]") [return-value]
spatialmath/geom3d.py:1155: error: Item "list[float]" of "list[float] | tuple[float, float, float, float, float, float] | ndarray[tuple[Literal[6]], dtype[floating[Any]]]" has no attribute "reshape" [union-attr]
spatialmath/geom3d.py:1155: error: Item "tuple[float, ...]" of "list[float] | tuple[float, float, float, float, float, float] | ndarray[tuple[Literal[6]], dtype[floating[Any]]]" has no attribute "reshape" [union-attr]
spatialmath/geom3d.py:1172: error: Incompatible types in assignment (expression has type "float | Any", target has type "int") [assignment]
spatialmath/geom3d.py:1173: error: Argument "p" to "PointNormal" of "Plane3" has incompatible type "list[int]"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/geom3d.py:1173: note: "List" is invariant -- see https://mypy.readthedocs.io/en/stable/common_issues.html#variance
spatialmath/geom3d.py:1173: note: Consider using "Sequence" instead, which is covariant
spatialmath/geom3d.py:1177: error: Incompatible types in assignment (expression has type "ndarray[tuple[Literal[3]], dtype[floating[Any]]]", variable has type "list[int]") [assignment]
spatialmath/geom3d.py:1198: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[Any]]", variable has type "list[int]") [assignment]
spatialmath/geom3d.py:1200: error: Too many arguments for "tuple" [call-arg]
spatialmath/geom2d.py:12: error: Skipping analyzing "matplotlib.pyplot": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/geom2d.py:12: error: Skipping analyzing "matplotlib": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/geom2d.py:13: error: Skipping analyzing "matplotlib.path": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/geom2d.py:14: error: Skipping analyzing "matplotlib.patches": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/geom2d.py:15: error: Skipping analyzing "matplotlib.transforms": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/geom2d.py:731: error: Argument 1 to "__call__" of "_UFunc_Nin1_Nout1" has incompatible type "float | None"; expected "int | float | complex | str | bytes | generic" [arg-type]
spatialmath/geom2d.py:799: error: No overload variant of "__matmul__" of "ndarray" matches argument type "None" [operator]
spatialmath/geom2d.py:799: note: Possible overload variants:
spatialmath/geom2d.py:799: note: def __matmul__(self, _SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]]] | bool | int | float | _NestedSequence[bool | int | float], /) -> ndarray[Any, dtype[floating[Any]]]
spatialmath/geom2d.py:799: note: def __matmul__(self, _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], /) -> ndarray[Any, dtype[complexfloating[Any, Any]]]
spatialmath/geom2d.py:799: note: def __matmul__(self, _SupportsArray[dtype[bool_ | number[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | number[Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], /) -> ndarray[Any, dtype[number[Any]]]
spatialmath/geom2d.py:799: note: def __matmul__(self, _SupportsArray[dtype[object_]] | _NestedSequence[_SupportsArray[dtype[object_]]], /) -> Any
spatialmath/geom2d.py:799: note: Both left and right operands are unions
spatialmath/geom2d.py:925: error: Incompatible return value type (got "list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]]", expected "ndarray[tuple[Literal[2]], dtype[floating[Any]]]") [return-value]
spatialmath/geom2d.py:1066: error: No return value expected [return-value]
spatialmath/baseposematrix.py:26: error: Skipping analyzing "colored": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/baseposematrix.py:38: error: Skipping analyzing "ansitable": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/baseposematrix.py:304: error: Missing return statement [return]
spatialmath/baseposematrix.py:327: error: No overload variant of "__getitem__" of "list" matches argument type "tuple[slice, slice]" [call-overload]
spatialmath/baseposematrix.py:327: note: Possible overload variants:
spatialmath/baseposematrix.py:327: note: def __getitem__(self, SupportsIndex, /) -> ndarray[Any, dtype[Any]]
spatialmath/baseposematrix.py:327: note: def __getitem__(self, slice, /) -> list[ndarray[Any, dtype[Any]]]
spatialmath/baseposematrix.py:329: error: Incompatible return value type (got "list[Any]", expected "tuple[float, ndarray[tuple[Literal[2]], dtype[floating[Any]]] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]]") [return-value]
spatialmath/baseposematrix.py:332: error: No overload variant of "__getitem__" of "list" matches argument type "tuple[slice, slice]" [call-overload]
spatialmath/baseposematrix.py:332: note: Possible overload variants:
spatialmath/baseposematrix.py:332: note: def __getitem__(self, SupportsIndex, /) -> ndarray[Any, dtype[Any]]
spatialmath/baseposematrix.py:332: note: def __getitem__(self, slice, /) -> list[ndarray[Any, dtype[Any]]]
spatialmath/baseposematrix.py:334: error: Incompatible return value type (got "list[Any]", expected "tuple[float, ndarray[tuple[Literal[2]], dtype[floating[Any]]] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]]") [return-value]
spatialmath/baseposematrix.py:372: error: Argument "twist" to "trlog2" has incompatible type "bool | None"; expected "bool" [arg-type]
spatialmath/baseposematrix.py:374: error: List comprehension has incompatible type List[ndarray[tuple[Literal[3, 3]], dtype[floating[Any]]]]; expected List[ndarray[tuple[Literal[2]], dtype[floating[Any]]]] [misc]
spatialmath/baseposematrix.py:374: error: Argument "twist" to "trlog" has incompatible type "bool | None"; expected "bool" [arg-type]
spatialmath/baseposematrix.py:380: error: Incompatible default for argument "s" (default has type "None", argument has type "int | float") [assignment]
spatialmath/baseposematrix.py:380: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True
spatialmath/baseposematrix.py:380: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase
spatialmath/baseposematrix.py:421: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[floating[Any]]]", variable has type "int | float") [assignment]
spatialmath/baseposematrix.py:423: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[Any]]", variable has type "int | float") [assignment]
spatialmath/baseposematrix.py:430: error: Argument 1 to "len" has incompatible type "bool"; expected "Sized" [arg-type]
spatialmath/baseposematrix.py:432: error: "bool" has no attribute "A" [attr-defined]
spatialmath/baseposematrix.py:437: error: No overload variant of "trinterp2" matches argument types "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]", "bool | None", "Any", "bool" [call-overload]
spatialmath/baseposematrix.py:437: note: Possible overload variants:
spatialmath/baseposematrix.py:437: note: def trinterp2(start: ndarray[tuple[Literal[2], Literal[2]], dtype[floating[Any]]] | None, end: ndarray[tuple[Literal[2], Literal[2]], dtype[floating[Any]]], s: float, shortest: bool = ...) -> ndarray[tuple[Literal[2], Literal[2]], dtype[floating[Any]]]
spatialmath/baseposematrix.py:437: note: def trinterp2(start: ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | None, end: ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]], s: float, shortest: bool = ...) -> ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]
spatialmath/baseposematrix.py:437: error: Item "int" of "int | float" has no attribute "__iter__" (not iterable) [union-attr]
spatialmath/baseposematrix.py:437: error: Item "float" of "int | float" has no attribute "__iter__" (not iterable) [union-attr]
spatialmath/baseposematrix.py:443: error: No overload variant of "trinterp" matches argument types "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]", "bool | None", "Any", "bool" [call-overload]
spatialmath/baseposematrix.py:443: note: Possible overload variants:
spatialmath/baseposematrix.py:443: note: def trinterp(start: ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | None, end: ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]], s: float, shortest: bool = ...) -> ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]
spatialmath/baseposematrix.py:443: note: def trinterp(start: ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]] | None, end: ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]], s: float, shortest: bool = ...) -> ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]
spatialmath/baseposematrix.py:443: error: Item "int" of "int | float" has no attribute "__iter__" (not iterable) [union-attr]
spatialmath/baseposematrix.py:443: error: Item "float" of "int | float" has no attribute "__iter__" (not iterable) [union-attr]
spatialmath/baseposematrix.py:446: error: Incompatible default for argument "s" (default has type "None", argument has type "float") [assignment]
spatialmath/baseposematrix.py:446: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True
spatialmath/baseposematrix.py:446: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase
spatialmath/baseposematrix.py:497: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[Any]]", variable has type "float") [assignment]
spatialmath/baseposematrix.py:502: error: Argument 1 to "len" has incompatible type "float"; expected "Sized" [arg-type]
spatialmath/baseposematrix.py:504: error: Name "start" is not defined [name-defined]
spatialmath/baseposematrix.py:504: error: Argument 2 to "trinterp2" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[2], Literal[2]], dtype[floating[Any]]]" [arg-type]
spatialmath/baseposematrix.py:504: error: "float" has no attribute "__iter__"; maybe "__int__"? (not iterable) [attr-defined]
spatialmath/baseposematrix.py:507: error: Name "start" is not defined [name-defined]
spatialmath/baseposematrix.py:507: error: Value of type "float" is not indexable [index]
spatialmath/baseposematrix.py:513: error: Argument 2 to "trinterp" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/baseposematrix.py:513: error: "float" has no attribute "__iter__"; maybe "__int__"? (not iterable) [attr-defined]
spatialmath/baseposematrix.py:516: error: Value of type "float" is not indexable [index]
spatialmath/baseposematrix.py:623: error: Item "list[ndarray[Any, dtype[Any]]]" of "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]" has no attribute "T" [union-attr]
spatialmath/baseposematrix.py:625: error: "BasePoseMatrix" has no attribute "inv" [attr-defined]
spatialmath/baseposematrix.py:775: error: "trprint2" gets multiple values for keyword argument "file" [misc]
spatialmath/baseposematrix.py:775: error: Argument "file" to "trprint2" has incompatible type "bool"; expected "TextIO" [arg-type]
spatialmath/baseposematrix.py:778: error: "trprint" gets multiple values for keyword argument "file" [misc]
spatialmath/baseposematrix.py:778: error: Argument "file" to "trprint" has incompatible type "bool"; expected "TextIO" [arg-type]
spatialmath/baseposematrix.py:902: error: Incompatible redefinition (redefinition with type "Callable[[Any, Any], Any]", original type "bool | None") [misc]
spatialmath/baseposematrix.py:908: error: "bool" not callable [operator]
spatialmath/baseposematrix.py:908: error: "None" not callable [misc]
spatialmath/baseposematrix.py:909: error: "bool" not callable [operator]
spatialmath/baseposematrix.py:909: error: "None" not callable [misc]
spatialmath/baseposematrix.py:910: error: "bool" not callable [operator]
spatialmath/baseposematrix.py:910: error: "None" not callable [misc]
spatialmath/baseposematrix.py:911: error: "bool" not callable [operator]
spatialmath/baseposematrix.py:911: error: "None" not callable [misc]
spatialmath/baseposematrix.py:912: error: "bool" not callable [operator]
spatialmath/baseposematrix.py:912: error: "None" not callable [misc]
spatialmath/baseposematrix.py:1000: error: Argument 1 to "trplot2" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[2], Literal[2]], dtype[floating[Any]]] | ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/baseposematrix.py:1002: error: Argument 1 to "trplot" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/baseposematrix.py:1033: error: Argument 1 to "tranimate2" has incompatible type "list[Any]"; expected "ndarray[tuple[Literal[2], Literal[2]], dtype[floating[Any]]] | ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/baseposematrix.py:1035: error: No return value expected [return-value]
spatialmath/baseposematrix.py:1035: error: Argument 1 to "tranimate" has incompatible type "list[Any]"; expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/baseposematrix.py:1039: error: Argument 1 to "tranimate2" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[2], Literal[2]], dtype[floating[Any]]] | ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/baseposematrix.py:1041: error: No return value expected [return-value]
spatialmath/baseposematrix.py:1041: error: Argument 1 to "tranimate" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/baseposelist.py:78: error: Method must have at least one argument. Did you forget the "self" argument? [misc]
spatialmath/baseposelist.py:102: error: Cannot instantiate abstract class "BasePoseList" with abstract attribute "shape" [abstract]
spatialmath/baseposelist.py:136: error: Cannot instantiate abstract class "BasePoseList" with abstract attribute "shape" [abstract]
spatialmath/baseposelist.py:137: error: Argument 1 to "range" has incompatible type "int | None"; expected "SupportsIndex" [arg-type]
spatialmath/baseposelist.py:289: error: Signature of "__getitem__" incompatible with supertype "UserList" [override]
spatialmath/baseposelist.py:289: note: Superclass:
spatialmath/baseposelist.py:289: note: @overload
spatialmath/baseposelist.py:289: note: def __getitem__(self, SupportsIndex, /) -> Any
spatialmath/baseposelist.py:289: note: @overload
spatialmath/baseposelist.py:289: note: def __getitem__(self, slice, /) -> BasePoseList
spatialmath/baseposelist.py:289: note: Subclass:
spatialmath/baseposelist.py:289: note: def __getitem__(self, int | slice, /) -> BasePoseList
spatialmath/baseposelist.py:326: error: Cannot instantiate abstract class "BasePoseList" with abstract attribute "shape" [abstract]
spatialmath/baseposelist.py:330: error: No overload variant of "BasePoseList" matches argument types "Any", "bool" [call-overload]
spatialmath/baseposelist.py:330: note: Possible overload variants:
spatialmath/baseposelist.py:330: note: def BasePoseList(self, initlist: None = ...) -> BasePoseList
spatialmath/baseposelist.py:330: note: def BasePoseList(self, initlist: Iterable[Any]) -> BasePoseList
spatialmath/baseposelist.py:335: error: Signature of "__setitem__" incompatible with supertype "UserList" [override]
spatialmath/baseposelist.py:335: note: Superclass:
spatialmath/baseposelist.py:335: note: @overload
spatialmath/baseposelist.py:335: note: def __setitem__(self, SupportsIndex, Any, /) -> None
spatialmath/baseposelist.py:335: note: @overload
spatialmath/baseposelist.py:335: note: def __setitem__(self, slice, Iterable[Any], /) -> None
spatialmath/baseposelist.py:335: note: Subclass:
spatialmath/baseposelist.py:335: note: def __setitem__(self, int, BasePoseList, /) -> None
spatialmath/baseposelist.py:335: error: Signature of "__setitem__" incompatible with supertype "MutableSequence" [override]
spatialmath/baseposelist.py:335: note: Superclass:
spatialmath/baseposelist.py:335: note: @overload
spatialmath/baseposelist.py:335: note: def __setitem__(self, int, Any, /) -> None
spatialmath/baseposelist.py:335: note: @overload
spatialmath/baseposelist.py:335: note: def __setitem__(self, slice, Iterable[Any], /) -> None
spatialmath/baseposelist.py:335: note: Subclass:
spatialmath/baseposelist.py:335: note: def __setitem__(self, int, BasePoseList, /) -> None
spatialmath/baseposelist.py:365: error: Return type "type[Exception]" of "__lt__" incompatible with return type "bool" in supertype "UserList" [override]
spatialmath/baseposelist.py:365: error: Argument 1 of "__lt__" is incompatible with supertype "UserList"; supertype defines the argument type as "list[Any] | UserList[Any]" [override]
spatialmath/baseposelist.py:365: note: This violates the Liskov substitution principle
spatialmath/baseposelist.py:365: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/baseposelist.py:368: error: Return type "type[Exception]" of "__le__" incompatible with return type "bool" in supertype "UserList" [override]
spatialmath/baseposelist.py:368: error: Argument 1 of "__le__" is incompatible with supertype "UserList"; supertype defines the argument type as "list[Any] | UserList[Any]" [override]
spatialmath/baseposelist.py:368: note: This violates the Liskov substitution principle
spatialmath/baseposelist.py:368: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/baseposelist.py:371: error: Return type "type[Exception]" of "__gt__" incompatible with return type "bool" in supertype "UserList" [override]
spatialmath/baseposelist.py:371: error: Argument 1 of "__gt__" is incompatible with supertype "UserList"; supertype defines the argument type as "list[Any] | UserList[Any]" [override]
spatialmath/baseposelist.py:371: note: This violates the Liskov substitution principle
spatialmath/baseposelist.py:371: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/baseposelist.py:374: error: Return type "type[Exception]" of "__ge__" incompatible with return type "bool" in supertype "UserList" [override]
spatialmath/baseposelist.py:374: error: Argument 1 of "__ge__" is incompatible with supertype "UserList"; supertype defines the argument type as "list[Any] | UserList[Any]" [override]
spatialmath/baseposelist.py:374: note: This violates the Liskov substitution principle
spatialmath/baseposelist.py:374: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/baseposelist.py:405: error: Argument 1 of "extend" is incompatible with supertype "UserList"; supertype defines the argument type as "Iterable[Any]" [override]
spatialmath/baseposelist.py:405: note: This violates the Liskov substitution principle
spatialmath/baseposelist.py:405: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/baseposelist.py:405: error: Argument 1 of "extend" is incompatible with supertype "MutableSequence"; supertype defines the argument type as "Iterable[Any]" [override]
spatialmath/baseposelist.py:495: error: Cannot instantiate abstract class "BasePoseList" with abstract attribute "shape" [abstract]
spatialmath/baseposelist.py:495: error: Argument 1 to "pop" of "UserList" has incompatible type "int | None"; expected "int" [arg-type]
spatialmath/baseposelist.py:673: error: List item 0 has incompatible type "list[int]"; expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]" [list-item]
spatialmath/baseposelist.py:673: error: List item 1 has incompatible type "list[int]"; expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]" [list-item]
spatialmath/baseposelist.py:673: error: List item 2 has incompatible type "list[int]"; expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]" [list-item]
spatialmath/baseposelist.py:676: error: Incompatible types in assignment (expression has type "SO2", variable has type "SO3") [assignment]
spatialmath/DualQuaternion.py:33: error: Incompatible default for argument "real" (default has type "None", argument has type "Quaternion") [assignment]
spatialmath/DualQuaternion.py:33: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True
spatialmath/DualQuaternion.py:33: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase
spatialmath/DualQuaternion.py:33: error: Incompatible default for argument "dual" (default has type "None", argument has type "Quaternion") [assignment]
spatialmath/DualQuaternion.py:70: error: Cannot determine type of "real" [has-type]
spatialmath/DualQuaternion.py:71: error: Cannot determine type of "dual" [has-type]
spatialmath/DualQuaternion.py:98: error: Cannot determine type of "real" [has-type]
spatialmath/DualQuaternion.py:98: error: Cannot determine type of "dual" [has-type]
spatialmath/DualQuaternion.py:118: error: Cannot determine type of "real" [has-type]
spatialmath/DualQuaternion.py:119: error: Cannot determine type of "real" [has-type]
spatialmath/DualQuaternion.py:119: error: Cannot determine type of "dual" [has-type]
spatialmath/DualQuaternion.py:141: error: Cannot determine type of "real" [has-type]
spatialmath/DualQuaternion.py:141: error: Cannot determine type of "dual" [has-type]
spatialmath/DualQuaternion.py:160: error: Cannot determine type of "real" [has-type]
spatialmath/DualQuaternion.py:160: error: Cannot determine type of "dual" [has-type]
spatialmath/DualQuaternion.py:179: error: Cannot determine type of "real" [has-type]
spatialmath/DualQuaternion.py:179: error: Cannot determine type of "dual" [has-type]
spatialmath/DualQuaternion.py:200: error: Cannot determine type of "real" [has-type]
spatialmath/DualQuaternion.py:201: error: Cannot determine type of "real" [has-type]
spatialmath/DualQuaternion.py:201: error: Cannot determine type of "dual" [has-type]
spatialmath/DualQuaternion.py:206: error: No overload variant of "UnitDualQuaternion" matches argument types "Any", "Any" [call-overload]
spatialmath/DualQuaternion.py:206: note: Possible overload variant:
spatialmath/DualQuaternion.py:206: note: def __init__(self, T: SE3) -> UnitDualQuaternion
spatialmath/DualQuaternion.py:235: error: Cannot determine type of "real" [has-type]
spatialmath/DualQuaternion.py:235: error: Cannot determine type of "dual" [has-type]
spatialmath/DualQuaternion.py:254: error: Cannot determine type of "real" [has-type]
spatialmath/DualQuaternion.py:254: error: Cannot determine type of "dual" [has-type]
spatialmath/DualQuaternion.py:273: error: Single overload definition, multiple required [misc]
spatialmath/DualQuaternion.py:277: error: The implementation for an overloaded function must come last [misc]
spatialmath/DualQuaternion.py:348: error: Cannot determine type of "real" [has-type]
spatialmath/DualQuaternion.py:349: error: Cannot determine type of "dual" [has-type]
spatialmath/DualQuaternion.py:349: error: Cannot determine type of "real" [has-type]
Found 521 errors in 21 files (checked 28 source files)
Focusing on
spatialmath/base/_types_311.py:3: error: Module "typing" has no attribute "Self" [attr-defined]
spatialmath/base/_types_311.py:3: note: Use `from typing_extensions import Self` instead
spatialmath/base/_types_311.py:3: note: See https://mypy.readthedocs.io/en/stable/runtime_troubles.html#using-new-additions-to-the-typing-module
spatialmath/base/types.py:9: error: Incompatible import of "SE2Array" (imported name has type "type[ndarray[Any, Any]]", local name has type "type[ndarray[Any, Any]]") [assignment]
spatialmath/base/types.py:9: error: Incompatible import of "SO2Array" (imported name has type "type[ndarray[Any, Any]]", local name has type "type[ndarray[Any, Any]]") [assignment]
spatialmath/base/types.py:11: error: Incompatible import of "L" (imported name has type "typing_extensions._SpecialForm", local name has type "<typing special form>") [assignment]
It looks like the python version conditionals are not written in a way that mypy can undertsand.
Fixing that reveals more problems:
(.venv) jbarnett@jbarnett-LT:~/spatialmath-python$ mypy spatialmath
spatialmath/timing.py:11: error: Skipping analyzing "ansitable": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/symbolic.py:19: error: Skipping analyzing "sympy": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/symbolic.py:28: error: Incompatible types in assignment (expression has type "tuple[()]", variable has type "tuple[Any]") [assignment]
spatialmath/base/argcheck.py:291: error: Overloaded function signature 2 will never be matched: signature 1's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/argcheck.py:301: error: Overloaded function signature 3 will never be matched: signature 1's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/argcheck.py:301: error: Overloaded function signature 3 will never be matched: signature 2's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/argcheck.py:311: error: Overloaded function signature 4 will never be matched: signature 1's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/argcheck.py:311: error: Overloaded function signature 4 will never be matched: signature 2's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/vectors.py:21: error: Skipping analyzing "sympy": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/vectors.py:56: error: Incompatible types in assignment (expression has type "float | Any", variable has type "int") [assignment]
spatialmath/base/vectors.py:90: error: Incompatible types in assignment (expression has type "float | Any", variable has type "int") [assignment]
spatialmath/base/vectors.py:846: error: Unsupported left operand type for - ("list[float]") [operator]
spatialmath/base/vectors.py:846: error: Unsupported left operand type for - ("tuple[float, float, float]") [operator]
spatialmath/base/vectors.py:846: note: Both left and right operands are unions
spatialmath/base/transformsNd.py:27: error: Skipping analyzing "sympy": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/transformsNd.py:594: error: Overloaded function signatures 1 and 2 overlap with incompatible return types [overload-overlap]
spatialmath/base/transforms2d.py:22: error: Skipping analyzing "matplotlib.pyplot": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/transforms2d.py:22: error: Skipping analyzing "matplotlib": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/transforms2d.py:37: error: Skipping analyzing "sympy": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/transforms2d.py:66: error: Incompatible types in assignment (expression has type "float | ndarray[Any, dtype[Any]]", variable has type "float") [assignment]
spatialmath/base/transforms2d.py:464: error: Overloaded function signature 3 will never be matched: signature 1's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/transforms2d.py:474: error: Overloaded function signature 4 will never be matched: signature 2's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/transforms2d.py:654: error: Incompatible types in assignment (expression has type "ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None", variable has type "ndarray[tuple[Literal[3]], dtype[floating[Any]]]") [assignment]
spatialmath/base/transforms2d.py:665: error: No overload variant of "__mul__" of "ndarray" matches argument type "None" [operator]
spatialmath/base/transforms2d.py:665: note: Possible overload variants:
spatialmath/base/transforms2d.py:665: note: def __mul__(self, _SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]]] | bool | int | float | _NestedSequence[bool | int | float], /) -> ndarray[Any, dtype[floating[Any]]]
spatialmath/base/transforms2d.py:665: note: def __mul__(self, _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], /) -> ndarray[Any, dtype[complexfloating[Any, Any]]]
spatialmath/base/transforms2d.py:665: note: def __mul__(self, _SupportsArray[dtype[bool_ | number[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | number[Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], /) -> ndarray[Any, dtype[number[Any]]]
spatialmath/base/transforms2d.py:665: note: def __mul__(self, _SupportsArray[dtype[bool_ | integer[Any] | timedelta64]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | timedelta64]]] | bool | int | _NestedSequence[bool | int], /) -> ndarray[Any, dtype[timedelta64]]
spatialmath/base/transforms2d.py:665: note: def __mul__(self, _SupportsArray[dtype[object_]] | _NestedSequence[_SupportsArray[dtype[object_]]], /) -> Any
spatialmath/base/transforms2d.py:665: note: Right operand is of type "float | None"
spatialmath/base/transforms2d.py:666: error: Argument 1 to "cos" has incompatible type "float | None"; expected "SupportsFloat | SupportsIndex" [arg-type]
spatialmath/base/transforms2d.py:666: note: Left operand is of type "ndarray[Any, dtype[floating[Any]]] | Any"
spatialmath/base/transforms2d.py:667: error: Unsupported operand types for - ("None" and "float") [operator]
spatialmath/base/transforms2d.py:667: note: Left operand is of type "float | None"
spatialmath/base/transforms2d.py:667: note: Left operand is of type "ndarray[Any, dtype[floating[Any]]] | Any"
spatialmath/base/transforms2d.py:667: error: Argument 1 to "sin" has incompatible type "float | None"; expected "SupportsFloat | SupportsIndex" [arg-type]
spatialmath/base/transforms2d.py:694: error: Single overload definition, multiple required [misc]
spatialmath/base/transforms2d.py:699: error: Overloaded function implementation does not accept all possible arguments of signature 1 [misc]
spatialmath/base/transforms2d.py:699: error: Overloaded function implementation cannot produce return type of signature 1 [misc]
spatialmath/base/transforms2d.py:923: error: Incompatible types in assignment (expression has type "float | ndarray[Any, dtype[floating[Any]]]", variable has type "float") [assignment]
spatialmath/base/transforms2d.py:945: error: Incompatible types in assignment (expression has type "float | ndarray[Any, dtype[floating[Any]]]", variable has type "float") [assignment]
spatialmath/base/transforms2d.py:1134: error: Skipping analyzing "scipy.spatial": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/transforms2d.py:1213: error: Incompatible types in assignment (expression has type "float", variable has type "int") [assignment]
spatialmath/base/transforms2d.py:1229: error: Skipping analyzing "matplotlib.axes": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/transforms2d.py:1441: error: Incompatible types in assignment (expression has type "str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]", variable has type "str") [assignment]
spatialmath/base/transforms2d.py:1455: error: Incompatible types in assignment (expression has type "str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]", variable has type "str") [assignment]
spatialmath/base/quaternions.py:19: error: Skipping analyzing "scipy.interpolate": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/quaternions.py:19: error: Skipping analyzing "scipy": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/quaternions.py:79: error: Unsupported operand type for unary - ("list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]") [operator]
spatialmath/base/quaternions.py:81: error: Incompatible return value type (got "list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]", expected "ndarray[tuple[Literal[4]], dtype[floating[Any]]]") [return-value]
spatialmath/base/quaternions.py:109: error: Incompatible return value type (got "floating[Any]", expected "float") [return-value]
spatialmath/base/quaternions.py:187: error: Overloaded function signature 2 will never be matched: signature 1's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/quaternions.py:431: error: Unsupported operand types for ** ("list[float]" and "int") [operator]
spatialmath/base/quaternions.py:431: error: Unsupported operand types for ** ("tuple[float, float, float]" and "int") [operator]
spatialmath/base/quaternions.py:431: note: Left operand is of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]"
spatialmath/base/quaternions.py:432: error: Unsupported operand types for ** ("list[float]" and "int") [operator]
spatialmath/base/quaternions.py:432: error: Unsupported operand types for ** ("tuple[float, float, float]" and "int") [operator]
spatialmath/base/quaternions.py:432: note: Left operand is of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]"
spatialmath/base/quaternions.py:598: error: Argument "check" to "isrot" has incompatible type "bool | None"; expected "bool" [arg-type]
spatialmath/base/quaternions.py:878: error: Argument 1 to "_compute_cdf_sin_squared" has incompatible type "ndarray[Any, dtype[floating[Any]]]"; expected "float" [arg-type]
spatialmath/base/quaternions.py:923: error: Incompatible types in assignment (expression has type "float | ndarray[Any, dtype[Any]]", variable has type "list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None") [assignment]
spatialmath/base/quaternions.py:945: error: Unsupported operand types for / ("list[float]" and "int") [operator]
spatialmath/base/quaternions.py:945: error: Unsupported operand types for / ("tuple[float, ...]" and "int") [operator]
spatialmath/base/quaternions.py:945: note: Left operand is of type "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]"
spatialmath/base/quaternions.py:1091: error: Missing return statement [return]
spatialmath/base/quaternions.py:1131: error: Argument 2 to "replace" of "str" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/base/quaternions.py:1132: error: Value of type "tuple[str, str] | None" is not indexable [index]
spatialmath/base/graphics.py:5: error: Skipping analyzing "matplotlib": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/graphics.py:26: error: Skipping analyzing "matplotlib.pyplot": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/graphics.py:27: error: Skipping analyzing "matplotlib.patches": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/graphics.py:28: error: Skipping analyzing "mpl_toolkits.mplot3d.art3d": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/graphics.py:33: error: Skipping analyzing "mpl_toolkits.mplot3d": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/graphics.py:209: error: Argument 2 to "islistof" has incompatible type "tuple[type[tuple[Any, ...]], type[list[Any]]]"; expected "type[Any] | Callable[..., Any]" [arg-type]
spatialmath/base/graphics.py:210: error: Value of type "float" is not indexable [index]
spatialmath/base/graphics.py:211: error: Value of type "float" is not indexable [index]
spatialmath/base/graphics.py:242: error: Incompatible types in assignment (expression has type "list[tuple[Any, Any]]", variable has type "zip[tuple[Any, Any]]") [assignment]
spatialmath/base/graphics.py:412: error: Incompatible types in assignment (expression has type "list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]]", variable has type "float | None") [assignment]
spatialmath/base/graphics.py:484: error: Item "None" of "str | None" has no attribute "__iter__" (not iterable) [union-attr]
spatialmath/base/graphics.py:490: error: Incompatible types in assignment (expression has type "None", variable has type "str") [assignment]
spatialmath/base/graphics.py:502: error: Missing return statement [return]
spatialmath/base/graphics.py:582: error: Incompatible types in assignment (expression has type "list[str]", variable has type "str") [assignment]
spatialmath/base/graphics.py:635: error: Argument "fmt" to "_render2D" has incompatible type "tuple[Any, ...]"; expected "Callable[..., Any] | None" [arg-type]
spatialmath/base/graphics.py:696: error: Tuple index out of range [misc]
spatialmath/base/graphics.py:749: error: Argument 3 to "circle" has incompatible type "int | None"; expected "int" [arg-type]
spatialmath/base/graphics.py:799: error: Skipping analyzing "scipy.linalg": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/graphics.py:805: error: Skipping analyzing "scipy.stats.distributions": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/graphics.py:808: error: Unsupported operand types for * ("float" and "None") [operator]
spatialmath/base/graphics.py:808: note: Right operand is of type "float | None"
spatialmath/base/graphics.py:810: error: Incompatible types in assignment (expression has type "float | None", variable has type "float") [assignment]
spatialmath/base/graphics.py:812: error: Argument "resolution" to "circle" has incompatible type "int | None"; expected "int" [arg-type]
spatialmath/base/graphics.py:812: error: Argument "closed" to "circle" has incompatible type "bool | None"; expected "bool" [arg-type]
spatialmath/base/graphics.py:820: error: Missing return statement [return]
spatialmath/base/graphics.py:891: error: Incompatible default for argument "centre" (default has type "tuple[int, int, int]", argument has type "list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None") [assignment]
spatialmath/base/graphics.py:910: error: Argument 3 to "linspace" has incompatible type "int | None"; expected "SupportsIndex" [arg-type]
spatialmath/base/graphics.py:911: error: Argument 3 to "linspace" has incompatible type "int | None"; expected "SupportsIndex" [arg-type]
spatialmath/base/graphics.py:915: error: Value of type "list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:916: error: Value of type "list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:917: error: Tuple index out of range [misc]
spatialmath/base/graphics.py:917: error: Value of type "list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:980: error: Argument 1 to "getmatrix" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None"; expected "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" [arg-type]
spatialmath/base/graphics.py:1035: error: Unsupported operand types for * ("float" and "None") [operator]
spatialmath/base/graphics.py:1035: note: Right operand is of type "float | None"
spatialmath/base/graphics.py:1037: error: Incompatible types in assignment (expression has type "float | None", variable has type "float") [assignment]
spatialmath/base/graphics.py:1043: error: Argument 1 to "getvector" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None"; expected "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" [arg-type]
spatialmath/base/graphics.py:1108: error: Argument 1 to "ellipsoid" has incompatible type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]"; expected "ndarray[tuple[Literal[2], Literal[2]], dtype[floating[Any]]]" [arg-type]
spatialmath/base/graphics.py:1144: error: No overload variant of "linspace" matches argument types "int", "float", "float" [call-overload]
spatialmath/base/graphics.py:1144: note: Possible overload variants:
spatialmath/base/graphics.py:1144: note: def linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]]] | bool | int | float | _NestedSequence[bool | int | float], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]]] | bool | int | float | _NestedSequence[bool | int | float], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[False] = ..., dtype: None = ..., axis: SupportsIndex = ...) -> ndarray[Any, dtype[floating[Any]]]
spatialmath/base/graphics.py:1144: note: def linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[False] = ..., dtype: None = ..., axis: SupportsIndex = ...) -> ndarray[Any, dtype[complexfloating[Any, Any]]]
spatialmath/base/graphics.py:1144: note: def [_SCT: generic] linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[False] = ..., dtype: dtype[_SCT] | type[_SCT] | _SupportsDType[dtype[_SCT]] = ..., axis: SupportsIndex = ...) -> ndarray[Any, dtype[_SCT]]
spatialmath/base/graphics.py:1144: note: def linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[False] = ..., dtype: dtype[Any] | type[Any] | _SupportsDType[dtype[Any]] | str | tuple[Any, int] | tuple[Any, SupportsIndex | Sequence[SupportsIndex]] | list[Any] | _DTypeDict | tuple[Any, Any] | None = ..., axis: SupportsIndex = ...) -> ndarray[Any, dtype[Any]]
spatialmath/base/graphics.py:1144: note: def linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]]] | bool | int | float | _NestedSequence[bool | int | float], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]]] | bool | int | float | _NestedSequence[bool | int | float], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[True] = ..., dtype: None = ..., axis: SupportsIndex = ...) -> tuple[ndarray[Any, dtype[floating[Any]]], floating[Any]]
spatialmath/base/graphics.py:1144: note: def linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[True] = ..., dtype: None = ..., axis: SupportsIndex = ...) -> tuple[ndarray[Any, dtype[complexfloating[Any, Any]]], complexfloating[Any, Any]]
spatialmath/base/graphics.py:1144: note: def [_SCT: generic] linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[True] = ..., dtype: dtype[_SCT] | type[_SCT] | _SupportsDType[dtype[_SCT]] = ..., axis: SupportsIndex = ...) -> tuple[ndarray[Any, dtype[_SCT]], _SCT]
spatialmath/base/graphics.py:1144: note: def linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[True] = ..., dtype: dtype[Any] | type[Any] | _SupportsDType[dtype[Any]] | str | tuple[Any, int] | tuple[Any, SupportsIndex | Sequence[SupportsIndex]] | list[Any] | _DTypeDict | tuple[Any, Any] | None = ..., axis: SupportsIndex = ...) -> tuple[ndarray[Any, dtype[Any]], Any]
spatialmath/base/graphics.py:1145: error: No overload variant of "linspace" matches argument types "int", "float", "float" [call-overload]
spatialmath/base/graphics.py:1145: note: Possible overload variants:
spatialmath/base/graphics.py:1145: note: def linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]]] | bool | int | float | _NestedSequence[bool | int | float], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]]] | bool | int | float | _NestedSequence[bool | int | float], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[False] = ..., dtype: None = ..., axis: SupportsIndex = ...) -> ndarray[Any, dtype[floating[Any]]]
spatialmath/base/graphics.py:1145: note: def linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[False] = ..., dtype: None = ..., axis: SupportsIndex = ...) -> ndarray[Any, dtype[complexfloating[Any, Any]]]
spatialmath/base/graphics.py:1145: note: def [_SCT: generic] linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[False] = ..., dtype: dtype[_SCT] | type[_SCT] | _SupportsDType[dtype[_SCT]] = ..., axis: SupportsIndex = ...) -> ndarray[Any, dtype[_SCT]]
spatialmath/base/graphics.py:1145: note: def linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[False] = ..., dtype: dtype[Any] | type[Any] | _SupportsDType[dtype[Any]] | str | tuple[Any, int] | tuple[Any, SupportsIndex | Sequence[SupportsIndex]] | list[Any] | _DTypeDict | tuple[Any, Any] | None = ..., axis: SupportsIndex = ...) -> ndarray[Any, dtype[Any]]
spatialmath/base/graphics.py:1145: note: def linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]]] | bool | int | float | _NestedSequence[bool | int | float], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]]] | bool | int | float | _NestedSequence[bool | int | float], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[True] = ..., dtype: None = ..., axis: SupportsIndex = ...) -> tuple[ndarray[Any, dtype[floating[Any]]], floating[Any]]
spatialmath/base/graphics.py:1145: note: def linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[True] = ..., dtype: None = ..., axis: SupportsIndex = ...) -> tuple[ndarray[Any, dtype[complexfloating[Any, Any]]], complexfloating[Any, Any]]
spatialmath/base/graphics.py:1145: note: def [_SCT: generic] linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[True] = ..., dtype: dtype[_SCT] | type[_SCT] | _SupportsDType[dtype[_SCT]] = ..., axis: SupportsIndex = ...) -> tuple[ndarray[Any, dtype[_SCT]], _SCT]
spatialmath/base/graphics.py:1145: note: def linspace(start: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], stop: _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], num: SupportsIndex = ..., endpoint: bool = ..., retstep: Literal[True] = ..., dtype: dtype[Any] | type[Any] | _SupportsDType[dtype[Any]] | str | tuple[Any, int] | tuple[Any, SupportsIndex | Sequence[SupportsIndex]] | list[Any] | _DTypeDict | tuple[Any, Any] | None = ..., axis: SupportsIndex = ...) -> tuple[ndarray[Any, dtype[Any]], Any]
spatialmath/base/graphics.py:1146: error: Name "z" is not defined [name-defined]
spatialmath/base/graphics.py:1205: error: List item 1 has incompatible type "float | list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]]"; expected "float" [list-item]
spatialmath/base/graphics.py:1208: error: Value of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:1208: error: Argument 3 to "linspace" has incompatible type "int | None"; expected "SupportsIndex" [arg-type]
spatialmath/base/graphics.py:1213: error: Value of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:1219: error: Value of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:1222: error: No overload variant of "get" of "dict" matches argument types "str", "bool" [call-overload]
spatialmath/base/graphics.py:1222: note: Possible overload variants:
spatialmath/base/graphics.py:1222: note: def get(self, str, /) -> Any | None
spatialmath/base/graphics.py:1222: note: def get(self, str, Any, /) -> Any
spatialmath/base/graphics.py:1222: note: def [_T] get(self, str, _T, /) -> Any | _T
spatialmath/base/graphics.py:1224: error: Value of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:1226: error: Value of type "float | list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]]" is not indexable [index]
spatialmath/base/graphics.py:1228: error: Value of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:1230: error: Value of type "float | list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]]" is not indexable [index]
spatialmath/base/graphics.py:1289: error: Argument 3 to "linspace" has incompatible type "int | None"; expected "SupportsIndex" [arg-type]
spatialmath/base/graphics.py:1290: error: Argument 3 to "linspace" has incompatible type "int | None"; expected "SupportsIndex" [arg-type]
spatialmath/base/graphics.py:1294: error: Value of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:1295: error: Value of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:1296: error: Value of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:1303: error: Value of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:1306: error: No overload variant of "get" of "dict" matches argument types "str", "bool" [call-overload]
spatialmath/base/graphics.py:1306: note: Possible overload variants:
spatialmath/base/graphics.py:1306: note: def get(self, str, /) -> Any | None
spatialmath/base/graphics.py:1306: note: def get(self, str, Any, /) -> Any
spatialmath/base/graphics.py:1306: note: def [_T] get(self, str, _T, /) -> Any | _T
spatialmath/base/graphics.py:1307: error: Value of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:1309: error: Value of type "float" is not indexable [index]
spatialmath/base/graphics.py:1311: error: Value of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/base/graphics.py:1313: error: Value of type "float" is not indexable [index]
spatialmath/base/graphics.py:1359: error: No overload variant of "__add__" of "ndarray" matches argument type "None" [operator]
spatialmath/base/graphics.py:1359: note: Possible overload variants:
spatialmath/base/graphics.py:1359: note: def __add__(self, _SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]]] | bool | int | float | _NestedSequence[bool | int | float], /) -> ndarray[Any, dtype[floating[Any]]]
spatialmath/base/graphics.py:1359: note: def __add__(self, _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], /) -> ndarray[Any, dtype[complexfloating[Any, Any]]]
spatialmath/base/graphics.py:1359: note: def __add__(self, _SupportsArray[dtype[bool_ | number[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | number[Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], /) -> ndarray[Any, dtype[number[Any]]]
spatialmath/base/graphics.py:1359: note: def __add__(self, _SupportsArray[dtype[object_]] | _NestedSequence[_SupportsArray[dtype[object_]]], /) -> Any
spatialmath/base/graphics.py:1359: note: Right operand is of type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None"
spatialmath/base/graphics.py:1374: error: "ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]" has no attribute "A" [attr-defined]
spatialmath/base/graphics.py:1498: error: Overloaded function implementation does not accept all possible arguments of signature 1 [misc]
spatialmath/base/graphics.py:1498: error: Overloaded function implementation does not accept all possible arguments of signature 2 [misc]
spatialmath/base/graphics.py:1573: error: Incompatible default for argument "dim" (default has type "None", argument has type "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]") [assignment]
spatialmath/base/graphics.py:1573: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True
spatialmath/base/graphics.py:1573: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase
spatialmath/base/graphics.py:1628: error: Incompatible default for argument "dim" (default has type "None", argument has type "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]") [assignment]
spatialmath/base/graphics.py:1628: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True
spatialmath/base/graphics.py:1628: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase
spatialmath/base/graphics.py:1688: error: Incompatible default for argument "dim" (default has type "None", argument has type "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]") [assignment]
spatialmath/base/graphics.py:1688: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True
spatialmath/base/graphics.py:1688: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase
spatialmath/base/graphics.py:1745: error: Name "get_ipython" is not defined [name-defined]
spatialmath/base/graphics.py:1769: error: All conditional function variants must have identical signatures [misc]
spatialmath/base/graphics.py:1769: note: Original:
spatialmath/base/graphics.py:1769: note: def plot_text(pos: list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]], text: str, ax: Any | None = ..., color: str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None = ..., **kwargs: Any) -> list[Any]
spatialmath/base/graphics.py:1769: note: Redefinition:
spatialmath/base/graphics.py:1769: note: def plot_text(*args: Any, **kwargs: Any) -> None
spatialmath/base/graphics.py:1772: error: All conditional function variants must have identical signatures [misc]
spatialmath/base/graphics.py:1772: note: Original:
spatialmath/base/graphics.py:1772: note: def plot_box(*fmt: str | None, lbrt: list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]] | None = ..., lrbt: list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]] | None = ..., lbwh: list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]] | None = ..., bbox: list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]] | None = ..., ltrb: list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]] | None = ..., lb: list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None = ..., lt: list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None = ..., rb: list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None = ..., rt: list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None = ..., wh: list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None = ..., centre: list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None = ..., w: float | None = ..., h: float | None = ..., ax: Any | None = ..., filled: bool = ..., **kwargs: Any) -> list[Any]
spatialmath/base/graphics.py:1772: note: Redefinition:
spatialmath/base/graphics.py:1772: note: def plot_box(*args: Any, **kwargs: Any) -> None
spatialmath/base/graphics.py:1775: error: All conditional function variants must have identical signatures [misc]
spatialmath/base/graphics.py:1775: note: Original:
spatialmath/base/graphics.py:1775: note: def plot_circle(radius: float, centre: list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]], *fmt: str | None, resolution: int | None = ..., ax: Any | None = ..., filled: bool | None = ..., **kwargs: Any) -> list[Any]
spatialmath/base/graphics.py:1775: note: Redefinition:
spatialmath/base/graphics.py:1775: note: def plot_circle(*args: Any, **kwargs: Any) -> None
spatialmath/base/graphics.py:1778: error: All conditional function variants must have identical signatures [misc]
spatialmath/base/graphics.py:1778: note: Original:
spatialmath/base/graphics.py:1778: note: def plot_ellipse(E: ndarray[tuple[Literal[2], Literal[2]], dtype[floating[Any]]], centre: list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]], *fmt: str | None, scale: float | None = ..., confidence: float | None = ..., resolution: int | None = ..., inverted: bool | None = ..., ax: Any | None = ..., filled: bool | None = ..., **kwargs: Any) -> list[Any]
spatialmath/base/graphics.py:1778: note: Redefinition:
spatialmath/base/graphics.py:1778: note: def plot_ellipse(*args: Any, **kwargs: Any) -> None
spatialmath/base/graphics.py:1781: error: All conditional function variants must have identical signatures [misc]
spatialmath/base/graphics.py:1781: note: Original:
spatialmath/base/graphics.py:1781: note: def plot_arrow(start: list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]], end: list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]], label: str | None = ..., label_pos: str = ..., ax: Any | None = ..., **kwargs: Any) -> list[Any]
spatialmath/base/graphics.py:1781: note: Redefinition:
spatialmath/base/graphics.py:1781: note: def plot_arrow(*args: Any, **kwargs: Any) -> None
spatialmath/base/graphics.py:1784: error: All conditional function variants must have identical signatures [misc]
spatialmath/base/graphics.py:1784: note: Original:
spatialmath/base/graphics.py:1784: note: def plot_sphere(radius: float, centre: list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None = ..., pose: ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]] | None = ..., resolution: int | None = ..., ax: Any | None = ..., **kwargs: Any) -> list[Any]
spatialmath/base/graphics.py:1784: note: Redefinition:
spatialmath/base/graphics.py:1784: note: def plot_sphere(*args: Any, **kwargs: Any) -> None
spatialmath/base/graphics.py:1787: error: All conditional function variants must have identical signatures [misc]
spatialmath/base/graphics.py:1787: note: Original:
spatialmath/base/graphics.py:1787: note: def plot_ellipsoid(E: ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]], centre: list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None = ..., scale: float | None = ..., confidence: float | None = ..., resolution: int | None = ..., inverted: bool | None = ..., ax: Any | None = ..., **kwargs: Any) -> list[Any]
spatialmath/base/graphics.py:1787: note: Redefinition:
spatialmath/base/graphics.py:1787: note: def plot_ellipsoid(*args: Any, **kwargs: Any) -> None
spatialmath/base/graphics.py:1790: error: All conditional function variants must have identical signatures [misc]
spatialmath/base/graphics.py:1790: note: Original:
spatialmath/base/graphics.py:1790: note: def plot_text(pos: list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]], text: str, ax: Any | None = ..., color: str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None = ..., **kwargs: Any) -> list[Any]
spatialmath/base/graphics.py:1790: note: Redefinition:
spatialmath/base/graphics.py:1790: note: def plot_text(*args: Any, **kwargs: Any) -> None
spatialmath/base/graphics.py:1793: error: All conditional function variants must have identical signatures [misc]
spatialmath/base/graphics.py:1793: note: Original:
spatialmath/base/graphics.py:1793: note: def plot_cuboid(sides: list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] = ..., centre: list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None = ..., pose: ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]] | None = ..., ax: Any | None = ..., filled: bool | None = ..., **kwargs: Any) -> list[Any]
spatialmath/base/graphics.py:1793: note: Redefinition:
spatialmath/base/graphics.py:1793: note: def plot_cuboid(*args: Any, **kwargs: Any) -> None
spatialmath/base/graphics.py:1796: error: All conditional function variants must have identical signatures [misc]
spatialmath/base/graphics.py:1796: note: Original:
spatialmath/base/graphics.py:1796: note: def plot_cone(radius: float, height: float, resolution: int | None = ..., flip: bool | None = ..., centre: list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None = ..., ends: bool | None = ..., pose: ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]] | None = ..., ax: Any | None = ..., filled: bool | None = ..., **kwargs: Any) -> list[Any]
spatialmath/base/graphics.py:1796: note: Redefinition:
spatialmath/base/graphics.py:1796: note: def plot_cone(*args: Any, **kwargs: Any) -> None
spatialmath/base/graphics.py:1799: error: All conditional function variants must have identical signatures [misc]
spatialmath/base/graphics.py:1799: note: Original:
spatialmath/base/graphics.py:1799: note: def plot_cylinder(radius: float, height: float | list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]], resolution: int | None = ..., centre: list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None = ..., ends: Any = ..., pose: ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]] | None = ..., ax: Any = ..., filled: Any = ..., **kwargs: Any) -> list[Any]
spatialmath/base/graphics.py:1799: note: Redefinition:
spatialmath/base/graphics.py:1799: note: def plot_cylinder(*args: Any, **kwargs: Any) -> None
spatialmath/base/animate.py:14: error: Skipping analyzing "matplotlib.pyplot": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/animate.py:14: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
spatialmath/base/animate.py:14: error: Skipping analyzing "matplotlib": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/animate.py:76: error: Need type annotation for "displaylist" (hint: "displaylist: list[<type>] = ...") [var-annotated]
spatialmath/base/animate.py:106: error: Argument "dim" to "plotvol3" has incompatible type "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]] | None"; expected "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" [arg-type]
spatialmath/base/animate.py:155: error: Argument 1 to "r2t" has incompatible type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]"; expected "ndarray[tuple[Literal[2, 2]], dtype[floating[Any]]]" [arg-type]
spatialmath/base/animate.py:157: error: Incompatible types in assignment (expression has type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]", variable has type "ndarray[tuple[Literal[3, 3]], dtype[floating[Any]]]") [assignment]
spatialmath/base/animate.py:163: error: Argument 1 to "r2t" has incompatible type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]"; expected "ndarray[tuple[Literal[2, 2]], dtype[floating[Any]]]" [arg-type]
spatialmath/base/animate.py:467: error: Argument 4 to "plot" of "Animate" has incompatible type "str"; expected "list[Any]" [arg-type]
spatialmath/base/animate.py:539: error: Need type annotation for "displaylist" (hint: "displaylist: list[<type>] = ...") [var-annotated]
spatialmath/base/animate.py:555: error: Argument 1 to "len" has incompatible type "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]"; expected "Sized" [arg-type]
spatialmath/base/animate.py:557: error: Value of type "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" is not indexable [index]
spatialmath/base/animate.py:558: error: Value of type "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" is not indexable [index]
spatialmath/base/animate.py:593: error: Argument 1 to "r2t" has incompatible type "ndarray[tuple[Literal[2, 2]], dtype[floating[Any]]] | ndarray[tuple[Literal[3, 3]], dtype[floating[Any]]]"; expected "ndarray[tuple[Literal[2, 2]], dtype[floating[Any]]]" [arg-type]
spatialmath/base/animate.py:595: error: Incompatible types in assignment (expression has type "ndarray[tuple[Literal[2, 2]], dtype[floating[Any]]] | ndarray[tuple[Literal[3, 3]], dtype[floating[Any]]]", variable has type "ndarray[tuple[Literal[3, 3]], dtype[floating[Any]]]") [assignment]
spatialmath/base/animate.py:601: error: Argument 1 to "r2t" has incompatible type "ndarray[tuple[Literal[2, 2]], dtype[floating[Any]]] | ndarray[tuple[Literal[3, 3]], dtype[floating[Any]]]"; expected "ndarray[tuple[Literal[2, 2]], dtype[floating[Any]]]" [arg-type]
spatialmath/base/transforms3d.py:82: error: Incompatible types in assignment (expression has type "float | ndarray[Any, dtype[Any]]", variable has type "float") [assignment]
spatialmath/base/transforms3d.py:121: error: Incompatible types in assignment (expression has type "float | ndarray[Any, dtype[Any]]", variable has type "float") [assignment]
spatialmath/base/transforms3d.py:155: error: Incompatible types in assignment (expression has type "float | ndarray[Any, dtype[Any]]", variable has type "float") [assignment]
spatialmath/base/transforms3d.py:499: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[Any]]", variable has type "list[list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | float | None]") [assignment]
spatialmath/base/transforms3d.py:501: error: Incompatible types in assignment (expression has type "float | ndarray[Any, dtype[Any]]", variable has type "list[list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | float | None]") [assignment]
spatialmath/base/transforms3d.py:501: error: Argument 1 to "getunit" has incompatible type "list[list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | float | None]"; expected "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" [arg-type]
spatialmath/base/transforms3d.py:505: error: Argument 1 to "rotx" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | float | None"; expected "float" [arg-type]
spatialmath/base/transforms3d.py:505: error: Argument 1 to "roty" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | float | None"; expected "float" [arg-type]
spatialmath/base/transforms3d.py:505: error: Argument 1 to "rotz" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | float | None"; expected "float" [arg-type]
spatialmath/base/transforms3d.py:507: error: Argument 1 to "rotz" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | float | None"; expected "float" [arg-type]
spatialmath/base/transforms3d.py:507: error: Argument 1 to "roty" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | float | None"; expected "float" [arg-type]
spatialmath/base/transforms3d.py:507: error: Argument 1 to "rotx" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | float | None"; expected "float" [arg-type]
spatialmath/base/transforms3d.py:509: error: Argument 1 to "roty" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | float | None"; expected "float" [arg-type]
spatialmath/base/transforms3d.py:509: error: Argument 1 to "rotx" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | float | None"; expected "float" [arg-type]
spatialmath/base/transforms3d.py:509: error: Argument 1 to "rotz" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | float | None"; expected "float" [arg-type]
spatialmath/base/transforms3d.py:648: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[Any]]", variable has type "list[generic | int | float | complex | str | bytes | memoryview[int] | None]") [assignment]
spatialmath/base/transforms3d.py:650: error: Incompatible types in assignment (expression has type "float | ndarray[Any, dtype[Any]]", variable has type "list[generic | int | float | complex | str | bytes | memoryview[int] | None]") [assignment]
spatialmath/base/transforms3d.py:650: error: Argument 1 to "getunit" has incompatible type "list[generic | int | float | complex | str | bytes | memoryview[int] | None]"; expected "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" [arg-type]
spatialmath/base/transforms3d.py:652: error: Argument 1 to "rotz" has incompatible type "generic | int | float | complex | str | bytes | memoryview[int] | None"; expected "float" [arg-type]
spatialmath/base/transforms3d.py:652: error: Argument 1 to "roty" has incompatible type "generic | int | float | complex | str | bytes | memoryview[int] | None"; expected "float" [arg-type]
spatialmath/base/transforms3d.py:762: error: Incompatible return value type (got "ndarray[Any, dtype[bool_]]", expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]") [return-value]
spatialmath/base/transforms3d.py:842: error: Incompatible return value type (got "ndarray[Any, dtype[bool_]]", expected "ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]") [return-value]
spatialmath/base/transforms3d.py:1022: error: Argument 1 to "t2r" has incompatible type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]"; expected "ndarray[tuple[Literal[3, 3]], dtype[floating[Any]]]" [arg-type]
spatialmath/base/transforms3d.py:1024: error: Incompatible types in assignment (expression has type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]", variable has type "ndarray[tuple[Literal[2, 2]], dtype[floating[Any]]]") [assignment]
spatialmath/base/transforms3d.py:1095: error: Argument 1 to "t2r" has incompatible type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]"; expected "ndarray[tuple[Literal[3, 3]], dtype[floating[Any]]]" [arg-type]
spatialmath/base/transforms3d.py:1097: error: Incompatible types in assignment (expression has type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]", variable has type "ndarray[tuple[Literal[2, 2]], dtype[floating[Any]]]") [assignment]
spatialmath/base/transforms3d.py:1113: error: Incompatible types in assignment (expression has type "float", variable has type "int") [assignment]
spatialmath/base/transforms3d.py:1114: error: Incompatible types in assignment (expression has type "float", variable has type "int") [assignment]
spatialmath/base/transforms3d.py:1184: error: Argument 1 to "t2r" has incompatible type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]"; expected "ndarray[tuple[Literal[3, 3]], dtype[floating[Any]]]" [arg-type]
spatialmath/base/transforms3d.py:1186: error: Incompatible types in assignment (expression has type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]", variable has type "ndarray[tuple[Literal[2, 2]], dtype[floating[Any]]]") [assignment]
spatialmath/base/transforms3d.py:1287: error: Overloaded function signature 3 will never be matched: signature 1's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/transforms3d.py:1292: error: Overloaded function signature 4 will never be matched: signature 2's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/transforms3d.py:1343: error: Argument 1 to "tr2rt" has incompatible type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]"; expected "ndarray[tuple[Literal[3, 3]], dtype[floating[Any]]]" [arg-type]
spatialmath/base/transforms3d.py:1370: error: Incompatible types in assignment (expression has type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]", variable has type "ndarray[tuple[Literal[2, 2]], dtype[floating[Any]]]") [assignment]
spatialmath/base/transforms3d.py:1418: error: Overloaded function signatures 3 and 4 overlap with incompatible return types [overload-overlap]
spatialmath/base/transforms3d.py:1544: error: Single overload definition, multiple required [misc]
spatialmath/base/transforms3d.py:1549: error: Overloaded function implementation does not accept all possible arguments of signature 1 [misc]
spatialmath/base/transforms3d.py:1549: error: Overloaded function implementation cannot produce return type of signature 1 [misc]
spatialmath/base/transforms3d.py:2241: error: Overloaded function signature 3 will never be matched: signature 1's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/transforms3d.py:2251: error: Overloaded function signature 4 will never be matched: signature 2's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/transforms3d.py:2473: error: Overloaded function signature 2 will never be matched: signature 1's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/transforms3d.py:2540: error: Incompatible types in assignment (expression has type "Callable[[SupportsFloat | SupportsIndex], float]", variable has type overloaded function) [assignment]
spatialmath/base/transforms3d.py:2541: error: Incompatible types in assignment (expression has type "Callable[[SupportsFloat | SupportsIndex], float]", variable has type overloaded function) [assignment]
spatialmath/base/transforms3d.py:2542: error: Incompatible types in assignment (expression has type "Callable[[SupportsFloat | SupportsIndex], float]", variable has type overloaded function) [assignment]
spatialmath/base/transforms3d.py:2773: error: Incompatible return value type (got "ndarray[Any, dtype[bool_]]", expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]") [return-value]
spatialmath/base/transforms3d.py:2860: error: Argument 1 to "transl" has incompatible type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/base/transforms3d.py:2892: error: Incompatible types in assignment (expression has type "str", variable has type "float") [assignment]
spatialmath/base/transforms3d.py:2894: error: Unsupported operand types for + ("float" and "str") [operator]
spatialmath/base/transforms3d.py:2911: error: Skipping analyzing "matplotlib.pyplot": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/transforms3d.py:2911: error: Skipping analyzing "matplotlib": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/transforms3d.py:2912: error: Skipping analyzing "mpl_toolkits.mplot3d": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/base/transforms3d.py:3219: error: Incompatible types in assignment (expression has type "tuple[float, float, float]", variable has type "ndarray[Any, dtype[Any]]") [assignment]
spatialmath/twist.py:1822: error: Invalid conversion specifier in format string: unexpected } [str-format]
spatialmath/spline.py:12: error: Skipping analyzing "matplotlib.pyplot": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/spline.py:12: error: Skipping analyzing "matplotlib": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/spline.py:14: error: Skipping analyzing "scipy.interpolate": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/spline.py:15: error: Skipping analyzing "scipy.spatial.transform": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/spline.py:65: error: Argument 1 to "tranimate" has incompatible type "list[SE3]"; expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/spline.py:102: error: Incompatible types in assignment (expression has type "list[SE3]", variable has type "SE3") [assignment]
spatialmath/spline.py:204: error: Incompatible types in assignment (expression has type "float", variable has type "floating[Any]") [assignment]
spatialmath/spline.py:226: error: "None" not callable [misc]
spatialmath/spline.py:235: error: List comprehension has incompatible type List[floating[Any]]; expected List[float] [misc]
spatialmath/spline.py:235: error: "None" not callable [misc]
spatialmath/spline.py:267: error: Incompatible types in assignment (expression has type "list[SE3]", variable has type "SE3") [assignment]
spatialmath/spline.py:278: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[floating[Any]]]", variable has type "list[float] | None") [assignment]
spatialmath/spline.py:279: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[Any]]", variable has type "list[float] | None") [assignment]
spatialmath/spline.py:280: error: Argument 2 to "append" has incompatible type "None"; expected "_SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes]" [arg-type]
spatialmath/spline.py:282: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[Any]]", variable has type "list[float] | None") [assignment]
spatialmath/spline.py:283: error: Argument 1 to "append" has incompatible type "None"; expected "_SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes]" [arg-type]
spatialmath/quaternion.py:134: error: Signature of "isvalid" incompatible with supertype "BasePoseList" [override]
spatialmath/quaternion.py:134: note: Superclass:
spatialmath/quaternion.py:134: note: abstractstaticmethod[[Any, Any], Any]
spatialmath/quaternion.py:134: note: Subclass:
spatialmath/quaternion.py:134: note: @staticmethod
spatialmath/quaternion.py:134: note: def isvalid(x: list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]) -> bool
spatialmath/quaternion.py:154: error: Item "list[float]" of "list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]" has no attribute "shape" [union-attr]
spatialmath/quaternion.py:154: error: Item "tuple[float, ...]" of "list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]" has no attribute "shape" [union-attr]
spatialmath/quaternion.py:179: error: Incompatible return value type (got "ndarray[Any, dtype[Any]] | Any", expected "float") [return-value]
spatialmath/quaternion.py:181: error: Incompatible return value type (got "ndarray[Any, dtype[Any]]", expected "float") [return-value]
spatialmath/quaternion.py:206: error: Incompatible return value type (got "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]", expected "ndarray[tuple[Literal[3]], dtype[floating[Any]]]") [return-value]
spatialmath/quaternion.py:235: error: Incompatible return value type (got "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]", expected "ndarray[tuple[Literal[4]], dtype[floating[Any]]]") [return-value]
spatialmath/quaternion.py:292: error: Argument 1 to "qmatrix" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/quaternion.py:336: error: Argument 1 to "qnorm" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/quaternion.py:338: error: Incompatible return value type (got "ndarray[Any, dtype[Any]]", expected "float") [return-value]
spatialmath/quaternion.py:471: error: Incompatible return value type (got "list[Any]", expected "float") [return-value]
spatialmath/quaternion.py:476: error: Argument 1 of "__eq__" is incompatible with supertype "UserList"; supertype defines the argument type as "object" [override]
spatialmath/quaternion.py:476: note: This violates the Liskov substitution principle
spatialmath/quaternion.py:476: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/quaternion.py:476: note: It is recommended for "__eq__" to work with arbitrary objects, for example:
spatialmath/quaternion.py:476: note: def __eq__(self, other: object) -> bool:
spatialmath/quaternion.py:476: note: if not isinstance(other, Quaternion):
spatialmath/quaternion.py:476: note: return NotImplemented
spatialmath/quaternion.py:476: note: return <logic to compare two Quaternion instances>
spatialmath/quaternion.py:476: error: Argument 1 of "__eq__" is incompatible with supertype "object"; supertype defines the argument type as "object" [override]
spatialmath/quaternion.py:501: error: Incompatible return value type (got "list[Any]", expected "bool") [return-value]
spatialmath/quaternion.py:504: error: Argument 1 of "__ne__" is incompatible with supertype "object"; supertype defines the argument type as "object" [override]
spatialmath/quaternion.py:504: note: This violates the Liskov substitution principle
spatialmath/quaternion.py:504: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/quaternion.py:528: error: Incompatible return value type (got "list[Any]", expected "bool") [return-value]
spatialmath/quaternion.py:531: error: Argument 1 of "__mul__" is incompatible with supertype "UserList"; supertype defines the argument type as "int" [override]
spatialmath/quaternion.py:531: note: This violates the Liskov substitution principle
spatialmath/quaternion.py:531: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/quaternion.py:594: error: Argument 1 of "__rmul__" is incompatible with supertype "UserList"; supertype defines the argument type as "int" [override]
spatialmath/quaternion.py:594: note: This violates the Liskov substitution principle
spatialmath/quaternion.py:594: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/quaternion.py:618: error: Return type "bool" of "__imul__" incompatible with return type "Quaternion" in supertype "UserList" [override]
spatialmath/quaternion.py:618: error: Return type "bool" of "__imul__" incompatible with return type "Quaternion" in "__mul__" of supertype "UserList" [override]
spatialmath/quaternion.py:619: error: Argument 1 of "__imul__" is incompatible with supertype "UserList"; supertype defines the argument type as "int" [override]
spatialmath/quaternion.py:619: note: This violates the Liskov substitution principle
spatialmath/quaternion.py:619: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/quaternion.py:619: error: Argument 1 of "__imul__" is incompatible with "__mul__" of supertype "UserList"; supertype defines the argument type as "int" [override]
spatialmath/quaternion.py:644: error: Incompatible return value type (got "Quaternion", expected "bool") [return-value]
spatialmath/quaternion.py:698: error: Argument 1 of "__add__" is incompatible with supertype "UserList"; supertype defines the argument type as "Iterable[Any]" [override]
spatialmath/quaternion.py:698: note: This violates the Liskov substitution principle
spatialmath/quaternion.py:698: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/quaternion.py:1003: error: Argument "check" to "isrot" has incompatible type "bool | None"; expected "bool" [arg-type]
spatialmath/quaternion.py:1051: error: Signature of "isvalid" incompatible with supertype "BasePoseList" [override]
spatialmath/quaternion.py:1051: note: Superclass:
spatialmath/quaternion.py:1051: note: abstractstaticmethod[[Any, Any], Any]
spatialmath/quaternion.py:1051: note: Subclass:
spatialmath/quaternion.py:1051: note: @staticmethod
spatialmath/quaternion.py:1051: note: def isvalid(x: float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]], check: bool | None = ...) -> bool
spatialmath/quaternion.py:1071: error: Item "float" of "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" has no attribute "shape" [union-attr]
spatialmath/quaternion.py:1071: error: Item "list[float]" of "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" has no attribute "shape" [union-attr]
spatialmath/quaternion.py:1071: error: Item "tuple[float, ...]" of "float | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" has no attribute "shape" [union-attr]
spatialmath/quaternion.py:1103: error: Argument 1 to "q2r" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[4]], dtype[floating[Any]]] | list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/quaternion.py:1134: error: Argument 1 to "q2v" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/quaternion.py:1162: error: Argument 2 to "getunit" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:1164: error: Item "float" of "float | ndarray[Any, dtype[floating[Any]]]" has no attribute "__iter__" (not iterable) [union-attr]
spatialmath/quaternion.py:1192: error: Argument 2 to "getunit" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:1194: error: Item "float" of "float | ndarray[Any, dtype[floating[Any]]]" has no attribute "__iter__" (not iterable) [union-attr]
spatialmath/quaternion.py:1222: error: Argument 2 to "getunit" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:1224: error: Item "float" of "float | ndarray[Any, dtype[floating[Any]]]" has no attribute "__iter__" (not iterable) [union-attr]
spatialmath/quaternion.py:1287: error: Incompatible types in assignment (expression has type "list[float]", variable has type "tuple[list[float], ...]") [assignment]
spatialmath/quaternion.py:1289: error: Argument 1 to "eul2r" has incompatible type "tuple[list[float], ...]"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/quaternion.py:1289: error: Argument "unit" to "eul2r" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:1342: error: Incompatible types in assignment (expression has type "list[float]", variable has type "tuple[list[float], ...]") [assignment]
spatialmath/quaternion.py:1344: error: Argument 1 to "rpy2r" has incompatible type "tuple[list[float], ...]"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/quaternion.py:1344: error: Argument "unit" to "rpy2r" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:1344: error: Argument "order" to "rpy2r" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:1414: error: Incompatible types in assignment (expression has type "float | ndarray[Any, dtype[Any]]", variable has type "float") [assignment]
spatialmath/quaternion.py:1414: error: Argument 2 to "getunit" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:1553: error: Argument 1 to "qdot" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/quaternion.py:1570: error: Argument 1 to "qdotb" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/quaternion.py:1573: error: Argument 1 of "__mul__" is incompatible with supertype "Quaternion"; supertype defines the argument type as "Quaternion" [override]
spatialmath/quaternion.py:1573: note: This violates the Liskov substitution principle
spatialmath/quaternion.py:1573: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/quaternion.py:1573: error: Argument 1 of "__mul__" is incompatible with supertype "UserList"; supertype defines the argument type as "int" [override]
spatialmath/quaternion.py:1643: error: Incompatible return value type (got "Quaternion", expected "UnitQuaternion") [return-value]
spatialmath/quaternion.py:1670: error: Return type "UnitQuaternion" of "__imul__" incompatible with return type "bool" in supertype "Quaternion" [override]
spatialmath/quaternion.py:1671: error: Argument 1 of "__imul__" is incompatible with supertype "Quaternion"; supertype defines the argument type as "Quaternion" [override]
spatialmath/quaternion.py:1671: note: This violates the Liskov substitution principle
spatialmath/quaternion.py:1671: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/quaternion.py:1671: error: Argument 1 of "__imul__" is incompatible with "__mul__" of supertype "Quaternion"; supertype defines the argument type as "Quaternion" [override]
spatialmath/quaternion.py:1671: error: Argument 1 of "__imul__" is incompatible with supertype "UserList"; supertype defines the argument type as "int" [override]
spatialmath/quaternion.py:1671: error: Argument 1 of "__imul__" is incompatible with "__mul__" of supertype "UserList"; supertype defines the argument type as "int" [override]
spatialmath/quaternion.py:1695: error: Argument 1 of "__truediv__" is incompatible with supertype "Quaternion"; supertype defines the argument type as "Quaternion" [override]
spatialmath/quaternion.py:1695: note: This violates the Liskov substitution principle
spatialmath/quaternion.py:1695: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/quaternion.py:1754: error: Incompatible return value type (got "Quaternion", expected "UnitQuaternion") [return-value]
spatialmath/quaternion.py:1759: error: Argument 1 of "__eq__" is incompatible with supertype "Quaternion"; supertype defines the argument type as "Quaternion" [override]
spatialmath/quaternion.py:1759: note: This violates the Liskov substitution principle
spatialmath/quaternion.py:1759: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/quaternion.py:1759: note: It is recommended for "__eq__" to work with arbitrary objects, for example:
spatialmath/quaternion.py:1759: note: def __eq__(self, other: object) -> bool:
spatialmath/quaternion.py:1759: note: if not isinstance(other, UnitQuaternion):
spatialmath/quaternion.py:1759: note: return NotImplemented
spatialmath/quaternion.py:1759: note: return <logic to compare two UnitQuaternion instances>
spatialmath/quaternion.py:1759: error: Argument 1 of "__eq__" is incompatible with supertype "UserList"; supertype defines the argument type as "object" [override]
spatialmath/quaternion.py:1759: error: Argument 1 of "__eq__" is incompatible with supertype "object"; supertype defines the argument type as "object" [override]
spatialmath/quaternion.py:1785: error: Incompatible return value type (got "list[Any]", expected "bool") [return-value]
spatialmath/quaternion.py:1790: error: Argument 1 of "__ne__" is incompatible with supertype "Quaternion"; supertype defines the argument type as "Quaternion" [override]
spatialmath/quaternion.py:1790: note: This violates the Liskov substitution principle
spatialmath/quaternion.py:1790: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/quaternion.py:1790: error: Argument 1 of "__ne__" is incompatible with supertype "object"; supertype defines the argument type as "object" [override]
spatialmath/quaternion.py:1816: error: Incompatible return value type (got "list[Any]", expected "bool") [return-value]
spatialmath/quaternion.py:1886: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[floating[Any]]]", variable has type "float") [assignment]
spatialmath/quaternion.py:1888: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[Any]]", variable has type "float") [assignment]
spatialmath/quaternion.py:1912: error: "float" has no attribute "__iter__"; maybe "__int__"? (not iterable) [attr-defined]
spatialmath/quaternion.py:1962: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[floating[Any]]]", variable has type "float") [assignment]
spatialmath/quaternion.py:1964: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[Any]]", variable has type "float") [assignment]
spatialmath/quaternion.py:1984: error: "float" has no attribute "__iter__"; maybe "__int__"? (not iterable) [attr-defined]
spatialmath/quaternion.py:2016: error: Argument 1 to "qqmul" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/quaternion.py:2037: error: Argument 1 to "q2r" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[4]], dtype[floating[Any]]] | list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/quaternion.py:2037: error: Argument 2 to "trplot" has incompatible type "*tuple[list[Any], ...]"; expected "str" [arg-type]
spatialmath/quaternion.py:2037: error: Argument 2 to "trplot" has incompatible type "*tuple[list[Any], ...]"; expected "bool" [arg-type]
spatialmath/quaternion.py:2037: error: Argument 2 to "trplot" has incompatible type "*tuple[list[Any], ...]"; expected "tuple[str, str, str]" [arg-type]
spatialmath/quaternion.py:2037: error: Argument 2 to "trplot" has incompatible type "*tuple[list[Any], ...]"; expected "float" [arg-type]
spatialmath/quaternion.py:2037: error: Argument 2 to "trplot" has incompatible type "*tuple[list[Any], ...]"; expected "bool | None" [arg-type]
spatialmath/quaternion.py:2037: error: Argument 2 to "trplot" has incompatible type "*tuple[list[Any], ...]"; expected "bool | str | tuple[str, float] | None" [arg-type]
spatialmath/quaternion.py:2037: error: Argument 2 to "trplot" has incompatible type "*tuple[list[Any], ...]"; expected "float | None" [arg-type]
spatialmath/quaternion.py:2037: error: Argument 2 to "trplot" has incompatible type "*tuple[list[Any], ...]"; expected "tuple[float, float, float]" [arg-type]
spatialmath/quaternion.py:2063: error: Argument 1 to "tranimate" has incompatible type "list[ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]]"; expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/quaternion.py:2065: error: Argument 1 to "q2r" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[4]], dtype[floating[Any]]] | list[float] | tuple[float, float, float, float] | ndarray[tuple[Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/quaternion.py:2110: error: Argument "unit" to "tr2rpy" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:2110: error: Argument "order" to "tr2rpy" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:2112: error: Argument "unit" to "tr2rpy" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:2112: error: Argument "order" to "tr2rpy" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:2146: error: Argument "unit" to "tr2eul" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:2148: error: Argument "unit" to "tr2eul" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:2174: error: Argument "unit" to "tr2angvec" has incompatible type "str | None"; expected "str" [arg-type]
spatialmath/quaternion.py:2278: error: Incompatible return value type (got "ndarray[Any, dtype[Any]]", expected "float") [return-value]
spatialmath/pose3d.py:65: error: Overloaded function signature 3 will never be matched: signature 2's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/pose3d.py:111: error: Signature of "_identity" incompatible with supertype "BasePoseList" [override]
spatialmath/pose3d.py:111: note: Superclass:
spatialmath/pose3d.py:111: note: abstractstaticmethod[[], Any]
spatialmath/pose3d.py:111: note: Subclass:
spatialmath/pose3d.py:111: note: @staticmethod
spatialmath/pose3d.py:111: note: def _identity() -> ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]
spatialmath/pose3d.py:221: error: Incompatible return value type (got "SO3", expected "Self") [return-value]
spatialmath/pose3d.py:247: error: Name "base" is not defined [name-defined]
spatialmath/pose3d.py:348: error: Signature of "isvalid" incompatible with supertype "BasePoseList" [override]
spatialmath/pose3d.py:348: note: Superclass:
spatialmath/pose3d.py:348: note: abstractstaticmethod[[Any, Any], Any]
spatialmath/pose3d.py:348: note: Subclass:
spatialmath/pose3d.py:348: note: @staticmethod
spatialmath/pose3d.py:348: note: def isvalid(x: ndarray[Any, dtype[Any]], check: bool = ...) -> bool
spatialmath/pose3d.py:702: error: Argument 1 to "orthogonalize" has incompatible type "str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:702: error: Argument 2 to "orthogonalize" has incompatible type "str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:703: error: Argument 1 to "cross" has incompatible type "str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None"; expected "_SupportsArray[dtype[_UnknownType]] | _NestedSequence[_SupportsArray[dtype[_UnknownType]]] | _UnknownType | _NestedSequence[_UnknownType]" [arg-type]
spatialmath/pose3d.py:703: error: Argument 2 to "cross" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]"; expected "_SupportsArray[dtype[_UnknownType]] | _NestedSequence[_SupportsArray[dtype[_UnknownType]]] | _UnknownType | _NestedSequence[_UnknownType]" [arg-type]
spatialmath/pose3d.py:710: error: Argument 1 to "orthogonalize" has incompatible type "str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:710: error: Argument 2 to "orthogonalize" has incompatible type "str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:711: error: Argument 1 to "cross" has incompatible type "str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None"; expected "_SupportsArray[dtype[_UnknownType]] | _NestedSequence[_SupportsArray[dtype[_UnknownType]]] | _UnknownType | _NestedSequence[_UnknownType]" [arg-type]
spatialmath/pose3d.py:711: error: Argument 2 to "cross" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]"; expected "_SupportsArray[dtype[_UnknownType]] | _NestedSequence[_SupportsArray[dtype[_UnknownType]]] | _UnknownType | _NestedSequence[_UnknownType]" [arg-type]
spatialmath/pose3d.py:718: error: Argument 1 to "orthogonalize" has incompatible type "str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:718: error: Argument 2 to "orthogonalize" has incompatible type "str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:719: error: Argument 1 to "cross" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]"; expected "_SupportsArray[dtype[_UnknownType]] | _NestedSequence[_SupportsArray[dtype[_UnknownType]]] | _UnknownType | _NestedSequence[_UnknownType]" [arg-type]
spatialmath/pose3d.py:719: error: Argument 2 to "cross" has incompatible type "str | list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | None"; expected "_SupportsArray[dtype[_UnknownType]] | _NestedSequence[_SupportsArray[dtype[_UnknownType]]] | _UnknownType | _NestedSequence[_UnknownType]" [arg-type]
spatialmath/pose3d.py:924: error: Incompatible types in assignment (expression has type "Callable[[Any, Any], float]", variable has type "Callable[[Any, Any], floating[Any]]") [assignment]
spatialmath/pose3d.py:924: error: Incompatible return value type (got "float", expected "floating[Any]") [return-value]
spatialmath/pose3d.py:1032: error: Signature of "_identity" incompatible with supertype "BasePoseList" [override]
spatialmath/pose3d.py:1032: note: Superclass:
spatialmath/pose3d.py:1032: note: abstractstaticmethod[[], Any]
spatialmath/pose3d.py:1032: note: Subclass:
spatialmath/pose3d.py:1032: note: @staticmethod
spatialmath/pose3d.py:1032: note: def _identity() -> ndarray[Any, dtype[Any]]
spatialmath/pose3d.py:1048: error: "Callable[[SO3], ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]]" has no attribute "setter" [attr-defined]
spatialmath/pose3d.py:1053: error: No overload variant of "__setitem__" of "list" matches argument types "tuple[slice, slice]", "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]" [call-overload]
spatialmath/pose3d.py:1053: note: Possible overload variants:
spatialmath/pose3d.py:1053: note: def __setitem__(self, SupportsIndex, ndarray[Any, dtype[Any]], /) -> None
spatialmath/pose3d.py:1053: note: def __setitem__(self, slice, Iterable[ndarray[Any, dtype[Any]]], /) -> None
spatialmath/pose3d.py:1079: error: No overload variant of "__getitem__" of "list" matches argument type "tuple[slice, int]" [call-overload]
spatialmath/pose3d.py:1079: note: Possible overload variants:
spatialmath/pose3d.py:1079: note: def __getitem__(self, SupportsIndex, /) -> ndarray[Any, dtype[Any]]
spatialmath/pose3d.py:1079: note: def __getitem__(self, slice, /) -> list[ndarray[Any, dtype[Any]]]
spatialmath/pose3d.py:1088: error: No overload variant of "__setitem__" of "list" matches argument types "tuple[slice, int]", "ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [call-overload]
spatialmath/pose3d.py:1088: note: Possible overload variants:
spatialmath/pose3d.py:1088: note: def __setitem__(self, SupportsIndex, ndarray[Any, dtype[Any]], /) -> None
spatialmath/pose3d.py:1088: note: def __setitem__(self, slice, Iterable[ndarray[Any, dtype[Any]]], /) -> None
spatialmath/pose3d.py:1113: error: No overload variant of "__getitem__" of "list" matches argument type "tuple[int, int]" [call-overload]
spatialmath/pose3d.py:1113: note: Possible overload variants:
spatialmath/pose3d.py:1113: note: def __getitem__(self, SupportsIndex, /) -> ndarray[Any, dtype[Any]]
spatialmath/pose3d.py:1113: note: def __getitem__(self, slice, /) -> list[ndarray[Any, dtype[Any]]]
spatialmath/pose3d.py:1115: error: Incompatible return value type (got "ndarray[Any, dtype[Any]]", expected "float") [return-value]
spatialmath/pose3d.py:1121: error: No overload variant of "__setitem__" of "list" matches argument types "tuple[int, int]", "float" [call-overload]
spatialmath/pose3d.py:1121: note: Possible overload variants:
spatialmath/pose3d.py:1121: note: def __setitem__(self, SupportsIndex, ndarray[Any, dtype[Any]], /) -> None
spatialmath/pose3d.py:1121: note: def __setitem__(self, slice, Iterable[ndarray[Any, dtype[Any]]], /) -> None
spatialmath/pose3d.py:1146: error: No overload variant of "__getitem__" of "list" matches argument type "tuple[int, int]" [call-overload]
spatialmath/pose3d.py:1146: note: Possible overload variants:
spatialmath/pose3d.py:1146: note: def __getitem__(self, SupportsIndex, /) -> ndarray[Any, dtype[Any]]
spatialmath/pose3d.py:1146: note: def __getitem__(self, slice, /) -> list[ndarray[Any, dtype[Any]]]
spatialmath/pose3d.py:1148: error: Incompatible return value type (got "ndarray[Any, dtype[Any]]", expected "float") [return-value]
spatialmath/pose3d.py:1154: error: No overload variant of "__setitem__" of "list" matches argument types "tuple[int, int]", "float" [call-overload]
spatialmath/pose3d.py:1154: note: Possible overload variants:
spatialmath/pose3d.py:1154: note: def __setitem__(self, SupportsIndex, ndarray[Any, dtype[Any]], /) -> None
spatialmath/pose3d.py:1154: note: def __setitem__(self, slice, Iterable[ndarray[Any, dtype[Any]]], /) -> None
spatialmath/pose3d.py:1179: error: No overload variant of "__getitem__" of "list" matches argument type "tuple[int, int]" [call-overload]
spatialmath/pose3d.py:1179: note: Possible overload variants:
spatialmath/pose3d.py:1179: note: def __getitem__(self, SupportsIndex, /) -> ndarray[Any, dtype[Any]]
spatialmath/pose3d.py:1179: note: def __getitem__(self, slice, /) -> list[ndarray[Any, dtype[Any]]]
spatialmath/pose3d.py:1181: error: Incompatible return value type (got "ndarray[Any, dtype[Any]]", expected "float") [return-value]
spatialmath/pose3d.py:1187: error: No overload variant of "__setitem__" of "list" matches argument types "tuple[int, int]", "float" [call-overload]
spatialmath/pose3d.py:1187: note: Possible overload variants:
spatialmath/pose3d.py:1187: note: def __setitem__(self, SupportsIndex, ndarray[Any, dtype[Any]], /) -> None
spatialmath/pose3d.py:1187: note: def __setitem__(self, slice, Iterable[ndarray[Any, dtype[Any]]], /) -> None
spatialmath/pose3d.py:1220: error: Argument 1 to "SE3" has incompatible type "ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:1220: error: Argument 1 to "trinv" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:1224: error: Missing return statement [return]
spatialmath/pose3d.py:1291: error: Argument 1 to "tr2delta" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:1293: error: Argument 1 to "tr2delta" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:1293: error: Argument 2 to "tr2delta" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]] | None" [arg-type]
spatialmath/pose3d.py:1319: error: Incompatible return value type (got "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]", expected "ndarray[tuple[Literal[6], Literal[6]], dtype[floating[Any]]]") [return-value]
spatialmath/pose3d.py:1319: error: Argument 1 to "tr2adjoint" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:1345: error: Argument 1 to "tr2jac" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:1369: error: Signature of "isvalid" incompatible with supertype "BasePoseList" [override]
spatialmath/pose3d.py:1369: note: Superclass:
spatialmath/pose3d.py:1369: note: abstractstaticmethod[[Any, Any], Any]
spatialmath/pose3d.py:1369: note: Subclass:
spatialmath/pose3d.py:1369: note: @staticmethod
spatialmath/pose3d.py:1369: note: def isvalid(x: ndarray[Any, dtype[Any]], check: bool = ...) -> bool
spatialmath/pose3d.py:1562: error: Value of type "list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/pose3d.py:1565: error: Value of type "list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/pose3d.py:1568: error: Value of type "list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]] | None" is not indexable [index]
spatialmath/pose3d.py:1576: error: Overload does not consistently use the "@classmethod" decorator on all function signatures. [misc]
spatialmath/pose3d.py:1576: error: Signature of "Eul" incompatible with supertype "SO3" [override]
spatialmath/pose3d.py:1576: note: Superclass:
spatialmath/pose3d.py:1576: note: @overload
spatialmath/pose3d.py:1576: note: @classmethod
spatialmath/pose3d.py:1576: note: def Eul(cls, *angles: float, unit: str = ...) -> SE3
spatialmath/pose3d.py:1576: note: @overload
spatialmath/pose3d.py:1576: note: @classmethod
spatialmath/pose3d.py:1576: note: def Eul(cls, *angles: list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | ndarray[Any, dtype[Any]], unit: str = ...) -> SE3
spatialmath/pose3d.py:1576: note: Subclass:
spatialmath/pose3d.py:1576: note: @overload
spatialmath/pose3d.py:1576: note: def Eul(cls, phi: float, theta: float, psi: float, unit: str = ...) -> SE3
spatialmath/pose3d.py:1576: note: @overload
spatialmath/pose3d.py:1576: note: def Eul(cls, angles: list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]], unit: str = ...) -> SE3
spatialmath/pose3d.py:1584: error: Overloaded function implementation does not accept all possible arguments of signature 1 [misc]
spatialmath/pose3d.py:1584: error: Overloaded function implementation does not accept all possible arguments of signature 2 [misc]
spatialmath/pose3d.py:1626: error: Overload does not consistently use the "@classmethod" decorator on all function signatures. [misc]
spatialmath/pose3d.py:1626: error: Signature of "RPY" incompatible with supertype "SO3" [override]
spatialmath/pose3d.py:1626: note: Superclass:
spatialmath/pose3d.py:1626: note: @overload
spatialmath/pose3d.py:1626: note: @classmethod
spatialmath/pose3d.py:1626: note: def RPY(cls, *angles: float, unit: str = ..., order: Any = ...) -> SE3
spatialmath/pose3d.py:1626: note: @overload
spatialmath/pose3d.py:1626: note: @classmethod
spatialmath/pose3d.py:1626: note: def RPY(cls, *angles: list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]] | ndarray[Any, dtype[Any]], unit: str = ..., order: Any = ...) -> SE3
spatialmath/pose3d.py:1626: note: Subclass:
spatialmath/pose3d.py:1626: note: @overload
spatialmath/pose3d.py:1626: note: def RPY(cls, roll: float, pitch: float, yaw: float, unit: str = ...) -> SE3
spatialmath/pose3d.py:1626: note: @overload
spatialmath/pose3d.py:1626: note: def RPY(cls, angles: list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]], unit: str = ...) -> SE3
spatialmath/pose3d.py:1634: error: Overloaded function implementation does not accept all possible arguments of signature 1 [misc]
spatialmath/pose3d.py:1634: error: Overloaded function implementation does not accept all possible arguments of signature 2 [misc]
spatialmath/pose3d.py:1730: error: Name "unit" is not defined [name-defined]
spatialmath/pose3d.py:1815: error: Signature of "Exp" incompatible with supertype "SO3" [override]
spatialmath/pose3d.py:1815: note: Superclass:
spatialmath/pose3d.py:1815: note: @classmethod
spatialmath/pose3d.py:1815: note: def Exp(cls, S: ndarray[tuple[Literal[3]], dtype[floating[Any]]] | ndarray[Any, dtype[Any]], check: bool = ..., so3: bool = ...) -> SE3
spatialmath/pose3d.py:1815: note: Subclass:
spatialmath/pose3d.py:1815: note: @classmethod
spatialmath/pose3d.py:1815: note: def Exp(cls, S: ndarray[tuple[Literal[6]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]], check: bool = ...) -> SE3
spatialmath/pose3d.py:1834: error: Argument 1 to "SE3" has incompatible type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:1834: error: Argument 1 to "trexp" has incompatible type "ndarray[tuple[Literal[6]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]"; expected "ndarray[tuple[Literal[3, 3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:1854: error: Argument 1 to "SE3" has incompatible type "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:1854: error: Argument 1 to "trnorm" has incompatible type "ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]"; expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:1854: error: Argument 1 to "delta2tr" has incompatible type "list[float] | tuple[float, float, float, float, float, float] | ndarray[tuple[Literal[6]], dtype[floating[Any]]]"; expected "ndarray[tuple[Literal[6]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:1856: error: Overload does not consistently use the "@classmethod" decorator on all function signatures. [misc]
spatialmath/pose3d.py:1864: error: Overloaded function implementation does not accept all possible arguments of signature 2 [misc]
spatialmath/pose3d.py:1992: error: Incompatible types in assignment (expression has type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]", variable has type "SO3 | ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]") [assignment]
spatialmath/pose3d.py:2000: error: Argument 1 to "rt2tr" has incompatible type "SO3 | ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]"; expected "ndarray[tuple[Literal[2, 2]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:2000: error: Argument 2 to "rt2tr" has incompatible type "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[_64Bit]]] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]"; expected "list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]]" [arg-type]
spatialmath/pose3d.py:2023: error: Argument 1 of "angdist" is incompatible with supertype "SO3"; supertype defines the argument type as "SO3" [override]
spatialmath/pose3d.py:2023: note: This violates the Liskov substitution principle
spatialmath/pose3d.py:2023: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/pose3d.py:2080: error: Incompatible types in assignment (expression has type "Callable[[Any, Any], float]", variable has type "Callable[[Any, Any], floating[Any]]") [assignment]
spatialmath/pose3d.py:2080: error: Incompatible return value type (got "float", expected "floating[Any]") [return-value]
spatialmath/pose3d.py:2088: error: Incompatible return value type (got "ndarray[Any, dtype[Any]]", expected "float") [return-value]
spatialmath/geom3d.py:9: error: Skipping analyzing "matplotlib.pyplot": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/geom3d.py:9: error: Skipping analyzing "matplotlib": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/geom3d.py:223: error: Value of type "float | Any | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" is not indexable [index]
spatialmath/geom3d.py:226: error: Value of type "float | Any | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" is not indexable [index]
spatialmath/geom3d.py:227: error: Value of type "float | Any | list[float] | tuple[float, ...] | ndarray[Any, dtype[floating[Any]]]" is not indexable [index]
spatialmath/geom3d.py:328: error: Signature of "_identity" incompatible with supertype "BasePoseList" [override]
spatialmath/geom3d.py:328: note: Superclass:
spatialmath/geom3d.py:328: note: abstractstaticmethod[[], Any]
spatialmath/geom3d.py:328: note: Subclass:
spatialmath/geom3d.py:328: note: @staticmethod
spatialmath/geom3d.py:328: note: def _identity() -> ndarray[tuple[Literal[6]], dtype[floating[Any]]]
spatialmath/geom3d.py:332: error: Signature of "isvalid" incompatible with supertype "BasePoseList" [override]
spatialmath/geom3d.py:332: note: Superclass:
spatialmath/geom3d.py:332: note: abstractstaticmethod[[Any, Any], Any]
spatialmath/geom3d.py:332: note: Subclass:
spatialmath/geom3d.py:332: note: @staticmethod
spatialmath/geom3d.py:332: note: def isvalid(x: ndarray[Any, dtype[Any]], check: bool = ...) -> bool
spatialmath/geom3d.py:420: error: Argument 1 of "append" is incompatible with supertype "BasePoseList"; supertype defines the argument type as "BasePoseList" [override]
spatialmath/geom3d.py:420: note: This violates the Liskov substitution principle
spatialmath/geom3d.py:420: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/geom3d.py:436: error: Argument 1 to "append" of "BasePoseList" has incompatible type "ndarray[tuple[Literal[6]], dtype[floating[Any]]]"; expected "BasePoseList" [arg-type]
spatialmath/geom3d.py:444: error: Incompatible return value type (got "list[Any]", expected "ndarray[tuple[Literal[6]], dtype[floating[Any]]]") [return-value]
spatialmath/geom3d.py:850: error: Name "dot" is not defined [name-defined]
spatialmath/geom3d.py:988: error: Incompatible return value type (got "tuple[ndarray[Any, dtype[Any]], floating[Any]]", expected "tuple[ndarray[tuple[Literal[3]], dtype[floating[Any]]], float]") [return-value]
spatialmath/geom3d.py:1008: error: Incompatible return value type (got "None", expected "Line3") [return-value]
spatialmath/geom3d.py:1020: error: Return type "float" of "__mul__" incompatible with return type "Line3" in supertype "UserList" [override]
spatialmath/geom3d.py:1021: error: Argument 1 of "__mul__" is incompatible with supertype "UserList"; supertype defines the argument type as "int" [override]
spatialmath/geom3d.py:1021: note: This violates the Liskov substitution principle
spatialmath/geom3d.py:1021: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/geom3d.py:1049: error: Name "SE3" is not defined [name-defined]
spatialmath/geom3d.py:1123: error: Too many arguments for "tuple" [call-arg]
spatialmath/geom3d.py:1125: error: Incompatible return value type (got "None", expected "tuple[ndarray[tuple[Literal[3]], dtype[floating[Any]]], float]") [return-value]
spatialmath/geom3d.py:1155: error: Item "list[float]" of "list[float] | tuple[float, float, float, float, float, float] | ndarray[tuple[Literal[6]], dtype[floating[Any]]]" has no attribute "reshape" [union-attr]
spatialmath/geom3d.py:1155: error: Item "tuple[float, ...]" of "list[float] | tuple[float, float, float, float, float, float] | ndarray[tuple[Literal[6]], dtype[floating[Any]]]" has no attribute "reshape" [union-attr]
spatialmath/geom3d.py:1172: error: Incompatible types in assignment (expression has type "float | Any", target has type "int") [assignment]
spatialmath/geom3d.py:1173: error: Argument "p" to "PointNormal" of "Plane3" has incompatible type "list[int]"; expected "list[float] | tuple[float, float, float] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/geom3d.py:1173: note: "List" is invariant -- see https://mypy.readthedocs.io/en/stable/common_issues.html#variance
spatialmath/geom3d.py:1173: note: Consider using "Sequence" instead, which is covariant
spatialmath/geom3d.py:1177: error: Incompatible types in assignment (expression has type "ndarray[tuple[Literal[3]], dtype[floating[Any]]]", variable has type "list[int]") [assignment]
spatialmath/geom3d.py:1198: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[Any]]", variable has type "list[int]") [assignment]
spatialmath/geom3d.py:1200: error: Too many arguments for "tuple" [call-arg]
spatialmath/geom2d.py:12: error: Skipping analyzing "matplotlib.pyplot": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/geom2d.py:12: error: Skipping analyzing "matplotlib": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/geom2d.py:13: error: Skipping analyzing "matplotlib.path": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/geom2d.py:14: error: Skipping analyzing "matplotlib.patches": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/geom2d.py:15: error: Skipping analyzing "matplotlib.transforms": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/geom2d.py:636: error: Incompatible return value type (got "Polygon2", expected "Self") [return-value]
spatialmath/geom2d.py:731: error: Argument 1 to "__call__" of "_UFunc_Nin1_Nout1" has incompatible type "float | None"; expected "int | float | complex | str | bytes | generic" [arg-type]
spatialmath/geom2d.py:799: error: No overload variant of "__matmul__" of "ndarray" matches argument type "None" [operator]
spatialmath/geom2d.py:799: note: Possible overload variants:
spatialmath/geom2d.py:799: note: def __matmul__(self, _SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any]]]] | bool | int | float | _NestedSequence[bool | int | float], /) -> ndarray[Any, dtype[floating[Any]]]
spatialmath/geom2d.py:799: note: def __matmul__(self, _SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | integer[Any] | floating[Any] | complexfloating[Any, Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], /) -> ndarray[Any, dtype[complexfloating[Any, Any]]]
spatialmath/geom2d.py:799: note: def __matmul__(self, _SupportsArray[dtype[bool_ | number[Any]]] | _NestedSequence[_SupportsArray[dtype[bool_ | number[Any]]]] | bool | int | float | complex | _NestedSequence[bool | int | float | complex], /) -> ndarray[Any, dtype[number[Any]]]
spatialmath/geom2d.py:799: note: def __matmul__(self, _SupportsArray[dtype[object_]] | _NestedSequence[_SupportsArray[dtype[object_]]], /) -> Any
spatialmath/geom2d.py:799: note: Both left and right operands are unions
spatialmath/geom2d.py:925: error: Incompatible return value type (got "list[float] | tuple[float, float] | ndarray[tuple[Literal[2]], dtype[floating[Any]]]", expected "ndarray[tuple[Literal[2]], dtype[floating[Any]]]") [return-value]
spatialmath/geom2d.py:1066: error: No return value expected [return-value]
spatialmath/baseposematrix.py:26: error: Skipping analyzing "colored": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/baseposematrix.py:38: error: Skipping analyzing "ansitable": module is installed, but missing library stubs or py.typed marker [import-untyped]
spatialmath/baseposematrix.py:304: error: Missing return statement [return]
spatialmath/baseposematrix.py:327: error: No overload variant of "__getitem__" of "list" matches argument type "tuple[slice, slice]" [call-overload]
spatialmath/baseposematrix.py:327: note: Possible overload variants:
spatialmath/baseposematrix.py:327: note: def __getitem__(self, SupportsIndex, /) -> ndarray[Any, dtype[Any]]
spatialmath/baseposematrix.py:327: note: def __getitem__(self, slice, /) -> list[ndarray[Any, dtype[Any]]]
spatialmath/baseposematrix.py:329: error: Incompatible return value type (got "list[Any]", expected "tuple[float, ndarray[tuple[Literal[2]], dtype[floating[Any]]] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]]") [return-value]
spatialmath/baseposematrix.py:332: error: No overload variant of "__getitem__" of "list" matches argument type "tuple[slice, slice]" [call-overload]
spatialmath/baseposematrix.py:332: note: Possible overload variants:
spatialmath/baseposematrix.py:332: note: def __getitem__(self, SupportsIndex, /) -> ndarray[Any, dtype[Any]]
spatialmath/baseposematrix.py:332: note: def __getitem__(self, slice, /) -> list[ndarray[Any, dtype[Any]]]
spatialmath/baseposematrix.py:334: error: Incompatible return value type (got "list[Any]", expected "tuple[float, ndarray[tuple[Literal[2]], dtype[floating[Any]]] | ndarray[tuple[Literal[3]], dtype[floating[Any]]]]") [return-value]
spatialmath/baseposematrix.py:372: error: Argument "twist" to "trlog2" has incompatible type "bool | None"; expected "bool" [arg-type]
spatialmath/baseposematrix.py:374: error: List comprehension has incompatible type List[ndarray[tuple[Literal[3, 3]], dtype[floating[Any]]]]; expected List[ndarray[tuple[Literal[2]], dtype[floating[Any]]]] [misc]
spatialmath/baseposematrix.py:374: error: Argument "twist" to "trlog" has incompatible type "bool | None"; expected "bool" [arg-type]
spatialmath/baseposematrix.py:380: error: Missing return statement [return]
spatialmath/baseposematrix.py:380: error: Incompatible default for argument "s" (default has type "None", argument has type "int | float") [assignment]
spatialmath/baseposematrix.py:380: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True
spatialmath/baseposematrix.py:380: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase
spatialmath/baseposematrix.py:421: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[floating[Any]]]", variable has type "int | float") [assignment]
spatialmath/baseposematrix.py:423: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[Any]]", variable has type "int | float") [assignment]
spatialmath/baseposematrix.py:430: error: Argument 1 to "len" has incompatible type "bool"; expected "Sized" [arg-type]
spatialmath/baseposematrix.py:432: error: "bool" has no attribute "A" [attr-defined]
spatialmath/baseposematrix.py:437: error: No overload variant of "trinterp2" matches argument types "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]", "bool | None", "Any", "bool" [call-overload]
spatialmath/baseposematrix.py:437: note: Possible overload variants:
spatialmath/baseposematrix.py:437: note: def trinterp2(start: ndarray[tuple[Literal[2, 2]], dtype[floating[Any]]] | None, end: ndarray[tuple[Literal[2, 2]], dtype[floating[Any]]], s: float, shortest: bool = ...) -> ndarray[tuple[Literal[2, 2]], dtype[floating[Any]]]
spatialmath/baseposematrix.py:437: note: def trinterp2(start: ndarray[tuple[Literal[3, 3]], dtype[floating[Any]]] | None, end: ndarray[tuple[Literal[3, 3]], dtype[floating[Any]]], s: float, shortest: bool = ...) -> ndarray[tuple[Literal[3, 3]], dtype[floating[Any]]]
spatialmath/baseposematrix.py:437: error: Item "int" of "int | float" has no attribute "__iter__" (not iterable) [union-attr]
spatialmath/baseposematrix.py:437: error: Item "float" of "int | float" has no attribute "__iter__" (not iterable) [union-attr]
spatialmath/baseposematrix.py:443: error: No overload variant of "trinterp" matches argument types "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]", "bool | None", "Any", "bool" [call-overload]
spatialmath/baseposematrix.py:443: note: Possible overload variants:
spatialmath/baseposematrix.py:443: note: def trinterp(start: ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | None, end: ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]], s: float, shortest: bool = ...) -> ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]
spatialmath/baseposematrix.py:443: note: def trinterp(start: ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]] | None, end: ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]], s: float, shortest: bool = ...) -> ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]
spatialmath/baseposematrix.py:443: error: Item "int" of "int | float" has no attribute "__iter__" (not iterable) [union-attr]
spatialmath/baseposematrix.py:443: error: Item "float" of "int | float" has no attribute "__iter__" (not iterable) [union-attr]
spatialmath/baseposematrix.py:446: error: Missing return statement [return]
spatialmath/baseposematrix.py:446: error: Incompatible default for argument "s" (default has type "None", argument has type "float") [assignment]
spatialmath/baseposematrix.py:446: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True
spatialmath/baseposematrix.py:446: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase
spatialmath/baseposematrix.py:497: error: Incompatible types in assignment (expression has type "ndarray[Any, dtype[Any]]", variable has type "float") [assignment]
spatialmath/baseposematrix.py:502: error: Argument 1 to "len" has incompatible type "float"; expected "Sized" [arg-type]
spatialmath/baseposematrix.py:504: error: Name "start" is not defined [name-defined]
spatialmath/baseposematrix.py:504: error: Argument 2 to "trinterp2" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[2, 2]], dtype[floating[Any]]]" [arg-type]
spatialmath/baseposematrix.py:504: error: "float" has no attribute "__iter__"; maybe "__int__"? (not iterable) [attr-defined]
spatialmath/baseposematrix.py:507: error: Name "start" is not defined [name-defined]
spatialmath/baseposematrix.py:507: error: Value of type "float" is not indexable [index]
spatialmath/baseposematrix.py:511: error: Argument 1 to "len" has incompatible type "float"; expected "Sized" [arg-type]
spatialmath/baseposematrix.py:513: error: Argument 2 to "trinterp" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]" [arg-type]
spatialmath/baseposematrix.py:513: error: "float" has no attribute "__iter__"; maybe "__int__"? (not iterable) [attr-defined]
spatialmath/baseposematrix.py:516: error: Value of type "float" is not indexable [index]
spatialmath/baseposematrix.py:623: error: Item "list[ndarray[Any, dtype[Any]]]" of "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]" has no attribute "T" [union-attr]
spatialmath/baseposematrix.py:625: error: "BasePoseMatrix" has no attribute "inv" [attr-defined]
spatialmath/baseposematrix.py:775: error: "trprint2" gets multiple values for keyword argument "file" [misc]
spatialmath/baseposematrix.py:775: error: Argument "file" to "trprint2" has incompatible type "bool"; expected "TextIO" [arg-type]
spatialmath/baseposematrix.py:778: error: "trprint" gets multiple values for keyword argument "file" [misc]
spatialmath/baseposematrix.py:778: error: Argument "file" to "trprint" has incompatible type "bool"; expected "TextIO" [arg-type]
spatialmath/baseposematrix.py:902: error: Incompatible redefinition (redefinition with type "Callable[[Any, Any], Any]", original type "bool | None") [misc]
spatialmath/baseposematrix.py:908: error: "bool" not callable [operator]
spatialmath/baseposematrix.py:908: error: "None" not callable [misc]
spatialmath/baseposematrix.py:909: error: "None" not callable [misc]
spatialmath/baseposematrix.py:910: error: "bool" not callable [operator]
spatialmath/baseposematrix.py:910: error: "None" not callable [misc]
spatialmath/baseposematrix.py:911: error: "bool" not callable [operator]
spatialmath/baseposematrix.py:911: error: "None" not callable [misc]
spatialmath/baseposematrix.py:912: error: "bool" not callable [operator]
spatialmath/baseposematrix.py:912: error: "None" not callable [misc]
spatialmath/baseposematrix.py:1000: error: Argument 1 to "trplot2" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[2, 2]], dtype[floating[Any]]] | ndarray[tuple[Literal[3, 3]], dtype[floating[Any]]]" [arg-type]
spatialmath/baseposematrix.py:1002: error: Argument 1 to "trplot" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/baseposematrix.py:1033: error: Argument 1 to "tranimate2" has incompatible type "list[Any]"; expected "ndarray[tuple[Literal[2, 2]], dtype[floating[Any]]] | ndarray[tuple[Literal[3, 3]], dtype[floating[Any]]]" [arg-type]
spatialmath/baseposematrix.py:1035: error: No return value expected [return-value]
spatialmath/baseposematrix.py:1035: error: Argument 1 to "tranimate" has incompatible type "list[Any]"; expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/baseposematrix.py:1039: error: Argument 1 to "tranimate2" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[2, 2]], dtype[floating[Any]]] | ndarray[tuple[Literal[3, 3]], dtype[floating[Any]]]" [arg-type]
spatialmath/baseposematrix.py:1041: error: No return value expected [return-value]
spatialmath/baseposematrix.py:1041: error: Argument 1 to "tranimate" has incompatible type "list[ndarray[Any, dtype[Any]]] | ndarray[Any, dtype[Any]]"; expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]] | ndarray[tuple[Literal[4], Literal[4]], dtype[floating[Any]]]" [arg-type]
spatialmath/baseposematrix.py:1558: error: Signatures of "__isub__" and "__sub__" are incompatible [misc]
spatialmath/baseposematrix.py:1575: error: Argument 1 of "__eq__" is incompatible with supertype "UserList"; supertype defines the argument type as "object" [override]
spatialmath/baseposematrix.py:1575: note: This violates the Liskov substitution principle
spatialmath/baseposematrix.py:1575: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/baseposematrix.py:1575: note: It is recommended for "__eq__" to work with arbitrary objects, for example:
spatialmath/baseposematrix.py:1575: note: def __eq__(self, other: object) -> bool:
spatialmath/baseposematrix.py:1575: note: if not isinstance(other, BasePoseMatrix):
spatialmath/baseposematrix.py:1575: note: return NotImplemented
spatialmath/baseposematrix.py:1575: note: return <logic to compare two BasePoseMatrix instances>
spatialmath/baseposematrix.py:1575: error: Argument 1 of "__eq__" is incompatible with supertype "object"; supertype defines the argument type as "object" [override]
spatialmath/baseposelist.py:78: error: Method must have at least one argument. Did you forget the "self" argument? [misc]
spatialmath/baseposelist.py:102: error: Cannot instantiate abstract class "BasePoseList" with abstract attribute "shape" [abstract]
spatialmath/baseposelist.py:136: error: Cannot instantiate abstract class "BasePoseList" with abstract attribute "shape" [abstract]
spatialmath/baseposelist.py:137: error: Argument 1 to "range" has incompatible type "int | None"; expected "SupportsIndex" [arg-type]
spatialmath/baseposelist.py:289: error: Signature of "__getitem__" incompatible with supertype "UserList" [override]
spatialmath/baseposelist.py:289: note: Superclass:
spatialmath/baseposelist.py:289: note: @overload
spatialmath/baseposelist.py:289: note: def __getitem__(self, SupportsIndex, /) -> Any
spatialmath/baseposelist.py:289: note: @overload
spatialmath/baseposelist.py:289: note: def __getitem__(self, slice, /) -> BasePoseList
spatialmath/baseposelist.py:289: note: Subclass:
spatialmath/baseposelist.py:289: note: def __getitem__(self, int | slice, /) -> BasePoseList
spatialmath/baseposelist.py:326: error: Cannot instantiate abstract class "BasePoseList" with abstract attribute "shape" [abstract]
spatialmath/baseposelist.py:330: error: No overload variant of "BasePoseList" matches argument types "Any", "bool" [call-overload]
spatialmath/baseposelist.py:330: note: Possible overload variants:
spatialmath/baseposelist.py:330: note: def BasePoseList(self, initlist: None = ...) -> BasePoseList
spatialmath/baseposelist.py:330: note: def BasePoseList(self, initlist: Iterable[Any]) -> BasePoseList
spatialmath/baseposelist.py:335: error: Signature of "__setitem__" incompatible with supertype "UserList" [override]
spatialmath/baseposelist.py:335: note: Superclass:
spatialmath/baseposelist.py:335: note: @overload
spatialmath/baseposelist.py:335: note: def __setitem__(self, SupportsIndex, Any, /) -> None
spatialmath/baseposelist.py:335: note: @overload
spatialmath/baseposelist.py:335: note: def __setitem__(self, slice, Iterable[Any], /) -> None
spatialmath/baseposelist.py:335: note: Subclass:
spatialmath/baseposelist.py:335: note: def __setitem__(self, int, BasePoseList, /) -> None
spatialmath/baseposelist.py:335: error: Signature of "__setitem__" incompatible with supertype "MutableSequence" [override]
spatialmath/baseposelist.py:335: note: Superclass:
spatialmath/baseposelist.py:335: note: @overload
spatialmath/baseposelist.py:335: note: def __setitem__(self, int, Any, /) -> None
spatialmath/baseposelist.py:335: note: @overload
spatialmath/baseposelist.py:335: note: def __setitem__(self, slice, Iterable[Any], /) -> None
spatialmath/baseposelist.py:335: note: Subclass:
spatialmath/baseposelist.py:335: note: def __setitem__(self, int, BasePoseList, /) -> None
spatialmath/baseposelist.py:365: error: Return type "type[Exception]" of "__lt__" incompatible with return type "bool" in supertype "UserList" [override]
spatialmath/baseposelist.py:365: error: Argument 1 of "__lt__" is incompatible with supertype "UserList"; supertype defines the argument type as "list[Any] | UserList[Any]" [override]
spatialmath/baseposelist.py:365: note: This violates the Liskov substitution principle
spatialmath/baseposelist.py:365: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/baseposelist.py:368: error: Return type "type[Exception]" of "__le__" incompatible with return type "bool" in supertype "UserList" [override]
spatialmath/baseposelist.py:368: error: Argument 1 of "__le__" is incompatible with supertype "UserList"; supertype defines the argument type as "list[Any] | UserList[Any]" [override]
spatialmath/baseposelist.py:368: note: This violates the Liskov substitution principle
spatialmath/baseposelist.py:368: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/baseposelist.py:371: error: Return type "type[Exception]" of "__gt__" incompatible with return type "bool" in supertype "UserList" [override]
spatialmath/baseposelist.py:371: error: Argument 1 of "__gt__" is incompatible with supertype "UserList"; supertype defines the argument type as "list[Any] | UserList[Any]" [override]
spatialmath/baseposelist.py:371: note: This violates the Liskov substitution principle
spatialmath/baseposelist.py:371: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/baseposelist.py:374: error: Return type "type[Exception]" of "__ge__" incompatible with return type "bool" in supertype "UserList" [override]
spatialmath/baseposelist.py:374: error: Argument 1 of "__ge__" is incompatible with supertype "UserList"; supertype defines the argument type as "list[Any] | UserList[Any]" [override]
spatialmath/baseposelist.py:374: note: This violates the Liskov substitution principle
spatialmath/baseposelist.py:374: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/baseposelist.py:405: error: Argument 1 of "extend" is incompatible with supertype "UserList"; supertype defines the argument type as "Iterable[Any]" [override]
spatialmath/baseposelist.py:405: note: This violates the Liskov substitution principle
spatialmath/baseposelist.py:405: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
spatialmath/baseposelist.py:405: error: Argument 1 of "extend" is incompatible with supertype "MutableSequence"; supertype defines the argument type as "Iterable[Any]" [override]
spatialmath/baseposelist.py:495: error: Cannot instantiate abstract class "BasePoseList" with abstract attribute "shape" [abstract]
spatialmath/baseposelist.py:495: error: Argument 1 to "pop" of "UserList" has incompatible type "int | None"; expected "int" [arg-type]
spatialmath/baseposelist.py:673: error: List item 0 has incompatible type "list[int]"; expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]" [list-item]
spatialmath/baseposelist.py:673: error: List item 1 has incompatible type "list[int]"; expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]" [list-item]
spatialmath/baseposelist.py:673: error: List item 2 has incompatible type "list[int]"; expected "ndarray[tuple[Literal[3], Literal[3]], dtype[floating[Any]]]" [list-item]
spatialmath/baseposelist.py:676: error: Incompatible types in assignment (expression has type "SO2", variable has type "SO3") [assignment]
spatialmath/DualQuaternion.py:33: error: Incompatible default for argument "real" (default has type "None", argument has type "Quaternion") [assignment]
spatialmath/DualQuaternion.py:33: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True
spatialmath/DualQuaternion.py:33: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase
spatialmath/DualQuaternion.py:33: error: Incompatible default for argument "dual" (default has type "None", argument has type "Quaternion") [assignment]
spatialmath/DualQuaternion.py:70: error: Cannot determine type of "real" [has-type]
spatialmath/DualQuaternion.py:71: error: Cannot determine type of "dual" [has-type]
spatialmath/DualQuaternion.py:98: error: Cannot determine type of "real" [has-type]
spatialmath/DualQuaternion.py:98: error: Cannot determine type of "dual" [has-type]
spatialmath/DualQuaternion.py:118: error: Cannot determine type of "real" [has-type]
spatialmath/DualQuaternion.py:119: error: Cannot determine type of "real" [has-type]
spatialmath/DualQuaternion.py:119: error: Cannot determine type of "dual" [has-type]
spatialmath/DualQuaternion.py:141: error: Incompatible return value type (got "DualQuaternion", expected "Self") [return-value]
spatialmath/DualQuaternion.py:141: error: Cannot determine type of "real" [has-type]
spatialmath/DualQuaternion.py:141: error: Cannot determine type of "dual" [has-type]
spatialmath/DualQuaternion.py:160: error: Incompatible return value type (got "DualQuaternion", expected "Self") [return-value]
spatialmath/DualQuaternion.py:160: error: Cannot determine type of "real" [has-type]
spatialmath/DualQuaternion.py:160: error: Cannot determine type of "dual" [has-type]
spatialmath/DualQuaternion.py:179: error: Incompatible return value type (got "DualQuaternion", expected "Self") [return-value]
spatialmath/DualQuaternion.py:179: error: Cannot determine type of "real" [has-type]
spatialmath/DualQuaternion.py:179: error: Cannot determine type of "dual" [has-type]
spatialmath/DualQuaternion.py:200: error: Cannot determine type of "real" [has-type]
spatialmath/DualQuaternion.py:201: error: Cannot determine type of "real" [has-type]
spatialmath/DualQuaternion.py:201: error: Cannot determine type of "dual" [has-type]
spatialmath/DualQuaternion.py:206: error: No overload variant of "UnitDualQuaternion" matches argument types "Any", "Any" [call-overload]
spatialmath/DualQuaternion.py:206: note: Possible overload variant:
spatialmath/DualQuaternion.py:206: note: def __init__(self, T: SE3) -> UnitDualQuaternion
spatialmath/DualQuaternion.py:208: error: Incompatible return value type (got "DualQuaternion", expected "Self") [return-value]
spatialmath/DualQuaternion.py:235: error: Cannot determine type of "real" [has-type]
spatialmath/DualQuaternion.py:235: error: Cannot determine type of "dual" [has-type]
spatialmath/DualQuaternion.py:254: error: Cannot determine type of "real" [has-type]
spatialmath/DualQuaternion.py:254: error: Cannot determine type of "dual" [has-type]
spatialmath/DualQuaternion.py:273: error: Single overload definition, multiple required [misc]
spatialmath/DualQuaternion.py:277: error: The implementation for an overloaded function must come last [misc]
spatialmath/DualQuaternion.py:348: error: Cannot determine type of "real" [has-type]
spatialmath/DualQuaternion.py:349: error: Cannot determine type of "dual" [has-type]
spatialmath/DualQuaternion.py:349: error: Cannot determine type of "real" [has-type]
Found 533 errors in 19 files (checked 28 source files)
Note that the errors come from 2 fewer files, since it is now skipping _types_35.py and _types_311.py (I'm running 3.10).
Addressing
spatialmath/base/argcheck.py:291: error: Overloaded function signature 2 will never be matched: signature 1's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/argcheck.py:301: error: Overloaded function signature 3 will never be matched: signature 1's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/argcheck.py:301: error: Overloaded function signature 3 will never be matched: signature 2's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/argcheck.py:311: error: Overloaded function signature 4 will never be matched: signature 1's parameter type(s) are the same or broader [overload-cannot-match]
spatialmath/base/argcheck.py:311: error: Overloaded function signature 4 will never be matched: signature 2's parameter type(s) are the same or broader [overload-cannot-match]
This can be addressed with typing.Literal.
Various imports don't have types or stubs available; # type: ignore is an appropriate solution for these (until stubs are available).
I'd love to have more complete type hinting, but the endless changes in type hinting syntax is a big disincentive. From py3.10 things settle down pretty nicely and we have builtin generic type hints and the | operator instead of Union[]. Do we just wait for 3.9 to reach EOL (October this year)? There's also from __future__ import annotations which I don't fully understand.
I've not used mypy, I use PyLance in Visual Studio which is quite picky but not unhappy with the type hints that we do have. I'm wondering if mypy isn't tripping over something that's legal.