22
22
Final ,
23
23
Literal ,
24
24
cast ,
25
+ overload ,
25
26
)
26
27
import warnings
27
28
@@ -593,7 +594,7 @@ def __getitem__(self, key: str):
593
594
def __setitem__ (self , key : str , value ) -> None :
594
595
self .put (key , value )
595
596
596
- def __delitem__ (self , key : str ) -> None :
597
+ def __delitem__ (self , key : str ) -> int | None :
597
598
return self .remove (key )
598
599
599
600
def __getattr__ (self , name : str ):
@@ -1203,7 +1204,7 @@ def put(
1203
1204
dropna = dropna ,
1204
1205
)
1205
1206
1206
- def remove (self , key : str , where = None , start = None , stop = None ) -> None :
1207
+ def remove (self , key : str , where = None , start = None , stop = None ) -> int | None :
1207
1208
"""
1208
1209
Remove pandas object partially by specifying the where condition
1209
1210
@@ -1251,14 +1252,12 @@ def remove(self, key: str, where=None, start=None, stop=None) -> None:
1251
1252
# remove the node
1252
1253
if com .all_none (where , start , stop ):
1253
1254
s .group ._f_remove (recursive = True )
1255
+ return None
1254
1256
1255
1257
# delete from the table
1256
- else :
1257
- if not s .is_table :
1258
- raise ValueError (
1259
- "can only remove with where on objects written as tables"
1260
- )
1261
- return s .delete (where = where , start = start , stop = stop )
1258
+ if not s .is_table :
1259
+ raise ValueError ("can only remove with where on objects written as tables" )
1260
+ return s .delete (where = where , start = start , stop = stop )
1262
1261
1263
1262
def append (
1264
1263
self ,
@@ -2895,7 +2894,7 @@ def read(
2895
2894
columns = None ,
2896
2895
start : int | None = None ,
2897
2896
stop : int | None = None ,
2898
- ):
2897
+ ) -> Series | DataFrame :
2899
2898
raise NotImplementedError (
2900
2899
"cannot read on an abstract storer: subclasses should implement"
2901
2900
)
@@ -2907,7 +2906,7 @@ def write(self, obj, **kwargs) -> None:
2907
2906
2908
2907
def delete (
2909
2908
self , where = None , start : int | None = None , stop : int | None = None
2910
- ) -> None :
2909
+ ) -> int | None :
2911
2910
"""
2912
2911
support fully deleting the node in its entirety (only) - where
2913
2912
specification must be None
@@ -3601,7 +3600,7 @@ def queryables(self) -> dict[str, Any]:
3601
3600
3602
3601
return dict (d1 + d2 + d3 )
3603
3602
3604
- def index_cols (self ):
3603
+ def index_cols (self ) -> list [ tuple [ Any , Any ]] :
3605
3604
"""return a list of my index cols"""
3606
3605
# Note: each `i.cname` below is assured to be a str.
3607
3606
return [(i .axis , i .cname ) for i in self .index_axes ]
@@ -3731,7 +3730,7 @@ def indexables(self):
3731
3730
dc = set (self .data_columns )
3732
3731
base_pos = len (_indexables )
3733
3732
3734
- def f (i , c ) :
3733
+ def f (i , c : str ) -> DataCol :
3735
3734
assert isinstance (c , str )
3736
3735
klass = DataCol
3737
3736
if c in dc :
@@ -3897,7 +3896,7 @@ def get_object(cls, obj, transposed: bool):
3897
3896
"""return the data for this obj"""
3898
3897
return obj
3899
3898
3900
- def validate_data_columns (self , data_columns , min_itemsize , non_index_axes ):
3899
+ def validate_data_columns (self , data_columns , min_itemsize , non_index_axes ) -> list :
3901
3900
"""
3902
3901
take the input data_columns and min_itemize and create a data
3903
3902
columns spec
@@ -4590,7 +4589,9 @@ def write_data_chunk(
4590
4589
self .table .append (rows )
4591
4590
self .table .flush ()
4592
4591
4593
- def delete (self , where = None , start : int | None = None , stop : int | None = None ):
4592
+ def delete (
4593
+ self , where = None , start : int | None = None , stop : int | None = None
4594
+ ) -> int | None :
4594
4595
# delete all rows (and return the nrows)
4595
4596
if where is None or not len (where ):
4596
4597
if start is None and stop is None :
@@ -4918,7 +4919,7 @@ def read(
4918
4919
columns = None ,
4919
4920
start : int | None = None ,
4920
4921
stop : int | None = None ,
4921
- ):
4922
+ ) -> DataFrame :
4922
4923
df = super ().read (where = where , columns = columns , start = start , stop = stop )
4923
4924
df = df .set_index (self .levels )
4924
4925
@@ -5379,7 +5380,13 @@ def __init__(
5379
5380
if self .terms is not None :
5380
5381
self .condition , self .filter = self .terms .evaluate ()
5381
5382
5382
- def generate (self , where ):
5383
+ @overload
5384
+ def generate (self , where : dict | list | tuple | str ) -> PyTablesExpr : ...
5385
+
5386
+ @overload
5387
+ def generate (self , where : None ) -> None : ...
5388
+
5389
+ def generate (self , where : dict | list | tuple | str | None ) -> PyTablesExpr | None :
5383
5390
"""where can be a : dict,list,tuple,string"""
5384
5391
if where is None :
5385
5392
return None
0 commit comments