Skip to content

CI: unpin numpy for CI / Checks github action #36092

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 140 commits into from
Mar 10, 2021
Merged
Show file tree
Hide file tree
Changes from 43 commits
Commits
Show all changes
140 commits
Select commit Hold shift + click to select a range
de92c4e
CI: static analysis with np-dev
simonjayhawkins Sep 3, 2020
3ff2a13
empty
simonjayhawkins Sep 3, 2020
da38df6
change branch for ci
simonjayhawkins Sep 3, 2020
960fc4f
upgrade flag to pip
simonjayhawkins Sep 3, 2020
93e1499
continue-on-error
simonjayhawkins Sep 3, 2020
70f0469
Revert "change branch for ci"
simonjayhawkins Sep 3, 2020
c7e24a4
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Sep 6, 2020
ad3b8fd
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Oct 2, 2020
f2ae4db
wip
simonjayhawkins Oct 3, 2020
9c332b7
wip
simonjayhawkins Oct 3, 2020
b2e4d50
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Oct 3, 2020
a0bae1b
pep fix
simonjayhawkins Oct 3, 2020
b74ea13
new black
simonjayhawkins Oct 3, 2020
911390e
wip
simonjayhawkins Oct 3, 2020
02588b3
black changes
simonjayhawkins Oct 3, 2020
04ab966
wip
simonjayhawkins Oct 3, 2020
0fac404
ignore errors in pandas/tests/*
simonjayhawkins Oct 3, 2020
7dc3f7b
wip
simonjayhawkins Oct 3, 2020
003bc91
black (urgh.. deletes line breaks between comments)
simonjayhawkins Oct 3, 2020
e449a10
wip
simonjayhawkins Oct 3, 2020
0539f9f
wip
simonjayhawkins Oct 3, 2020
6113fdd
wip
simonjayhawkins Oct 3, 2020
fe770ba
wip
simonjayhawkins Oct 3, 2020
6387978
mypy green locally
simonjayhawkins Oct 3, 2020
5817ba2
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Oct 6, 2020
8423bf4
updates
simonjayhawkins Oct 6, 2020
4766533
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Oct 7, 2020
bd8594f
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Oct 15, 2020
aa3e89a
numpy-1.20.0.dev0+07a54df
simonjayhawkins Oct 17, 2020
578c30a
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Oct 17, 2020
75a2d35
1.20.0.dev0+7b0a764
simonjayhawkins Oct 24, 2020
2cb4290
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Oct 24, 2020
87b4e2a
update ignores
simonjayhawkins Oct 24, 2020
e7d5c08
numpy-1.20.0.dev0+43683b3
simonjayhawkins Oct 31, 2020
eed821d
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Oct 31, 2020
22020e0
update ignores
simonjayhawkins Oct 31, 2020
25a5573
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Nov 1, 2020
f766989
update ignores
simonjayhawkins Nov 1, 2020
28e7446
numpy-1.20.0.dev0+5f071c6
simonjayhawkins Nov 8, 2020
d597f89
update setup.cfg
simonjayhawkins Nov 8, 2020
5192865
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Nov 8, 2020
ae8a491
update ignores
simonjayhawkins Nov 8, 2020
f4d4c13
fix mangled docstrings
simonjayhawkins Nov 8, 2020
3b5ce27
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Nov 9, 2020
d2514c6
add more ignores for previously unchecked defs
simonjayhawkins Nov 9, 2020
5d55636
lint fixup
simonjayhawkins Nov 9, 2020
1473ae9
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Nov 10, 2020
7ee319f
merge upstream/master
simonjayhawkins Nov 18, 2020
4445f6d
add ignores for newly reported mypy errors
simonjayhawkins Nov 18, 2020
5d508ab
lint fixup
simonjayhawkins Nov 18, 2020
3b75658
replace deprecated ::add-path::
simonjayhawkins Nov 18, 2020
7b1d8df
numpy-1.20.0rc1
simonjayhawkins Dec 10, 2020
582ecd3
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Dec 11, 2020
0319d75
add ignores
simonjayhawkins Dec 11, 2020
494b9f2
tidy diff
simonjayhawkins Dec 11, 2020
e28c09f
update ci to numpy 1.20.0rc2
simonjayhawkins Jan 6, 2021
ca3634a
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Jan 6, 2021
1361e7f
wip
simonjayhawkins Jan 6, 2021
86a5dcd
update comments
simonjayhawkins Jan 7, 2021
133095d
remove added workflow
simonjayhawkins Jan 7, 2021
fdba338
lint
simonjayhawkins Jan 7, 2021
155a150
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Jan 8, 2021
0bf1790
errors from NpDtype
simonjayhawkins Jan 8, 2021
0e7f160
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Jan 9, 2021
f95dda6
update ignores
simonjayhawkins Jan 9, 2021
ffb91f3
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Jan 10, 2021
be7b8b9
update ignores
simonjayhawkins Jan 10, 2021
3bce00c
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Jan 21, 2021
51c7570
update ignores
simonjayhawkins Jan 21, 2021
37001d5
update setup.cfg
simonjayhawkins Jan 21, 2021
9a0dab2
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Feb 1, 2021
3da2a67
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Feb 1, 2021
7947154
update error messages
simonjayhawkins Feb 1, 2021
a309f4f
update setup.cfg
simonjayhawkins Feb 1, 2021
6df88fd
update environment.yml
simonjayhawkins Feb 1, 2021
c031007
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Feb 2, 2021
6abff15
update error messages
simonjayhawkins Feb 2, 2021
49319a8
update for numpy 1.20.1
simonjayhawkins Feb 13, 2021
13e6298
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Feb 13, 2021
3a87d8c
update ignores
simonjayhawkins Feb 13, 2021
be0f170
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Feb 16, 2021
ed5b61a
update ignores
simonjayhawkins Feb 16, 2021
8736f6c
tidy comments (wip)
simonjayhawkins Feb 16, 2021
765687e
tidy comments (wip)
simonjayhawkins Feb 16, 2021
d9ca512
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Feb 16, 2021
2f8a14f
tidy comments
simonjayhawkins Feb 16, 2021
8472d94
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Feb 16, 2021
21c143b
update comments
simonjayhawkins Feb 16, 2021
4068a38
IsInLongSeriesValuesDominate benchmark
simonjayhawkins Feb 16, 2021
d078f6e
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Feb 16, 2021
50bf741
ignore new Styler errors
simonjayhawkins Feb 16, 2021
05896e9
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Feb 18, 2021
a654494
update comments
simonjayhawkins Feb 18, 2021
cbd382d
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Feb 19, 2021
edb5e46
update comments
simonjayhawkins Feb 19, 2021
768887a
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Feb 21, 2021
32d877f
update ignores
simonjayhawkins Feb 21, 2021
810a937
re-apply benchmark fix
simonjayhawkins Feb 21, 2021
93ae757
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Feb 23, 2021
7f38d0b
fix failing test
simonjayhawkins Feb 23, 2021
be52c33
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Feb 24, 2021
466a8b0
update comments
simonjayhawkins Feb 24, 2021
f45efe6
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Feb 26, 2021
1bb6eff
update comments
simonjayhawkins Feb 26, 2021
28eabd5
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Feb 26, 2021
d9d079c
update comments
simonjayhawkins Feb 26, 2021
05d604a
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Feb 26, 2021
c3f84e3
update comments
simonjayhawkins Feb 26, 2021
814ba4d
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Feb 27, 2021
be6f667
update comments
simonjayhawkins Feb 27, 2021
7834a8a
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Feb 28, 2021
763f0e9
update comments
simonjayhawkins Feb 28, 2021
4b1b3b0
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Mar 1, 2021
fb495b6
update comments
simonjayhawkins Mar 1, 2021
decbbd6
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Mar 1, 2021
dd38e44
update comments
simonjayhawkins Mar 1, 2021
a9cf1a3
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Mar 2, 2021
9be8b00
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Mar 3, 2021
09f07f1
fix merge error
simonjayhawkins Mar 3, 2021
e938438
update comments
simonjayhawkins Mar 3, 2021
9381f84
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Mar 4, 2021
50f64fa
update comments
simonjayhawkins Mar 4, 2021
bbeca86
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Mar 5, 2021
478aeee
update comments
simonjayhawkins Mar 5, 2021
f4b92eb
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Mar 5, 2021
567d1d0
update comments
simonjayhawkins Mar 5, 2021
f769626
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Mar 6, 2021
6521d91
update comments
simonjayhawkins Mar 6, 2021
ec2d0ad
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Mar 6, 2021
9184c99
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Mar 8, 2021
57bb406
update comments
simonjayhawkins Mar 8, 2021
f212c3d
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Mar 8, 2021
2cfd5a7
update comments
simonjayhawkins Mar 8, 2021
6ec2f56
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Mar 8, 2021
d596b03
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Mar 9, 2021
1c51c74
update comments
simonjayhawkins Mar 9, 2021
f848225
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Mar 10, 2021
81966ec
update comments
simonjayhawkins Mar 10, 2021
e68c42d
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Mar 10, 2021
a4c4aa3
Merge remote-tracking branch 'upstream/master' into numpy-types
simonjayhawkins Mar 10, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -136,3 +136,41 @@ jobs:
- name: Upload dev docs
run: rsync -az --delete doc/build/html/ docs@${{ secrets.server_ip }}:/usr/share/nginx/pandas/pandas-docs/dev
if: github.event_name == 'push'

numpy-types:
name: Numpy Type Annotations
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: Update for build environment
run: |
sudo apt-get update
sudo apt-get install -y build-essential
sudo apt-get clean
- name: Setting conda path
run: echo ::add-path::$CONDA/bin
- name: Update conda
run: |
conda config --set quiet true --set always_yes true
conda update -n base -c defaults conda
conda list
- name: Checkout pandas
uses: actions/checkout@v2
- name: Update conda environment
run: |
conda env update -n pandas-dev --file=environment.yml
conda list
- name: Update numpy using wheel from nightly
run: |
source activate pandas-dev
pip install -U --extra-index-url https://pypi.anaconda.org/scipy-wheels-nightly/simple --pre numpy
conda list
- name: Remove pandas
run: |
source activate pandas-dev
conda uninstall -y --force pandas || true
conda list
- name: Typing validation
run: |
source activate pandas-dev
ci/code_checks.sh typing
16 changes: 13 additions & 3 deletions pandas/_testing.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import zipfile

import numpy as np

from numpy.random import rand, randn

from pandas._config.localization import ( # noqa:F401
Expand Down Expand Up @@ -103,9 +104,18 @@
+ STRING_DTYPES
+ DATETIME64_DTYPES
+ TIMEDELTA64_DTYPES
+ BOOL_DTYPES
+ OBJECT_DTYPES
+ BYTES_DTYPES
# error: Unsupported operand types for + ("List[Union[ExtensionDtype, str,
# dtype, Type[str], Type[float], Type[int], Type[complex], Type[bool],
# Type[object]]]" and "List[object]")
+ BOOL_DTYPES # type: ignore[operator]
# error: Unsupported operand types for + ("List[Union[ExtensionDtype, str,
# dtype, Type[str], Type[float], Type[int], Type[complex], Type[bool],
# Type[object]]]" and "List[object]")
+ OBJECT_DTYPES # type: ignore[operator]
# error: Unsupported operand types for + ("List[Union[ExtensionDtype, str,
# dtype, Type[str], Type[float], Type[int], Type[complex], Type[bool],
# Type[object]]]" and "List[object]")
+ BYTES_DTYPES # type: ignore[operator]
)


Expand Down
8 changes: 6 additions & 2 deletions pandas/compat/numpy/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@
import numpy as np

# numpy versioning
_np_version = np.__version__
# pandas\compat\numpy\__init__.py:9: error: Module has no attribute
# "__version__"; maybe "version"? [attr-defined]
_np_version = np.__version__ # type: ignore[attr-defined]
_nlv = LooseVersion(_np_version)
np_version_under1p17 = _nlv < LooseVersion("1.17")
np_version_under1p18 = _nlv < LooseVersion("1.18")
Expand Down Expand Up @@ -43,7 +45,9 @@ def np_datetime64_compat(s, *args, **kwargs):
warning, when need to pass '2015-01-01 09:00:00'
"""
s = tz_replacer(s)
return np.datetime64(s, *args, **kwargs)
# error: No overload variant of "datetime64" matches argument types "Any",
# "Tuple[Any, ...]", "Dict[str, Any]"
return np.datetime64(s, *args, **kwargs) # type: ignore[call-overload]


def np_array_datetime64_compat(arr, *args, **kwargs):
Expand Down
4 changes: 3 additions & 1 deletion pandas/compat/numpy/function.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@
from distutils.version import LooseVersion
from typing import Any, Dict, Optional, Union

from numpy import __version__, ndarray
# pandas\compat\numpy\function.py:23: error: Module 'numpy' has no attribute
# '__version__'; maybe "version"? [attr-defined]
from numpy import __version__, ndarray # type: ignore[attr-defined]

from pandas._libs.lib import is_bool, is_integer
from pandas.errors import UnsupportedFunctionCall
Expand Down
4 changes: 3 additions & 1 deletion pandas/core/aggregation.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,9 @@ def normalize_keyword_aggregation(kwargs: dict) -> Tuple[dict, List[str], List[i

# get the new index of columns by comparison
col_idx_order = Index(uniquified_aggspec).get_indexer(uniquified_order)
return aggspec, columns, col_idx_order
# error: Incompatible return value type (got "Tuple[defaultdict[Any, Any],
# Any, ndarray]", expected "Tuple[Dict[Any, Any], List[str], List[int]]")
return aggspec, columns, col_idx_order # type: ignore[return-value]


def _make_unique_kwarg_list(
Expand Down
110 changes: 95 additions & 15 deletions pandas/core/algorithms.py
Original file line number Diff line number Diff line change
Expand Up @@ -151,14 +151,20 @@ def _ensure_data(
# TODO(EA2D): special case not needed with 2D EAs
asi8 = values.view("i8")
dtype = values.dtype
return asi8, dtype
# error: Incompatible return value type (got "Tuple[Any,
# Union[dtype, ExtensionDtype, None]]", expected
# "Tuple[ndarray, Union[dtype, ExtensionDtype]]")
return asi8, dtype # type: ignore[return-value]

from pandas import DatetimeIndex

values = DatetimeIndex(values)
dtype = values.dtype

return values.asi8, dtype
# error: Incompatible return value type (got "Tuple[Any, Union[dtype,
# ExtensionDtype, None]]", expected "Tuple[ndarray, Union[dtype,
# ExtensionDtype]]")
return values.asi8, dtype # type: ignore[return-value]

elif is_categorical_dtype(vals_dtype) and (
is_categorical_dtype(dtype) or dtype is None
Expand Down Expand Up @@ -194,20 +200,37 @@ def _reconstruct_data(
ExtensionArray or np.ndarray
"""
if is_extension_array_dtype(dtype):
values = dtype.construct_array_type()._from_sequence(values)
# error: Item "dtype" of "Union[dtype, ExtensionDtype]" has no
# attribute "construct_array_type"
tmp = dtype.construct_array_type() # type: ignore[union-attr]
values = tmp._from_sequence(values)
elif is_bool_dtype(dtype):
values = values.astype(dtype, copy=False)
# error: Argument 1 to "astype" of "_ArrayOrScalarCommon" has
# incompatible type "Union[dtype, ExtensionDtype]"; expected
# "Union[dtype, None, type, _SupportsDtype, str, Tuple[Any, int],
# Tuple[Any, Union[int, Sequence[int]]], List[Any], _DtypeDict,
# Tuple[Any, Any]]"
values = values.astype(dtype, copy=False) # type: ignore[arg-type]

# we only support object dtypes bool Index
if isinstance(original, ABCIndexClass):
values = values.astype(object, copy=False)
elif dtype is not None:
if is_datetime64_dtype(dtype):
dtype = "datetime64[ns]"
# error: Incompatible types in assignment (expression has type
# "str", variable has type "Union[dtype, ExtensionDtype]")
dtype = "datetime64[ns]" # type: ignore[assignment]
elif is_timedelta64_dtype(dtype):
dtype = "timedelta64[ns]"
# error: Incompatible types in assignment (expression has type
# "str", variable has type "Union[dtype, ExtensionDtype]")
dtype = "timedelta64[ns]" # type: ignore[assignment]

values = values.astype(dtype, copy=False)
# error: Argument 1 to "astype" of "_ArrayOrScalarCommon" has
# incompatible type "Union[dtype, ExtensionDtype]"; expected
# "Union[dtype, None, type, _SupportsDtype, str, Tuple[Any, int],
# Tuple[Any, Union[int, Sequence[int]]], List[Any], _DtypeDict,
# Tuple[Any, Any]]"
values = values.astype(dtype, copy=False) # type: ignore[arg-type]

return values

Expand Down Expand Up @@ -421,17 +444,60 @@ def isin(comps: AnyArrayLike, values: AnyArrayLike) -> np.ndarray:
)

if not isinstance(values, (ABCIndex, ABCSeries, ABCExtensionArray, np.ndarray)):
values = construct_1d_object_array_from_listlike(list(values))
# pandas\core\algorithms.py:424: error: Incompatible types in
# assignment (expression has type "ndarray", variable has type
# "ExtensionArray") [assignment]

# pandas\core\algorithms.py:424: error: Incompatible types in
# assignment (expression has type "ndarray", variable has type "Index")
# [assignment]

# pandas\core\algorithms.py:424: error: Incompatible types in
# assignment (expression has type "ndarray", variable has type
# "Series") [assignment]
values = construct_1d_object_array_from_listlike( # type: ignore[assignment]
list(values)
)
# TODO: could use ensure_arraylike here

comps = extract_array(comps, extract_numpy=True)
# pandas\core\algorithms.py:457: error: Incompatible types in assignment
# (expression has type "ExtensionArray", variable has type "Index")
# [assignment]

# pandas\core\algorithms.py:457: error: Incompatible types in assignment
# (expression has type "ExtensionArray", variable has type "Series")
# [assignment]

# pandas\core\algorithms.py:457: error: Incompatible types in assignment
# (expression has type "ExtensionArray", variable has type "ndarray")
# [assignment]
comps = extract_array(comps, extract_numpy=True) # type: ignore[assignment]
if is_categorical_dtype(comps):
# TODO(extension)
# handle categoricals
return cast("Categorical", comps).isin(values)

comps, dtype = _ensure_data(comps)
values, _ = _ensure_data(values, dtype=dtype)
# pandas\core\algorithms.py:463: error: Incompatible types in assignment
# (expression has type "ndarray", variable has type "ExtensionArray")
# [assignment]

# pandas\core\algorithms.py:463: error: Incompatible types in assignment
# (expression has type "ndarray", variable has type "Index") [assignment]

# pandas\core\algorithms.py:463: error: Incompatible types in assignment
# (expression has type "ndarray", variable has type "Series") [assignment]
comps, dtype = _ensure_data(comps) # type: ignore[assignment]

# pandas\core\algorithms.py:490: error: Incompatible types in assignment
# (expression has type "ndarray", variable has type "ExtensionArray")
# [assignment]

# pandas\core\algorithms.py:490: error: Incompatible types in assignment
# (expression has type "ndarray", variable has type "Index") [assignment]

# pandas\core\algorithms.py:490: error: Incompatible types in assignment
# (expression has type "ndarray", variable has type "Series") [assignment]
values, _ = _ensure_data(values, dtype=dtype) # type: ignore[assignment]

# faster for larger cases to use np.in1d
f = htable.ismember_object
Expand Down Expand Up @@ -1114,7 +1180,9 @@ def _get_score(at):
else:
q = np.asarray(q, np.float64)
result = [_get_score(x) for x in q]
result = np.array(result, dtype=np.float64)
# error: Incompatible types in assignment (expression has type
# "ndarray", variable has type "List[Any]")
result = np.array(result, dtype=np.float64) # type: ignore[assignment]
return result


Expand Down Expand Up @@ -1187,14 +1255,24 @@ def compute(self, method: str) -> Series:
# fast method
arr, pandas_dtype = _ensure_data(dropped.values)
if method == "nlargest":
arr = -arr
# pandas\core\algorithms.py:1264: error: Incompatible types in
# assignment (expression has type "Union[ndarray, generic]",
# variable has type "ndarray") [assignment]
arr = -arr # type: ignore[assignment]
if is_integer_dtype(pandas_dtype):
# GH 21426: ensure reverse ordering at boundaries
arr -= 1

elif is_bool_dtype(pandas_dtype):
# GH 26154: ensure False is smaller than True
arr = 1 - (-arr)

# pandas\core\algorithms.py:1269: error: Incompatible types in
# assignment (expression has type "Union[ndarray, generic]",
# variable has type "ndarray") [assignment]

# pandas\core\algorithms.py:1275: error: Unsupported operand
# types for - ("int" and "generic") [operator]
arr = 1 - (-arr) # type: ignore[assignment,operator]

if self.keep == "last":
arr = arr[::-1]
Expand Down Expand Up @@ -2136,7 +2214,9 @@ def _sort_mixed(values):
return np.concatenate([nums, np.asarray(strs, dtype=object)])


def _sort_tuples(values: np.ndarray[tuple]):
# pandas\core\algorithms.py:2217: error: "ndarray" expects no type arguments,
# but 1 given [type-arg]
def _sort_tuples(values: np.ndarray[tuple]): # type: ignore[type-arg]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IIUC np.ndarray takes annotations of the form ndarray[shape, dtype], not sure that tuple make sense in this context

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ndarray doesn't take type arguments (is not a generic type). so this just needs to be changed to just np.ndarray on master.

https://github.com/numpy/numpy/blob/a74789081fd9753c5e5637c404523b8f47b55dcc/numpy/__init__.pyi#L1478

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

opened #39792

"""
Convert array of tuples (1d) to array or array (2d).
We need to keep the columns separately as they contain different types and
Expand Down
4 changes: 3 additions & 1 deletion pandas/core/array_algos/replace.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,9 @@ def _check_comparison_types(

if is_numeric_v_string_like(a, b):
# GH#29553 avoid deprecation warnings from numpy
return np.zeros(a.shape, dtype=bool)
# error: Incompatible return value type (got "ndarray", expected
# "Union[ExtensionArray, bool]")
return np.zeros(a.shape, dtype=bool) # type: ignore[return-value]

elif is_datetimelike_v_numeric(a, b):
# GH#29553 avoid deprecation warnings from numpy
Expand Down
6 changes: 4 additions & 2 deletions pandas/core/arrays/_mixins.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,8 @@ def ndim(self) -> int:

@cache_readonly
def size(self) -> int:
return np.prod(self.shape)
# error: Incompatible return value type (got "number", expected "int")
return np.prod(self.shape) # type: ignore[return-value]

@cache_readonly
def nbytes(self) -> int:
Expand Down Expand Up @@ -230,7 +231,8 @@ def fillna(self: _T, value=None, method=None, limit=None) -> _T:
)
value = value[mask]

if mask.any():
# error: "ExtensionArray" has no attribute "any"
if mask.any(): # type: ignore[attr-defined]
if method is not None:
func = missing.get_fill_func(method)
new_values = func(self._ndarray.copy(), limit=limit, mask=mask)
Expand Down
17 changes: 14 additions & 3 deletions pandas/core/arrays/_ranges.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,13 @@ def _generate_range_overflow_safe(
# if periods * strides cannot be multiplied within the *uint64* bounds,
# we cannot salvage the operation by recursing, so raise
try:
addend = np.uint64(periods) * np.uint64(np.abs(stride))
# pandas\core\arrays\_ranges.py:108: error: Argument 1 to
# "unsignedinteger" has incompatible type "Union[ndarray,
# generic]"; expected "Union[SupportsInt, Union[str, bytes],
# SupportsIndex]" [arg-type]
addend = np.uint64(periods) * np.uint64(
np.abs(stride) # type: ignore[arg-type]
)
except FloatingPointError as err:
raise OutOfBoundsDatetime(msg) from err

Expand Down Expand Up @@ -150,7 +156,9 @@ def _generate_range_overflow_safe_signed(
addend = np.int64(periods) * np.int64(stride)
try:
# easy case with no overflows
return np.int64(endpoint) + addend
# pandas\core\arrays\_ranges.py:153: error: Incompatible return
# value type (got "signedinteger", expected "int") [return-value]
return np.int64(endpoint) + addend # type: ignore[return-value]
except (FloatingPointError, OverflowError):
# with endpoint negative and addend positive we risk
# FloatingPointError; with reversed signed we risk OverflowError
Expand All @@ -168,7 +176,10 @@ def _generate_range_overflow_safe_signed(
i64max = np.uint64(np.iinfo(np.int64).max)
assert result > i64max
if result <= i64max + np.uint64(stride):
return result
# pandas\core\arrays\_ranges.py:171: error: Incompatible return
# value type (got "unsignedinteger", expected "int")
# [return-value]
return result # type: ignore[return-value]

raise OutOfBoundsDatetime(
f"Cannot generate range with {side}={endpoint} and periods={periods}"
Expand Down
Loading