@@ -343,35 +343,26 @@ def _verify_integrity(self, codes=None, levels=None):
343
343
for i , (level , level_codes ) in enumerate (zip (levels , codes )):
344
344
if len (level_codes ) != codes_length :
345
345
raise ValueError (
346
- "Unequal code lengths: %s" % ( [len (code_ ) for code_ in codes ])
346
+ f "Unequal code lengths: { [len (code_ ) for code_ in codes ]} "
347
347
)
348
348
if len (level_codes ) and level_codes .max () >= len (level ):
349
- msg = (
350
- "On level {level}, code max ({max_code}) >= length of "
351
- "level ({level_len}). NOTE: this index is in an "
352
- "inconsistent state" .format (
353
- level = i , max_code = level_codes .max (), level_len = len (level )
354
- )
355
- )
356
- raise ValueError (msg )
357
- if len (level_codes ) and level_codes .min () < - 1 :
358
349
raise ValueError (
359
- "On level {level}, code value ({code})"
360
- " < -1" .format (level = i , code = level_codes .min ())
350
+ f"On level { i } , code max ({ level_codes .max ()} ) >= length of "
351
+ f"level ({ len (level )} ). NOTE: this index is in an "
352
+ "inconsistent state"
361
353
)
354
+ if len (level_codes ) and level_codes .min () < - 1 :
355
+ raise ValueError (f"On level { i } , code value ({ level_codes .min ()} ) < -1" )
362
356
if not level .is_unique :
363
357
raise ValueError (
364
- "Level values must be unique: {values} on "
365
- "level {level}" .format (values = list (level ), level = i )
358
+ f"Level values must be unique: { list (level )} on level { i } "
366
359
)
367
360
if self .sortorder is not None :
368
361
if self .sortorder > self ._lexsort_depth ():
369
362
raise ValueError (
370
- "Value for sortorder must be inferior or equal "
371
- "to actual lexsort_depth: "
372
- "sortorder {sortorder} with lexsort_depth {lexsort_depth}" .format (
373
- sortorder = self .sortorder , lexsort_depth = self ._lexsort_depth ()
374
- )
363
+ "Value for sortorder must be inferior or equal to actual "
364
+ f"lexsort_depth: sortorder { self .sortorder } "
365
+ f"with lexsort_depth { self ._lexsort_depth ()} "
375
366
)
376
367
377
368
codes = [
@@ -1241,7 +1232,7 @@ def _set_names(self, names, level=None, validate=True):
1241
1232
# All items in 'names' need to be hashable:
1242
1233
if not is_hashable (name ):
1243
1234
raise TypeError (
1244
- "{ }.name must be a hashable type". format ( type ( self ). __name__ )
1235
+ f" { type ( self ). __name__ } .name must be a hashable type"
1245
1236
)
1246
1237
self ._names [lev ] = name
1247
1238
@@ -1312,8 +1303,8 @@ def _get_level_number(self, level) -> int:
1312
1303
# Note: levels are zero-based
1313
1304
elif level >= self .nlevels :
1314
1305
raise IndexError (
1315
- "Too many levels: Index has only %d levels, "
1316
- "not %d" % ( self . nlevels , level + 1 )
1306
+ f "Too many levels: Index has only { self . nlevels } levels, "
1307
+ f "not { level + 1 } "
1317
1308
)
1318
1309
return level
1319
1310
@@ -1465,7 +1456,7 @@ def dropna(self, how="any"):
1465
1456
elif how == "all" :
1466
1457
indexer = np .all (nans , axis = 0 )
1467
1458
else :
1468
- raise ValueError ("invalid how option: {0}" . format ( how ) )
1459
+ raise ValueError (f "invalid how option: { how } " )
1469
1460
1470
1461
new_codes = [level_codes [~ indexer ] for level_codes in self .codes ]
1471
1462
return self .copy (codes = new_codes , deep = True )
@@ -2103,7 +2094,7 @@ def drop(self, codes, level=None, errors="raise"):
2103
2094
loc = loc .nonzero ()[0 ]
2104
2095
inds .extend (loc )
2105
2096
else :
2106
- msg = "unsupported indexer of type {}" . format ( type (loc ))
2097
+ msg = f "unsupported indexer of type { type (loc )} "
2107
2098
raise AssertionError (msg )
2108
2099
except KeyError :
2109
2100
if errors != "ignore" :
@@ -2330,7 +2321,7 @@ def _convert_listlike_indexer(self, keyarr, kind=None):
2330
2321
check = self .levels [0 ].get_indexer (keyarr )
2331
2322
mask = check == - 1
2332
2323
if mask .any ():
2333
- raise KeyError ("%s not in index" % keyarr [ mask ] )
2324
+ raise KeyError (f" { keyarr [ mask ] } not in index" )
2334
2325
2335
2326
return indexer , keyarr
2336
2327
@@ -2600,8 +2591,7 @@ def _maybe_to_slice(loc):
2600
2591
keylen = len (key )
2601
2592
if self .nlevels < keylen :
2602
2593
raise KeyError (
2603
- "Key length ({0}) exceeds index depth ({1})"
2604
- "" .format (keylen , self .nlevels )
2594
+ f"Key length ({ keylen } ) exceeds index depth ({ self .nlevels } )"
2605
2595
)
2606
2596
2607
2597
if keylen == self .nlevels and self .is_unique :
@@ -2917,9 +2907,8 @@ def get_locs(self, seq):
2917
2907
true_slices = [i for (i , s ) in enumerate (com .is_true_slices (seq )) if s ]
2918
2908
if true_slices and true_slices [- 1 ] >= self .lexsort_depth :
2919
2909
raise UnsortedIndexError (
2920
- "MultiIndex slicing requires the index "
2921
- "to be lexsorted: slicing on levels {0}, "
2922
- "lexsort depth {1}" .format (true_slices , self .lexsort_depth )
2910
+ "MultiIndex slicing requires the index to be lexsorted: slicing "
2911
+ f"on levels { true_slices } , lexsort depth { self .lexsort_depth } "
2923
2912
)
2924
2913
# indexer
2925
2914
# this is the list of all values that we want to select
@@ -3261,10 +3250,10 @@ def astype(self, dtype, copy=True):
3261
3250
msg = "> 1 ndim Categorical are not supported at this time"
3262
3251
raise NotImplementedError (msg )
3263
3252
elif not is_object_dtype (dtype ):
3264
- msg = (
3265
- "Setting {cls } dtype to anything other than object is not supported "
3266
- ). format ( cls = type ( self ))
3267
- raise TypeError ( msg )
3253
+ raise TypeError (
3254
+ f "Setting { type ( self ) } dtype to anything other "
3255
+ "than object is not supported"
3256
+ )
3268
3257
elif copy is True :
3269
3258
return self ._shallow_copy ()
3270
3259
return self
0 commit comments