Skip to content

Commit d388101

Browse files
typo in doc label and typing issues
1 parent 1ca77c1 commit d388101

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

doc/source/development/extending.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,7 @@ registers the default "matplotlib" backend as follows.
489489
More information on how to implement a third-party plotting backend can be found at
490490
https://github.com/pandas-dev/pandas/blob/main/pandas/plotting/__init__.py#L1.
491491

492-
.. _extending.plotting-backends:
492+
.. _extending.io-engines:
493493

494494
IO engines
495495
-----------

pandas/io/common.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@
9494

9595
# registry of I/O engines. It is populated the first time a non-core
9696
# pandas engine is used
97-
_io_engines = None
97+
_io_engines: dict[str, Any] | None = None
9898

9999

100100
@dataclasses.dataclass
@@ -1290,7 +1290,7 @@ def dedup_names(
12901290
return names
12911291

12921292

1293-
def _get_io_engine(name: str):
1293+
def _get_io_engine(name: str) -> Any:
12941294
"""
12951295
Return an I/O engine by its name.
12961296
@@ -1338,7 +1338,10 @@ def _get_io_engine(name: str):
13381338
if _io_engines is None:
13391339
_io_engines = {}
13401340
for entry_point in entry_points().select(group="pandas.io_engine"):
1341-
package_name = entry_point.dist.metadata["Name"]
1341+
if entry_point.dist:
1342+
package_name = entry_point.dist.metadata["Name"]
1343+
else:
1344+
package_name = None
13421345
if entry_point.name in _io_engines:
13431346
_io_engines[entry_point.name]._packages.append(package_name)
13441347
else:
@@ -1373,7 +1376,9 @@ def _get_io_engine(name: str):
13731376
return engine
13741377

13751378

1376-
def allow_third_party_engines(skip_engines: list[str] | Callable | None = None):
1379+
def allow_third_party_engines(
1380+
skip_engines: list[str] | Callable | None = None,
1381+
) -> Callable:
13771382
"""
13781383
Decorator to avoid boilerplate code when allowing readers and writers to use
13791384
third-party engines.
@@ -1403,10 +1408,10 @@ def allow_third_party_engines(skip_engines: list[str] | Callable | None = None):
14031408
... pass
14041409
"""
14051410

1406-
def decorator(func):
1411+
def decorator(func: Callable) -> Callable:
14071412
@functools.wraps(func)
1408-
def wrapper(*args, **kwargs):
1409-
if callable(skip_engines):
1413+
def wrapper(*args: Any, **kwargs: Any) -> Any:
1414+
if callable(skip_engines) or skip_engines is None:
14101415
skip_engine = False
14111416
else:
14121417
skip_engine = kwargs["engine"] in skip_engines

0 commit comments

Comments
 (0)