Skip to content

fix(typing): un-ignore ty no-matching-overload rule and fix Tag.find attrs argument #2113

fix(typing): un-ignore ty no-matching-overload rule and fix Tag.find attrs argument

fix(typing): un-ignore ty no-matching-overload rule and fix Tag.find attrs argument #2113

Triggered via pull request October 18, 2026 20:08
Status Success
Total duration 16s
Artifacts –

ty.yml

on: pull_request
Fit to window
Zoom out
Zoom in

Annotations

10 errors, 6 warnings, and 1 notice
ty (no-matching-overload): neural_network/back_propagation_neural_network.py#L91
neural_network/back_propagation_neural_network.py:91:25: no-matching-overload: No overload of function `dot` matches arguments .venv/lib/python3.15/site-packages/numpy/_core/multiarray.pyi:719:1: info: First overload defined here: First overload defined here info: Possible overloads for function `dot`: info: (a: _ArrayJustND[_DotScalar | object_], b: _ArrayLike[_DotScalar | object_], out: None = None) -> Any info: (a: _ArrayLike[_DotScalar | object_], b: _ArrayJustND[_DotScalar | object_], out: None = None) -> Any info: [ScalarT](a: _ToArray1D[ScalarT], b: _ToArray1D[ScalarT], out: None = None) -> ScalarT info: (a: _Array1D[object_], b: _Array1D[object_] | _ToArray1D[_DotScalar], out: None = None) -> Any info: (a: _ToArray1D[_DotScalar], b: _Array1D[object_], out: None = None) -> Any info: (a: Sequence[builtins.bool], b: Sequence[builtins.bool], out: None = None) -> numpy.bool[builtins.bool] info: (a: list[int], b: Sequence[int], out: None = None) -> signedinteger[_NBitIntP] info: (a: Sequence[int], b: list[int], out: None = None) -> signedinteger[_NBitIntP] info: (a: list[float], b: Sequence[float], out: None = None) -> float64 info: (a: Sequence[float], b: list[float], out: None = None) -> float64 info: (a: list[complex], b: Sequence[complex], out: None = None) -> complex128 info: (a: Sequence[complex], b: list[complex], out: None = None) -> complex128 info: [ScalarT](a: _ToArray1D[ScalarT], b: _ToArray2D[ScalarT], out: None = None) -> _Array1D[ScalarT] info: [ScalarT](a: _ToArray2D[ScalarT], b: _ToArray1D[ScalarT], out: None = None) -> _Array1D[ScalarT] info: [ScalarT](a: _ToArray2D[ScalarT], b: _ToArray2D[ScalarT], out: None = None) -> _Array2D[ScalarT] info: [ScalarT](a: _ToArray2D[ScalarT], b: _ArrayLike[ScalarT], out: None = None) -> NDArray[ScalarT] info: [ScalarT](a: _ArrayLike[ScalarT], b: _ToArray2D[ScalarT], out: None = None) -> NDArray[ScalarT] info: (a: ArrayLike, b: ArrayLike, out: None = None) -> Any info: [OutT](a: ArrayLike, b: ArrayLike, out: OutT) -> OutT
ty (no-matching-overload): neural_network/back_propagation_neural_network.py#L77
neural_network/back_propagation_neural_network.py:77:30: no-matching-overload: No overload of function `dot` matches arguments .venv/lib/python3.15/site-packages/numpy/_core/multiarray.pyi:719:1: info: First overload defined here: First overload defined here info: Possible overloads for function `dot`: info: (a: _ArrayJustND[_DotScalar | object_], b: _ArrayLike[_DotScalar | object_], out: None = None) -> Any info: (a: _ArrayLike[_DotScalar | object_], b: _ArrayJustND[_DotScalar | object_], out: None = None) -> Any info: [ScalarT](a: _ToArray1D[ScalarT], b: _ToArray1D[ScalarT], out: None = None) -> ScalarT info: (a: _Array1D[object_], b: _Array1D[object_] | _ToArray1D[_DotScalar], out: None = None) -> Any info: (a: _ToArray1D[_DotScalar], b: _Array1D[object_], out: None = None) -> Any info: (a: Sequence[builtins.bool], b: Sequence[builtins.bool], out: None = None) -> numpy.bool[builtins.bool] info: (a: list[int], b: Sequence[int], out: None = None) -> signedinteger[_NBitIntP] info: (a: Sequence[int], b: list[int], out: None = None) -> signedinteger[_NBitIntP] info: (a: list[float], b: Sequence[float], out: None = None) -> float64 info: (a: Sequence[float], b: list[float], out: None = None) -> float64 info: (a: list[complex], b: Sequence[complex], out: None = None) -> complex128 info: (a: Sequence[complex], b: list[complex], out: None = None) -> complex128 info: [ScalarT](a: _ToArray1D[ScalarT], b: _ToArray2D[ScalarT], out: None = None) -> _Array1D[ScalarT] info: [ScalarT](a: _ToArray2D[ScalarT], b: _ToArray1D[ScalarT], out: None = None) -> _Array1D[ScalarT] info: [ScalarT](a: _ToArray2D[ScalarT], b: _ToArray2D[ScalarT], out: None = None) -> _Array2D[ScalarT] info: [ScalarT](a: _ToArray2D[ScalarT], b: _ArrayLike[ScalarT], out: None = None) -> NDArray[ScalarT] info: [ScalarT](a: _ArrayLike[ScalarT], b: _ToArray2D[ScalarT], out: None = None) -> NDArray[ScalarT] info: (a: ArrayLike, b: ArrayLike, out: None = None) -> Any info: [OutT](a: ArrayLike, b: ArrayLike, out: OutT) -> OutT
ty (unresolved-import): maths/test_factorial.py#L10
maths/test_factorial.py:10:6: unresolved-import: Cannot resolve imported module `maths.factorial` info: Searched in the following paths during module resolution: info: 1. vendored://stdlib (stdlib typeshed stubs vendored by ty) info: 2. /home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpEwlv5C/lib/python3.15/site-packages (site-packages) info: 3. /home/runner/work/Python/Python/.venv/lib/python3.15/site-packages (site-packages) info: make sure your Python environment is properly configured: https://docs.astral.sh/ty/modules/#python-environment
ty (unresolved-import): maths/test_factorial.py#L8
maths/test_factorial.py:8:8: unresolved-import: Cannot resolve imported module `pytest` info: Searched in the following paths during module resolution: info: 1. vendored://stdlib (stdlib typeshed stubs vendored by ty) info: 2. /home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpEwlv5C/lib/python3.15/site-packages (site-packages) info: 3. /home/runner/work/Python/Python/.venv/lib/python3.15/site-packages (site-packages) info: make sure your Python environment is properly configured: https://docs.astral.sh/ty/modules/#python-environment
ty (unresolved-import): maths/test_abs.py#L10
maths/test_abs.py:10:6: unresolved-import: Cannot resolve imported module `maths.abs` info: Searched in the following paths during module resolution: info: 1. vendored://stdlib (stdlib typeshed stubs vendored by ty) info: 2. /home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpEwlv5C/lib/python3.15/site-packages (site-packages) info: 3. /home/runner/work/Python/Python/.venv/lib/python3.15/site-packages (site-packages) info: make sure your Python environment is properly configured: https://docs.astral.sh/ty/modules/#python-environment
ty (unresolved-import): maths/test_abs.py#L8
maths/test_abs.py:8:8: unresolved-import: Cannot resolve imported module `pytest` info: Searched in the following paths during module resolution: info: 1. vendored://stdlib (stdlib typeshed stubs vendored by ty) info: 2. /home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpEwlv5C/lib/python3.15/site-packages (site-packages) info: 3. /home/runner/work/Python/Python/.venv/lib/python3.15/site-packages (site-packages) info: make sure your Python environment is properly configured: https://docs.astral.sh/ty/modules/#python-environment
ty (invalid-type-arguments): data_structures/heap/heap.py#L253
data_structures/heap/heap.py:253:20: invalid-type-arguments: Type `int` is not assignable to upper bound `Comparable` of type variable `T@Heap` data_structures/heap/heap.py:14:12: Type variable defined here info: type `int` is not assignable to protocol `Comparable` info: └── protocol member `__gt__` is incompatible info: └── parameter `other` has an incompatible type: `object` is not assignable to `int`
ty (invalid-assignment): computer_vision/mean_threshold.py#L24
computer_vision/mean_threshold.py:24:13: invalid-assignment: Cannot assign to a subscript on an object of type `None` info: The full type of the subscripted object is `PixelAccess | None` info: `None` does not have a `__setitem__` method.
ty (no-matching-overload): ciphers/polybius.py#L34
ciphers/polybius.py:34:26: no-matching-overload: No overload of function `where` matches arguments .venv/lib/python3.15/site-packages/numpy/_core/multiarray.pyi:769:1: info: First overload defined here: First overload defined here info: Possible overloads for function `where`: info: (condition: _ArrayJustND[Any], x: None = None, y: None = None, /) -> tuple[_Array1D[signedinteger[_NBitIntP]], ...] info: (condition: _ToArray1D[Any], x: None = None, y: None = None, /) -> tuple[_Array1D[signedinteger[_NBitIntP]]] info: (condition: _ToArray2D[Any], x: None = None, y: None = None, /) -> tuple[_Array1D[signedinteger[_NBitIntP]], _Array1D[signedinteger[_NBitIntP]]] info: (condition: _ToArray3D[Any], x: None = None, y: None = None, /) -> tuple[_Array1D[signedinteger[_NBitIntP]], _Array1D[signedinteger[_NBitIntP]], _Array1D[signedinteger[_NBitIntP]]] info: (condition: _ArrayLike[Any], x: None = None, y: None = None, /) -> tuple[_Array1D[signedinteger[_NBitIntP]], ...] info: (condition: ArrayLike, x: ArrayLike, y: ArrayLike, /) -> NDArray[Any]
ty (no-matching-overload): ciphers/bifid.py#L36
ciphers/bifid.py:36:26: no-matching-overload: No overload of function `where` matches arguments .venv/lib/python3.15/site-packages/numpy/_core/multiarray.pyi:769:1: info: First overload defined here: First overload defined here info: Possible overloads for function `where`: info: (condition: _ArrayJustND[Any], x: None = None, y: None = None, /) -> tuple[_Array1D[signedinteger[_NBitIntP]], ...] info: (condition: _ToArray1D[Any], x: None = None, y: None = None, /) -> tuple[_Array1D[signedinteger[_NBitIntP]]] info: (condition: _ToArray2D[Any], x: None = None, y: None = None, /) -> tuple[_Array1D[signedinteger[_NBitIntP]], _Array1D[signedinteger[_NBitIntP]]] info: (condition: _ToArray3D[Any], x: None = None, y: None = None, /) -> tuple[_Array1D[signedinteger[_NBitIntP]], _Array1D[signedinteger[_NBitIntP]], _Array1D[signedinteger[_NBitIntP]]] info: (condition: _ArrayLike[Any], x: None = None, y: None = None, /) -> tuple[_Array1D[signedinteger[_NBitIntP]], ...] info: (condition: ArrayLike, x: ArrayLike, y: ArrayLike, /) -> NDArray[Any]
ty (redundant-condition): web_programming/current_weather.py#L33
web_programming/current_weather.py:33:8: redundant-condition: Object of type `Literal[""]` is always falsy web_programming/current_weather.py:34:9: This statement is unreachable
ty (redundant-condition): web_programming/current_weather.py#L27
web_programming/current_weather.py:27:8: redundant-condition: Object of type `Literal[""]` is always falsy web_programming/current_weather.py:28:9: This statement is unreachable
ty (redundant-condition): matrix/matrix_operation.py#L44
matrix/matrix_operation.py:44:13: redundant-condition: Expression `_verify_matrix_sizes(matrix_a, matrix_b)` is always truthy (has type `tuple[tuple[int, int], tuple[int, int]]`)
ty (redundant-condition): machine_learning/dimensionality_reduction.py#L146
machine_learning/dimensionality_reduction.py:146:8: redundant-condition: Method `ndarray.any` is always truthy: Did you mean to call this method? machine_learning/dimensionality_reduction.py:158:5: This following branch is unreachable help: Replace with `features.any(...)`
ty (deprecated): graphs/multi_heuristic_astar.py#L82
graphs/multi_heuristic_astar.py:82:20: deprecated: The class `chararray` is deprecated: The chararray class is deprecated and will be removed in a future release. Use an ndarray with a string or bytes dtype instead.
ty (truthiness-test-of-iterable): divide_and_conquer/convex_hull.py#L120
divide_and_conquer/convex_hull.py:120:8: truthiness-test-of-iterable: Variable `list_of_tuples` might be truthy even if its length is 0 (has type `list[Point] | Iterable[list[float]]`) divide_and_conquer/convex_hull.py:89:21: Inferred as `list[Point] | Iterable[list[float]]` due to this annotation info: `list[Point] | Iterable[list[float]]` objects can be generators, and generators are truthy even when empty help: Test the length of the iterable instead of its truthiness
ty
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"