Skip to content

Commit 5e3b51d

Browse files
twoertweinMoisanmroeschke
authored
CI/TYP: enable reportGeneralTypeIssues for subset of files (pandas-dev#47252)
* CI/TYP: enable reportGeneralTypeIssues for subset of files * labels can be Iterable[str] * fix no_default * specify pyright version only once * TYP: remove mypy ignore from localization.py (pandas-dev#47240) * TYP: remove mypy ignore from localization.py * fixup! TYP: remove mypy ignore from localization.py * specify pyright version only once * bump pyright * Update pyright_reportGeneralTypeIssues.json Co-authored-by: Thierry Moisan <thierry.moisan@gmail.com> Co-authored-by: Matthew Roeschke <emailformattr@gmail.com>
1 parent d3d1bdc commit 5e3b51d

File tree

5 files changed

+146
-6
lines changed

5 files changed

+146
-6
lines changed

.pre-commit-config.yaml

+13-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,19 @@ repos:
9393
pass_filenames: false
9494
types: [python]
9595
stages: [manual]
96-
additional_dependencies: ['pyright@1.1.248']
96+
additional_dependencies: &pyright_dependencies
97+
- pyright@1.1.253
98+
- repo: local
99+
hooks:
100+
- id: pyright_reportGeneralTypeIssues
101+
name: pyright reportGeneralTypeIssues
102+
entry: pyright --skipunannotated -p pyright_reportGeneralTypeIssues.json
103+
# note: assumes python env is setup and activated
104+
language: node
105+
pass_filenames: false
106+
types: [python]
107+
stages: [manual]
108+
additional_dependencies: *pyright_dependencies
97109
- repo: local
98110
hooks:
99111
- id: mypy

pandas/_libs/lib.pyi

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from typing import (
55
Any,
66
Callable,
7+
Final,
78
Generator,
89
Hashable,
910
Literal,
@@ -26,7 +27,7 @@ from enum import Enum
2627
class _NoDefault(Enum):
2728
no_default = ...
2829

29-
no_default = _NoDefault.no_default
30+
no_default: Final = _NoDefault.no_default
3031
NoDefault = Literal[_NoDefault.no_default]
3132

3233
i8max: int

pandas/util/_doctools.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
from __future__ import annotations
22

3+
from typing import Iterable
4+
35
import numpy as np
46

57
import pandas as pd
@@ -41,7 +43,7 @@ def _get_cells(self, left, right, vertical) -> tuple[int, int]:
4143
hcells = sum([self._shape(df)[1] for df in left] + [self._shape(right)[1]])
4244
return hcells, vcells
4345

44-
def plot(self, left, right, labels=None, vertical: bool = True):
46+
def plot(self, left, right, labels: Iterable[str] = (), vertical: bool = True):
4547
"""
4648
Plot left / right DataFrames in specified layout.
4749

pyright_reportGeneralTypeIssues.json

+127
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
# this becomes obsolete when reportGeneralTypeIssues can be enabled in pyproject.toml
2+
{
3+
"typeCheckingMode": "off",
4+
"reportGeneralTypeIssues": true,
5+
"include":
6+
[
7+
"pandas",
8+
"typings"
9+
],
10+
"exclude":
11+
[
12+
# exclude tests
13+
"pandas/tests",
14+
# and all files that currently don't pass
15+
"pandas/_config/config.py",
16+
"pandas/core/algorithms.py",
17+
"pandas/core/apply.py",
18+
"pandas/core/array_algos/take.py",
19+
"pandas/core/arrays/_mixins.py",
20+
"pandas/core/arrays/_ranges.py",
21+
"pandas/core/arrays/arrow/array.py",
22+
"pandas/core/arrays/base.py",
23+
"pandas/core/arrays/boolean.py",
24+
"pandas/core/arrays/categorical.py",
25+
"pandas/core/arrays/datetimelike.py",
26+
"pandas/core/arrays/datetimes.py",
27+
"pandas/core/arrays/interval.py",
28+
"pandas/core/arrays/masked.py",
29+
"pandas/core/arrays/numeric.py",
30+
"pandas/core/arrays/period.py",
31+
"pandas/core/arrays/sparse/array.py",
32+
"pandas/core/arrays/sparse/dtype.py",
33+
"pandas/core/arrays/string_.py",
34+
"pandas/core/arrays/string_arrow.py",
35+
"pandas/core/arrays/timedeltas.py",
36+
"pandas/core/common.py",
37+
"pandas/core/computation/align.py",
38+
"pandas/core/construction.py",
39+
"pandas/core/describe.py",
40+
"pandas/core/dtypes/base.py",
41+
"pandas/core/dtypes/cast.py",
42+
"pandas/core/dtypes/common.py",
43+
"pandas/core/dtypes/concat.py",
44+
"pandas/core/dtypes/dtypes.py",
45+
"pandas/core/frame.py",
46+
"pandas/core/generic.py",
47+
"pandas/core/groupby/generic.py",
48+
"pandas/core/groupby/groupby.py",
49+
"pandas/core/groupby/grouper.py",
50+
"pandas/core/groupby/ops.py",
51+
"pandas/core/indexers/objects.py",
52+
"pandas/core/indexers/utils.py",
53+
"pandas/core/indexes/base.py",
54+
"pandas/core/indexes/category.py",
55+
"pandas/core/indexes/datetimelike.py",
56+
"pandas/core/indexes/datetimes.py",
57+
"pandas/core/indexes/extension.py",
58+
"pandas/core/indexes/interval.py",
59+
"pandas/core/indexes/multi.py",
60+
"pandas/core/indexes/numeric.py",
61+
"pandas/core/indexes/period.py",
62+
"pandas/core/indexes/range.py",
63+
"pandas/core/indexing.py",
64+
"pandas/core/internals/api.py",
65+
"pandas/core/internals/array_manager.py",
66+
"pandas/core/internals/base.py",
67+
"pandas/core/internals/blocks.py",
68+
"pandas/core/internals/concat.py",
69+
"pandas/core/internals/construction.py",
70+
"pandas/core/internals/managers.py",
71+
"pandas/core/missing.py",
72+
"pandas/core/nanops.py",
73+
"pandas/core/resample.py",
74+
"pandas/core/reshape/concat.py",
75+
"pandas/core/reshape/merge.py",
76+
"pandas/core/reshape/pivot.py",
77+
"pandas/core/reshape/reshape.py",
78+
"pandas/core/reshape/tile.py",
79+
"pandas/core/series.py",
80+
"pandas/core/sorting.py",
81+
"pandas/core/strings/accessor.py",
82+
"pandas/core/tools/datetimes.py",
83+
"pandas/core/tools/timedeltas.py",
84+
"pandas/core/util/hashing.py",
85+
"pandas/core/util/numba_.py",
86+
"pandas/core/window/ewm.py",
87+
"pandas/core/window/expanding.py",
88+
"pandas/core/window/rolling.py",
89+
"pandas/io/common.py",
90+
"pandas/io/excel/_base.py",
91+
"pandas/io/excel/_odfreader.py",
92+
"pandas/io/excel/_odswriter.py",
93+
"pandas/io/excel/_openpyxl.py",
94+
"pandas/io/excel/_pyxlsb.py",
95+
"pandas/io/excel/_xlrd.py",
96+
"pandas/io/formats/csvs.py",
97+
"pandas/io/formats/excel.py",
98+
"pandas/io/formats/format.py",
99+
"pandas/io/formats/info.py",
100+
"pandas/io/formats/printing.py",
101+
"pandas/io/formats/style.py",
102+
"pandas/io/formats/style_render.py",
103+
"pandas/io/formats/xml.py",
104+
"pandas/io/json/_json.py",
105+
"pandas/io/parquet.py",
106+
"pandas/io/parsers/arrow_parser_wrapper.py",
107+
"pandas/io/parsers/base_parser.py",
108+
"pandas/io/parsers/c_parser_wrapper.py",
109+
"pandas/io/parsers/python_parser.py",
110+
"pandas/io/parsers/readers.py",
111+
"pandas/io/pytables.py",
112+
"pandas/io/sas/sas7bdat.py",
113+
"pandas/io/sas/sasreader.py",
114+
"pandas/io/sql.py",
115+
"pandas/io/stata.py",
116+
"pandas/io/xml.py",
117+
"pandas/plotting/_core.py",
118+
"pandas/plotting/_matplotlib/converter.py",
119+
"pandas/plotting/_matplotlib/core.py",
120+
"pandas/plotting/_matplotlib/hist.py",
121+
"pandas/plotting/_matplotlib/misc.py",
122+
"pandas/plotting/_matplotlib/style.py",
123+
"pandas/plotting/_matplotlib/timeseries.py",
124+
"pandas/plotting/_matplotlib/tools.py",
125+
"pandas/tseries/frequencies.py",
126+
],
127+
}

typings/numba.pyi

+1-3
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@ from pandas._typing import F
1212

1313
def __getattr__(name: str) -> Any: ... # incomplete
1414
@overload
15-
def jit(
16-
signature_or_function: F = ...,
17-
) -> F: ...
15+
def jit(signature_or_function: F) -> F: ...
1816
@overload
1917
def jit(
2018
signature_or_function: str

0 commit comments

Comments
 (0)