Skip to content

Commit 804d7b4

Browse files
committed
feat: enable mypy session for db-dtypes
1 parent ef62df4 commit 804d7b4

File tree

4 files changed

+29
-17
lines changed

4 files changed

+29
-17
lines changed

packages/db-dtypes/db_dtypes/core.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ def __init__(self, values, dtype=None, copy: bool = False):
5858
elif copy:
5959
values = values.copy()
6060

61-
super().__init__(values=values, dtype=values.dtype)
61+
super().__init__(values=values, dtype=values.dtype) # type: ignore[call-arg]
6262

6363
@classmethod
6464
def __ndarray(cls, scalars):
@@ -164,17 +164,17 @@ def min(self, *, axis: Optional[int] = None, skipna: bool = True, **kwargs):
164164
values=self._ndarray, axis=axis, mask=self.isna(), skipna=skipna
165165
)
166166
if axis is None or self.ndim == 1:
167-
return self._box_func(result)
168-
return self._from_backing_data(result)
167+
return self._box_func(result) # type: ignore[attr-defined]
168+
return self._from_backing_data(result) # type: ignore[attr-defined]
169169

170170
def max(self, *, axis: Optional[int] = None, skipna: bool = True, **kwargs):
171171
pandas_backports.numpy_validate_max((), kwargs)
172172
result = pandas_backports.nanmax(
173173
values=self._ndarray, axis=axis, mask=self.isna(), skipna=skipna
174174
)
175175
if axis is None or self.ndim == 1:
176-
return self._box_func(result)
177-
return self._from_backing_data(result)
176+
return self._box_func(result) # type: ignore[attr-defined]
177+
return self._from_backing_data(result) # type: ignore[attr-defined]
178178

179179
def median(
180180
self,
@@ -191,5 +191,5 @@ def median(
191191
)
192192
result = pandas_backports.nanmedian(self._ndarray, axis=axis, skipna=skipna)
193193
if axis is None or self.ndim == 1:
194-
return self._box_func(result)
195-
return self._from_backing_data(result)
194+
return self._box_func(result) # type: ignore[attr-defined]
195+
return self._from_backing_data(result) # type: ignore[attr-defined]

packages/db-dtypes/db_dtypes/json.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,12 @@ class JSONDtype(pd.api.extensions.ExtensionDtype):
3232
name = "dbjson"
3333

3434
@property
35-
def na_value(self) -> pd.NA:
35+
def na_value(self) -> pd.NA: # type: ignore[valid-type]
3636
"""Default NA value to use for this type."""
3737
return pd.NA
3838

3939
@property
40-
def type(self) -> type[str]:
40+
def type(self) -> type[str]: # type: ignore[override]
4141
"""
4242
Return the scalar type for the array elements.
4343
The standard JSON data types can be one of `dict`, `list`, `str`, `int`, `float`,

packages/db-dtypes/db_dtypes/pandas_backports.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,16 @@
2626
pandas_release = packaging.version.parse(pandas.__version__).release
2727

2828
# # Create aliases for private methods in case they move in a future version.
29-
nanall = pandas.core.nanops.nanall
30-
nanany = pandas.core.nanops.nanany
31-
nanmax = pandas.core.nanops.nanmax
32-
nanmin = pandas.core.nanops.nanmin
29+
nanall = pandas.core.nanops.nanall # type: ignore[attr-defined]
30+
nanany = pandas.core.nanops.nanany # type: ignore[attr-defined]
31+
nanmax = pandas.core.nanops.nanmax # type: ignore[attr-defined]
32+
nanmin = pandas.core.nanops.nanmin # type: ignore[attr-defined]
3333
numpy_validate_all = pandas.compat.numpy.function.validate_all
3434
numpy_validate_any = pandas.compat.numpy.function.validate_any
3535
numpy_validate_max = pandas.compat.numpy.function.validate_max
3636
numpy_validate_min = pandas.compat.numpy.function.validate_min
3737

38-
nanmedian = pandas.core.nanops.nanmedian
38+
nanmedian = pandas.core.nanops.nanmedian # type: ignore[attr-defined]
3939
numpy_validate_median = pandas.compat.numpy.function.validate_median
4040

4141

packages/db-dtypes/noxfile.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -487,6 +487,18 @@ def core_deps_from_source(session):
487487
@nox.session(python=DEFAULT_PYTHON_VERSION)
488488
def mypy(session):
489489
"""Run the type checker."""
490-
# TODO(https://github.com/googleapis/google-cloud-python/issues/16014):
491-
# Add mypy tests
492-
session.skip("mypy tests are not yet supported")
490+
session.install(
491+
"mypy<1.16.0",
492+
"types-requests",
493+
"types-protobuf",
494+
"pandas-stubs",
495+
)
496+
session.install("-e", ".")
497+
session.run(
498+
"mypy",
499+
"-p",
500+
"db_dtypes",
501+
"--check-untyped-defs",
502+
"--ignore-missing-imports",
503+
*session.posargs,
504+
)

0 commit comments

Comments
 (0)