88import itertools
99import os
1010import 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+ )
1222import warnings
1323
1424import 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