Skip to content

fix: Resolve all array.pyi errors#209

Closed
dangotbanned wants to merge 15 commits intozen-xu:mainfrom
dangotbanned:fix-array-overloads
Closed

fix: Resolve all array.pyi errors#209
dangotbanned wants to merge 15 commits intozen-xu:mainfrom
dangotbanned:fix-array-overloads

Conversation

@dangotbanned
Copy link
Copy Markdown
Contributor

  • Total of 32 pyright warnings resolved
  • Without the overlaps, there should be better performance in an IDE and fewer spurious errors when consuming the stubs
array.pyi:74:5 - error: Overload 1 for "array" overlaps overload 2 and returns an incompatible type (reportOverlappingOverload)
array.pyi:74:5 - error: Overload 1 for "array" overlaps overload 3 and returns an incompatible type (reportOverlappingOverload)
array.pyi:74:5 - error: Overload 1 for "array" overlaps overload 4 and returns an incompatible type (reportOverlappingOverload)
array.pyi:74:5 - error: Overload 1 for "array" overlaps overload 5 and returns an incompatible type (reportOverlappingOverload)
array.pyi:74:5 - error: Overload 1 for "array" overlaps overload 6 and returns an incompatible type (reportOverlappingOverload)
array.pyi:74:5 - error: Overload 1 for "array" overlaps overload 7 and returns an incompatible type (reportOverlappingOverload)
array.pyi:74:5 - error: Overload 1 for "array" overlaps overload 8 and returns an incompatible type (reportOverlappingOverload)
array.pyi:74:5 - error: Overload 1 for "array" overlaps overload 9 and returns an incompatible type (reportOverlappingOverload)
array.pyi:74:5 - error: Overload 1 for "array" overlaps overload 10 and returns an incompatible type (reportOverlappingOverload)
array.pyi:74:5 - error: Overload 1 for "array" overlaps overload 11 and returns an incompatible type (reportOverlappingOverload)
array.pyi:74:5 - error: Overload 1 for "array" overlaps overload 12 and returns an incompatible type (reportOverlappingOverload)
array.pyi:224:5 - error: Overload 16 for "array" overlaps overload 20 and returns an incompatible type (reportOverlappingOverload)
array.pyi:475:5 - error: Overload 1 for "asarray" overlaps overload 2 and returns an incompatible type (reportOverlappingOverload)
array.pyi:475:5 - error: Overload 1 for "asarray" overlaps overload 3 and returns an incompatible type (reportOverlappingOverload)
array.pyi:475:5 - error: Overload 1 for "asarray" overlaps overload 4 and returns an incompatible type (reportOverlappingOverload)
array.pyi:475:5 - error: Overload 1 for "asarray" overlaps overload 5 and returns an incompatible type (reportOverlappingOverload)
array.pyi:475:5 - error: Overload 1 for "asarray" overlaps overload 6 and returns an incompatible type (reportOverlappingOverload)
array.pyi:475:5 - error: Overload 1 for "asarray" overlaps overload 7 and returns an incompatible type (reportOverlappingOverload)
array.pyi:475:5 - error: Overload 1 for "asarray" overlaps overload 8 and returns an incompatible type (reportOverlappingOverload)
array.pyi:475:5 - error: Overload 1 for "asarray" overlaps overload 9 and returns an incompatible type (reportOverlappingOverload)
array.pyi:475:5 - error: Overload 1 for "asarray" overlaps overload 10 and returns an incompatible type (reportOverlappingOverload)
array.pyi:776:5 - error: Overload 34 for "nulls" will never be used because its parameters overlap overload 33 (reportOverlappingOverload)
array.pyi:782:5 - error: Overload 35 for "nulls" will never be used because its parameters overlap overload 33 (reportOverlappingOverload)
array.pyi:788:5 - error: Overload 36 for "nulls" will never be used because its parameters overlap overload 33 (reportOverlappingOverload)
array.pyi:794:5 - error: Overload 37 for "nulls" will never be used because its parameters overlap overload 33 (reportOverlappingOverload)
array.pyi:918:5 - error: Overload 14 for "repeat" overlaps overload 15 and returns an incompatible type (reportOverlappingOverload)
array.pyi:918:5 - error: Overload 14 for "repeat" overlaps overload 16 and returns an incompatible type (reportOverlappingOverload)
array.pyi:1512:9 - error: Method "from_arrays" overrides class "ListArray" in an incompatible manner. Override does not handle all overloads of base method (reportIncompatibleMethodOverride)
array.pyi:1624:15 - warning: TypeVar "_ValueT" appears only once in generic function signature
  Use "DataType" instead (reportInvalidTypeVarUse)
array.pyi:1631:15 - warning: TypeVar "_ValueT" appears only once in generic function signature
  Use "DataType" instead (reportInvalidTypeVarUse)
array.pyi:1638:15 - warning: TypeVar "_ValueT" appears only once in generic function signature
  Use "DataType" instead (reportInvalidTypeVarUse)
array.pyi:1642:15 - warning: TypeVar "_ValueT" appears only once in generic function signature
  Use "DataType" instead (reportInvalidTypeVarUse)

dangotbanned added a commit to narwhals-dev/narwhals that referenced this pull request Apr 30, 2025
`pa.array` fix is in (zen-xu/pyarrow-stubs#209)

```
narwhals/_arrow/series.py:442: error: No overload variant matches argument types "Int64Array", "UInt64Array"  [call-overload]
             indices_native = pc.take(indices_native, sorting_indices)
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
narwhals/_arrow/series.py:442: note: Possible overload variants:
narwhals/_arrow/series.py:442: note:     def [_ArrayT: Array[Any] | ChunkedArray[Any]] array_take(_ArrayT, list[int] | list[int | None] | Int16Array | Int32Array | Int64Array | ChunkedArray[Int16Scalar] | ChunkedArray[Int32Scalar] | ChunkedArray[Int64Scalar], /, *, boundscheck: bool = ..., options: TakeOptions | None = ..., memory_pool: MemoryPool | None = ...) -> _ArrayT narwhals/_arrow/series.py:442: note:     def array_take(Expression, list[int] | list[int | None] | Int16Array | Int32Array | Int64Array | ChunkedArray[Int16Scalar] | ChunkedArray[Int32Scalar] | ChunkedArray[Int64Scalar], /, *, boundscheck: bool = ..., options: TakeOptions | None = ..., memory_pool: MemoryPool | None = ...) -> Expression
narwhals/_arrow/series.py:443: error: No overload variant matches argument types "Any", "UInt64Array"  [call-overload]
             values_native = pc.take(values_native, sorting_indices)
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
narwhals/_arrow/series.py:443: note: Possible overload variants:
narwhals/_arrow/series.py:443: note:     def [_ArrayT: Array[Any] | ChunkedArray[Any]] array_take(_ArrayT, list[int] | list[int | None] | Int16Array | Int32Array | Int64Array | ChunkedArray[Int16Scalar] | ChunkedArray[Int32Scalar] | ChunkedArray[Int64Scalar], /, *, boundscheck: bool = ..., options: TakeOptions | None = ..., memory_pool: MemoryPool | None = ...) -> _ArrayT
narwhals/_arrow/series.py:443: note:     def array_take(Expression, list[int] | list[int | None] | Int16Array | Int32Array | Int64Array | ChunkedArray[Int16Scalar] | ChunkedArray[Int32Scalar] | ChunkedArray[Int64Scalar], /, *, boundscheck: bool = ..., options: TakeOptions | None = ..., memory_pool: MemoryPool | None = ...) -> Expression
```
@zen-xu
Copy link
Copy Markdown
Owner

zen-xu commented May 14, 2025

I think #233 has resolved this problem

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants