5252import bigframes .operations as ops
5353import bigframes .operations .aggregations as agg_ops
5454import bigframes .operations .base
55- from bigframes .operations .base import requires_index
5655import bigframes .operations .datetimes as dt
5756import bigframes .operations .plotting as plotting
5857import bigframes .operations .strings as strings
@@ -88,7 +87,7 @@ def dtypes(self):
8887 return self ._dtype
8988
9089 @property
91- @requires_index
90+ @validations . requires_index
9291 def loc (self ) -> bigframes .core .indexers .LocSeriesIndexer :
9392 return bigframes .core .indexers .LocSeriesIndexer (self )
9493
@@ -103,7 +102,7 @@ def iat(self) -> bigframes.core.indexers.IatSeriesIndexer:
103102 return bigframes .core .indexers .IatSeriesIndexer (self )
104103
105104 @property
106- @requires_index
105+ @validations . requires_index
107106 def at (self ) -> bigframes .core .indexers .AtSeriesIndexer :
108107 return bigframes .core .indexers .AtSeriesIndexer (self )
109108
@@ -142,7 +141,7 @@ def values(self) -> numpy.ndarray:
142141 return self .to_numpy ()
143142
144143 @property
145- @requires_index
144+ @validations . requires_index
146145 def index (self ) -> indexes .Index :
147146 return indexes .Index .from_frame (self )
148147
@@ -245,7 +244,7 @@ def rename(
245244
246245 raise ValueError (f"Unsupported type of parameter index: { type (index )} " )
247246
248- @requires_index
247+ @validations . requires_index
249248 def rename_axis (
250249 self ,
251250 mapper : typing .Union [blocks .Label , typing .Sequence [blocks .Label ]],
@@ -404,12 +403,12 @@ def drop(
404403 block = block .drop_columns ([condition_id ])
405404 return Series (block .select_column (self ._value_column ))
406405
407- @requires_index
406+ @validations . requires_index
408407 def droplevel (self , level : LevelsType , axis : int | str = 0 ):
409408 resolved_level_ids = self ._resolve_levels (level )
410409 return Series (self ._block .drop_levels (resolved_level_ids ))
411410
412- @requires_index
411+ @validations . requires_index
413412 def swaplevel (self , i : int = - 2 , j : int = - 1 ):
414413 level_i = self ._block .index_columns [i ]
415414 level_j = self ._block .index_columns [j ]
@@ -419,7 +418,7 @@ def swaplevel(self, i: int = -2, j: int = -1):
419418 ]
420419 return Series (self ._block .reorder_levels (reordering ))
421420
422- @requires_index
421+ @validations . requires_index
423422 def reorder_levels (self , order : LevelsType , axis : int | str = 0 ):
424423 resolved_level_ids = self ._resolve_levels (order )
425424 return Series (self ._block .reorder_levels (resolved_level_ids ))
@@ -609,7 +608,7 @@ def _mapping_replace(self, mapping: dict[typing.Hashable, typing.Hashable]):
609608 return Series (block .select_column (result ))
610609
611610 @validations .requires_ordering ()
612- @requires_index
611+ @validations . requires_index
613612 def interpolate (self , method : str = "linear" ) -> Series :
614613 if method == "pad" :
615614 return self .ffill ()
@@ -1162,7 +1161,7 @@ def argmin(self) -> int:
11621161 scalars .Scalar , Series (block .select_column (row_nums )).iloc [0 ]
11631162 )
11641163
1165- @requires_index
1164+ @validations . requires_index
11661165 def unstack (self , level : LevelsType = - 1 ):
11671166 if isinstance (level , int ) or isinstance (level , str ):
11681167 level = [level ]
@@ -1186,7 +1185,7 @@ def unstack(self, level: LevelsType = -1):
11861185 )
11871186 return bigframes .dataframe .DataFrame (pivot_block )
11881187
1189- @requires_index
1188+ @validations . requires_index
11901189 def idxmax (self ) -> blocks .Label :
11911190 block = self ._block .order_by (
11921191 [
@@ -1200,7 +1199,7 @@ def idxmax(self) -> blocks.Label:
12001199 block = block .slice (0 , 1 )
12011200 return indexes .Index (block ).to_pandas ()[0 ]
12021201
1203- @requires_index
1202+ @validations . requires_index
12041203 def idxmin (self ) -> blocks .Label :
12051204 block = self ._block .order_by (
12061205 [
@@ -1314,7 +1313,7 @@ def sort_values(
13141313 )
13151314 return Series (block )
13161315
1317- @requires_index
1316+ @validations . requires_index
13181317 def sort_index (self , * , axis = 0 , ascending = True , na_position = "last" ) -> Series :
13191318 # TODO(tbergeron): Support level parameter once multi-index introduced.
13201319 if na_position not in ["first" , "last" ]:
@@ -1377,7 +1376,7 @@ def groupby(
13771376 else :
13781377 raise TypeError ("You have to supply one of 'by' and 'level'" )
13791378
1380- @requires_index
1379+ @validations . requires_index
13811380 def _groupby_level (
13821381 self ,
13831382 level : int | str | typing .Sequence [int ] | typing .Sequence [str ],
@@ -1518,11 +1517,11 @@ def combine(
15181517 materialized_series = result_series ._cached ()
15191518 return materialized_series
15201519
1521- @requires_index
1520+ @validations . requires_index
15221521 def add_prefix (self , prefix : str , axis : int | str | None = None ) -> Series :
15231522 return Series (self ._get_block ().add_prefix (prefix ))
15241523
1525- @requires_index
1524+ @validations . requires_index
15261525 def add_suffix (self , suffix : str , axis : int | str | None = None ) -> Series :
15271526 return Series (self ._get_block ().add_suffix (suffix ))
15281527
@@ -1574,7 +1573,7 @@ def filter(
15741573 else :
15751574 raise ValueError ("Need to provide 'items', 'like', or 'regex'" )
15761575
1577- @requires_index
1576+ @validations . requires_index
15781577 def reindex (self , index = None , * , validate : typing .Optional [bool ] = None ):
15791578 if validate and not self .index .is_unique :
15801579 raise ValueError ("Original index must be unique to reindex" )
@@ -1603,7 +1602,7 @@ def reindex(self, index=None, *, validate: typing.Optional[bool] = None):
16031602 )._block
16041603 return Series (result_block )
16051604
1606- @requires_index
1605+ @validations . requires_index
16071606 def reindex_like (self , other : Series , * , validate : typing .Optional [bool ] = None ):
16081607 return self .reindex (other .index , validate = validate )
16091608
0 commit comments