Skip to content

Commit 1f1c2b8

Browse files
jbrockmendelproost
authored andcommitted
CLN: make kwargs explicit for pytables read_ methods (pandas-dev#29935)
1 parent 6b53d46 commit 1f1c2b8

File tree

1 file changed

+62
-18
lines changed

1 file changed

+62
-18
lines changed

pandas/io/pytables.py

+62-18
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,17 @@
88
import itertools
99
import os
1010
import re
11-
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Type, Union
11+
from typing import (
12+
TYPE_CHECKING,
13+
Any,
14+
Dict,
15+
Hashable,
16+
List,
17+
Optional,
18+
Tuple,
19+
Type,
20+
Union,
21+
)
1222
import warnings
1323

1424
import numpy as np
@@ -2781,13 +2791,16 @@ def read_array(
27812791
else:
27822792
return ret
27832793

2784-
def read_index(self, key: str, **kwargs) -> Index:
2794+
def read_index(
2795+
self, key: str, start: Optional[int] = None, stop: Optional[int] = None
2796+
) -> Index:
27852797
variety = _ensure_decoded(getattr(self.attrs, f"{key}_variety"))
27862798

27872799
if variety == "multi":
2788-
return self.read_multi_index(key, **kwargs)
2800+
return self.read_multi_index(key, start=start, stop=stop)
27892801
elif variety == "regular":
2790-
_, index = self.read_index_node(getattr(self.group, key), **kwargs)
2802+
node = getattr(self.group, key)
2803+
_, index = self.read_index_node(node, start=start, stop=stop)
27912804
return index
27922805
else: # pragma: no cover
27932806
raise TypeError(f"unrecognized index variety: {variety}")
@@ -2840,20 +2853,23 @@ def write_multi_index(self, key: str, index: MultiIndex):
28402853
label_key = f"{key}_label{i}"
28412854
self.write_array(label_key, level_codes)
28422855

2843-
def read_multi_index(self, key: str, **kwargs) -> MultiIndex:
2856+
def read_multi_index(
2857+
self, key: str, start: Optional[int] = None, stop: Optional[int] = None
2858+
) -> MultiIndex:
28442859
nlevels = getattr(self.attrs, f"{key}_nlevels")
28452860

28462861
levels = []
28472862
codes = []
28482863
names = []
28492864
for i in range(nlevels):
28502865
level_key = f"{key}_level{i}"
2851-
name, lev = self.read_index_node(getattr(self.group, level_key), **kwargs)
2866+
node = getattr(self.group, level_key)
2867+
name, lev = self.read_index_node(node, start=start, stop=stop)
28522868
levels.append(lev)
28532869
names.append(name)
28542870

28552871
label_key = f"{key}_label{i}"
2856-
level_codes = self.read_array(label_key, **kwargs)
2872+
level_codes = self.read_array(label_key, start=start, stop=stop)
28572873
codes.append(level_codes)
28582874

28592875
return MultiIndex(
@@ -3014,17 +3030,25 @@ class SeriesFixed(GenericFixed):
30143030
pandas_kind = "series"
30153031
attributes = ["name"]
30163032

3033+
name: Optional[Hashable]
3034+
30173035
@property
30183036
def shape(self):
30193037
try:
30203038
return (len(self.group.values),)
30213039
except (TypeError, AttributeError):
30223040
return None
30233041

3024-
def read(self, **kwargs):
3025-
kwargs = self.validate_read(kwargs)
3026-
index = self.read_index("index", **kwargs)
3027-
values = self.read_array("values", **kwargs)
3042+
def read(
3043+
self,
3044+
where=None,
3045+
columns=None,
3046+
start: Optional[int] = None,
3047+
stop: Optional[int] = None,
3048+
):
3049+
self.validate_read({"where": where, "columns": columns})
3050+
index = self.read_index("index", start=start, stop=stop)
3051+
values = self.read_array("values", start=start, stop=stop)
30283052
return Series(values, index=index, name=self.name)
30293053

30303054
def write(self, obj, **kwargs):
@@ -3038,6 +3062,8 @@ class BlockManagerFixed(GenericFixed):
30383062
attributes = ["ndim", "nblocks"]
30393063
is_shape_reversed = False
30403064

3065+
nblocks: int
3066+
30413067
@property
30423068
def shape(self):
30433069
try:
@@ -3069,10 +3095,15 @@ def shape(self):
30693095
except AttributeError:
30703096
return None
30713097

3072-
def read(self, start=None, stop=None, **kwargs):
3098+
def read(
3099+
self,
3100+
where=None,
3101+
columns=None,
3102+
start: Optional[int] = None,
3103+
stop: Optional[int] = None,
3104+
):
30733105
# start, stop applied to rows, so 0th axis only
3074-
3075-
kwargs = self.validate_read(kwargs)
3106+
self.validate_read({"columns": columns, "where": where})
30763107
select_axis = self.obj_type()._get_block_manager_axis(0)
30773108

30783109
axes = []
@@ -4360,14 +4391,21 @@ def write(self, obj, data_columns=None, **kwargs):
43604391
obj.columns = [name]
43614392
return super().write(obj=obj, data_columns=obj.columns.tolist(), **kwargs)
43624393

4363-
def read(self, columns=None, **kwargs):
4394+
def read(
4395+
self,
4396+
where=None,
4397+
columns=None,
4398+
start: Optional[int] = None,
4399+
stop: Optional[int] = None,
4400+
):
43644401

43654402
is_multi_index = self.is_multi_index
43664403
if columns is not None and is_multi_index:
4404+
assert isinstance(self.levels, list) # needed for mypy
43674405
for n in self.levels:
43684406
if n not in columns:
43694407
columns.insert(0, n)
4370-
s = super().read(columns=columns, **kwargs)
4408+
s = super().read(where=where, columns=columns, start=start, stop=stop)
43714409
if is_multi_index:
43724410
s.set_index(self.levels, inplace=True)
43734411

@@ -4468,9 +4506,15 @@ def write(self, obj, data_columns=None, **kwargs):
44684506
data_columns.insert(0, n)
44694507
return super().write(obj=obj, data_columns=data_columns, **kwargs)
44704508

4471-
def read(self, **kwargs):
4509+
def read(
4510+
self,
4511+
where=None,
4512+
columns=None,
4513+
start: Optional[int] = None,
4514+
stop: Optional[int] = None,
4515+
):
44724516

4473-
df = super().read(**kwargs)
4517+
df = super().read(where=where, columns=columns, start=start, stop=stop)
44744518
df = df.set_index(self.levels)
44754519

44764520
# remove names for 'level_%d'

0 commit comments

Comments
 (0)