|
8 | 8 | from __future__ import annotations
|
9 | 9 |
|
10 | 10 | from typing import (
|
| 11 | + TYPE_CHECKING, |
11 | 12 | Callable,
|
12 | 13 | final,
|
13 | 14 | )
|
|
16 | 17 | from pandas.util._decorators import doc
|
17 | 18 | from pandas.util._exceptions import find_stack_level
|
18 | 19 |
|
| 20 | +if TYPE_CHECKING: |
| 21 | + from pandas._typing import TypeT |
| 22 | + |
| 23 | + from pandas import Index |
| 24 | + from pandas.core.generic import NDFrame |
| 25 | + |
19 | 26 |
|
20 | 27 | class DirNamesMixin:
|
21 | 28 | _accessors: set[str] = set()
|
@@ -232,7 +239,9 @@ def __get__(self, obj, cls):
|
232 | 239 |
|
233 | 240 |
|
234 | 241 | @doc(klass="", examples="", others="")
|
235 |
| -def _register_accessor(name: str, cls): |
| 242 | +def _register_accessor( |
| 243 | + name: str, cls: type[NDFrame | Index] |
| 244 | +) -> Callable[[TypeT], TypeT]: |
236 | 245 | """
|
237 | 246 | Register a custom accessor on {klass} objects.
|
238 | 247 |
|
@@ -277,7 +286,7 @@ def _register_accessor(name: str, cls):
|
277 | 286 | {examples}
|
278 | 287 | """
|
279 | 288 |
|
280 |
| - def decorator(accessor): |
| 289 | + def decorator(accessor: TypeT) -> TypeT: |
281 | 290 | if hasattr(cls, name):
|
282 | 291 | warnings.warn(
|
283 | 292 | f"registration of accessor {accessor!r} under name "
|
@@ -320,7 +329,7 @@ def decorator(accessor):
|
320 | 329 |
|
321 | 330 |
|
322 | 331 | @doc(_register_accessor, klass="DataFrame", examples=_register_df_examples)
|
323 |
| -def register_dataframe_accessor(name: str): |
| 332 | +def register_dataframe_accessor(name: str) -> Callable[[TypeT], TypeT]: |
324 | 333 | from pandas import DataFrame
|
325 | 334 |
|
326 | 335 | return _register_accessor(name, DataFrame)
|
@@ -351,7 +360,7 @@ def register_dataframe_accessor(name: str):
|
351 | 360 |
|
352 | 361 |
|
353 | 362 | @doc(_register_accessor, klass="Series", examples=_register_series_examples)
|
354 |
| -def register_series_accessor(name: str): |
| 363 | +def register_series_accessor(name: str) -> Callable[[TypeT], TypeT]: |
355 | 364 | from pandas import Series
|
356 | 365 |
|
357 | 366 | return _register_accessor(name, Series)
|
@@ -385,7 +394,7 @@ def register_series_accessor(name: str):
|
385 | 394 |
|
386 | 395 |
|
387 | 396 | @doc(_register_accessor, klass="Index", examples=_register_index_examples)
|
388 |
| -def register_index_accessor(name: str): |
| 397 | +def register_index_accessor(name: str) -> Callable[[TypeT], TypeT]: |
389 | 398 | from pandas import Index
|
390 | 399 |
|
391 | 400 | return _register_accessor(name, Index)
|
0 commit comments