Skip to content

Commit 5698462

Browse files
lucassa3jreback
authored andcommitted
format replaced with f-strings (#29701)
1 parent 510bddd commit 5698462

File tree

4 files changed

+24
-46
lines changed

4 files changed

+24
-46
lines changed

Diff for: pandas/core/groupby/generic.py

+5-6
Original file line numberDiff line numberDiff line change
@@ -301,8 +301,7 @@ def _aggregate_multiple_funcs(self, arg):
301301
obj = self
302302
if name in results:
303303
raise SpecificationError(
304-
"Function names must be unique, found multiple named "
305-
"{name}".format(name=name)
304+
f"Function names must be unique, found multiple named {name}"
306305
)
307306

308307
# reset the cache so that we
@@ -588,7 +587,7 @@ def nunique(self, dropna: bool = True) -> Series:
588587
try:
589588
sorter = np.lexsort((val, ids))
590589
except TypeError: # catches object dtypes
591-
msg = "val.dtype must be object, got {}".format(val.dtype)
590+
msg = f"val.dtype must be object, got {val.dtype}"
592591
assert val.dtype == object, msg
593592
val, _ = algorithms.factorize(val, sort=False)
594593
sorter = np.lexsort((val, ids))
@@ -1550,8 +1549,8 @@ def filter(self, func, dropna=True, *args, **kwargs):
15501549
else:
15511550
# non scalars aren't allowed
15521551
raise TypeError(
1553-
"filter function returned a {typ}, "
1554-
"but expected a scalar bool".format(typ=type(res).__name__)
1552+
f"filter function returned a {type(res).__name__}, "
1553+
"but expected a scalar bool"
15551554
)
15561555

15571556
return self._apply_filter(indices, dropna)
@@ -1950,7 +1949,7 @@ def _managle_lambda_list(aggfuncs: Sequence[Any]) -> Sequence[Any]:
19501949
for aggfunc in aggfuncs:
19511950
if com.get_callable_name(aggfunc) == "<lambda>":
19521951
aggfunc = partial(aggfunc)
1953-
aggfunc.__name__ = "<lambda_{}>".format(i)
1952+
aggfunc.__name__ = f"<lambda_{i}>"
19541953
i += 1
19551954
mangled_aggfuncs.append(aggfunc)
19561955

Diff for: pandas/core/groupby/groupby.py

+3-5
Original file line numberDiff line numberDiff line change
@@ -566,9 +566,7 @@ def __getattr__(self, attr):
566566
return self[attr]
567567

568568
raise AttributeError(
569-
"'{typ}' object has no attribute '{attr}'".format(
570-
typ=type(self).__name__, attr=attr
571-
)
569+
f"'{type(self).__name__}' object has no attribute '{attr}'"
572570
)
573571

574572
@Substitution(
@@ -1783,7 +1781,7 @@ def nth(self, n: Union[int, List[int]], dropna: Optional[str] = None) -> DataFra
17831781
raise ValueError(
17841782
"For a DataFrame groupby, dropna must be "
17851783
"either None, 'any' or 'all', "
1786-
"(was passed {dropna}).".format(dropna=dropna)
1784+
f"(was passed {dropna})."
17871785
)
17881786

17891787
# old behaviour, but with all and any support for DataFrames.
@@ -2531,7 +2529,7 @@ def get_groupby(
25312529

25322530
klass = DataFrameGroupBy
25332531
else:
2534-
raise TypeError("invalid type: {obj}".format(obj=obj))
2532+
raise TypeError(f"invalid type: {obj}")
25352533

25362534
return klass(
25372535
obj=obj,

Diff for: pandas/core/groupby/grouper.py

+12-27
Original file line numberDiff line numberDiff line change
@@ -173,9 +173,7 @@ def _set_grouper(self, obj: FrameOrSeries, sort: bool = False):
173173
ax = self._grouper.take(obj.index)
174174
else:
175175
if key not in obj._info_axis:
176-
raise KeyError(
177-
"The grouper name {key} is not found".format(key=key)
178-
)
176+
raise KeyError(f"The grouper name {key} is not found")
179177
ax = Index(obj[key], name=key)
180178

181179
else:
@@ -191,9 +189,7 @@ def _set_grouper(self, obj: FrameOrSeries, sort: bool = False):
191189

192190
else:
193191
if level not in (0, ax.name):
194-
raise ValueError(
195-
"The level {level} is not valid".format(level=level)
196-
)
192+
raise ValueError(f"The level {level} is not valid")
197193

198194
# possibly sort
199195
if (self.sort or sort) and not ax.is_monotonic:
@@ -212,13 +208,13 @@ def groups(self):
212208

213209
def __repr__(self) -> str:
214210
attrs_list = (
215-
"{name}={val!r}".format(name=attr_name, val=getattr(self, attr_name))
211+
f"{attr_name}={getattr(self, attr_name)!r}"
216212
for attr_name in self._attributes
217213
if getattr(self, attr_name) is not None
218214
)
219215
attrs = ", ".join(attrs_list)
220216
cls_name = self.__class__.__name__
221-
return "{cls}({attrs})".format(cls=cls_name, attrs=attrs)
217+
return f"{cls_name}({attrs})"
222218

223219

224220
class Grouping:
@@ -280,9 +276,7 @@ def __init__(
280276
if level is not None:
281277
if not isinstance(level, int):
282278
if level not in index.names:
283-
raise AssertionError(
284-
"Level {level} not in index".format(level=level)
285-
)
279+
raise AssertionError(f"Level {level} not in index")
286280
level = index.names.index(level)
287281

288282
if self.name is None:
@@ -350,17 +344,16 @@ def __init__(
350344
):
351345
if getattr(self.grouper, "ndim", 1) != 1:
352346
t = self.name or str(type(self.grouper))
353-
raise ValueError("Grouper for '{t}' not 1-dimensional".format(t=t))
347+
raise ValueError(f"Grouper for '{t}' not 1-dimensional")
354348
self.grouper = self.index.map(self.grouper)
355349
if not (
356350
hasattr(self.grouper, "__len__")
357351
and len(self.grouper) == len(self.index)
358352
):
353+
grper = pprint_thing(self.grouper)
359354
errmsg = (
360355
"Grouper result violates len(labels) == "
361-
"len(data)\nresult: {grper}".format(
362-
grper=pprint_thing(self.grouper)
363-
)
356+
f"len(data)\nresult: {grper}"
364357
)
365358
self.grouper = None # Try for sanity
366359
raise AssertionError(errmsg)
@@ -375,7 +368,7 @@ def __init__(
375368
self.grouper = self.grouper.astype("timedelta64[ns]")
376369

377370
def __repr__(self) -> str:
378-
return "Grouping({name})".format(name=self.name)
371+
return f"Grouping({self.name})"
379372

380373
def __iter__(self):
381374
return iter(self.indices)
@@ -500,11 +493,7 @@ def get_grouper(
500493

501494
if isinstance(level, str):
502495
if obj.index.name != level:
503-
raise ValueError(
504-
"level name {level} is not the name of the index".format(
505-
level=level
506-
)
507-
)
496+
raise ValueError(f"level name {level} is not the name of the index")
508497
elif level > 0 or level < -1:
509498
raise ValueError("level > 0 or level < -1 only valid with MultiIndex")
510499

@@ -636,12 +625,8 @@ def is_in_obj(gpr) -> bool:
636625

637626
if is_categorical_dtype(gpr) and len(gpr) != obj.shape[axis]:
638627
raise ValueError(
639-
(
640-
"Length of grouper ({len_gpr}) and axis ({len_axis})"
641-
" must be same length".format(
642-
len_gpr=len(gpr), len_axis=obj.shape[axis]
643-
)
644-
)
628+
f"Length of grouper ({len(gpr)}) and axis ({obj.shape[axis]})"
629+
" must be same length"
645630
)
646631

647632
# create the Grouping

Diff for: pandas/core/groupby/ops.py

+4-8
Original file line numberDiff line numberDiff line change
@@ -452,18 +452,16 @@ def _cython_operation(
452452
# categoricals are only 1d, so we
453453
# are not setup for dim transforming
454454
if is_categorical_dtype(values) or is_sparse(values):
455-
raise NotImplementedError(
456-
"{dtype} dtype not supported".format(dtype=values.dtype)
457-
)
455+
raise NotImplementedError(f"{values.dtype} dtype not supported")
458456
elif is_datetime64_any_dtype(values):
459457
if how in ["add", "prod", "cumsum", "cumprod"]:
460458
raise NotImplementedError(
461-
"datetime64 type does not support {how} operations".format(how=how)
459+
f"datetime64 type does not support {how} operations"
462460
)
463461
elif is_timedelta64_dtype(values):
464462
if how in ["prod", "cumprod"]:
465463
raise NotImplementedError(
466-
"timedelta64 type does not support {how} operations".format(how=how)
464+
f"timedelta64 type does not support {how} operations"
467465
)
468466

469467
if is_datetime64tz_dtype(values.dtype):
@@ -516,9 +514,7 @@ def _cython_operation(
516514
out_dtype = "float"
517515
else:
518516
if is_numeric:
519-
out_dtype = "{kind}{itemsize}".format(
520-
kind=values.dtype.kind, itemsize=values.dtype.itemsize
521-
)
517+
out_dtype = f"{values.dtype.kind}{values.dtype.itemsize}"
522518
else:
523519
out_dtype = "object"
524520

0 commit comments

Comments
 (0)