Skip to content

Commit 66845c3

Browse files
committed
Use f-strings
1 parent f64d4f8 commit 66845c3

9 files changed

+74
-75
lines changed

glom/cli.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ def glom_cli(target, spec, indent, debug, inspect):
6464
try:
6565
result = glom.glom(target, spec)
6666
except GlomError as ge:
67-
print('{}: {}'.format(ge.__class__.__name__, ge))
67+
print(f'{ge.__class__.__name__}: {ge}')
6868
return 1
6969

7070
if not indent:
@@ -172,7 +172,7 @@ def mw_get_target(next_, posargs_, target_file, target_format, spec_file, spec_f
172172
with open(spec_file) as f:
173173
spec_text = f.read()
174174
except OSError as ose:
175-
raise UsageError('could not read spec file {!r}, got: {}'.format(spec_file, ose))
175+
raise UsageError(f'could not read spec file {spec_file!r}, got: {ose}')
176176

177177
if not spec_text:
178178
spec = Path()
@@ -196,7 +196,7 @@ def mw_get_target(next_, posargs_, target_file, target_format, spec_file, spec_f
196196
try:
197197
target_text = open(target_file).read()
198198
except OSError as ose:
199-
raise UsageError('could not read target file {!r}, got: {}'.format(target_file, ose))
199+
raise UsageError(f'could not read target file {target_file!r}, got: {ose}')
200200
elif not target_text and not isatty(sys.stdin):
201201
target_text = sys.stdin.read()
202202

@@ -217,7 +217,7 @@ def _from_glom_import_star():
217217

218218
def _eval_python_full_spec(py_text):
219219
name = '__cli_glom_spec__'
220-
code_str = '{} = {}'.format(name, py_text)
220+
code_str = f'{name} = {py_text}'
221221
env = _from_glom_import_star()
222222
spec = _compile_code(code_str, name=name, env=env)
223223
return spec

glom/core.py

+29-29
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ def _format_trace_value(value, maxlen):
232232
s = bbrepr(value).replace("\\'", "'")
233233
if len(s) > maxlen:
234234
try:
235-
suffix = '... (len=%s)' % len(value)
235+
suffix = f'... (len={len(value)})'
236236
except Exception:
237237
suffix = '...'
238238
s = s[:maxlen - len(suffix)] + suffix
@@ -351,7 +351,7 @@ def get_message(self):
351351

352352
def __repr__(self):
353353
cn = self.__class__.__name__
354-
return '{}({!r}, {!r}, {!r})'.format(cn, self.exc, self.path, self.part_idx)
354+
return f'{cn}({self.exc!r}, {self.path!r}, {self.part_idx!r})'
355355

356356

357357
class PathAssignError(GlomError):
@@ -381,7 +381,7 @@ def get_message(self):
381381

382382
def __repr__(self):
383383
cn = self.__class__.__name__
384-
return '{}({!r}, {!r}, {!r})'.format(cn, self.exc, self.path, self.dest_name)
384+
return f'{cn}({self.exc!r}, {self.path!r}, {self.dest_name!r})'
385385

386386

387387
class CoalesceError(GlomError):
@@ -422,22 +422,22 @@ def __init__(self, coal_obj, skipped, path):
422422

423423
def __repr__(self):
424424
cn = self.__class__.__name__
425-
return '{}({!r}, {!r}, {!r})'.format(cn, self.coal_obj, self.skipped, self.path)
425+
return f'{cn}({self.coal_obj!r}, {self.skipped!r}, {self.path!r})'
426426

427427
def get_message(self):
428428
missed_specs = tuple(self.coal_obj.subspecs)
429429
skipped_vals = [v.__class__.__name__
430430
if isinstance(v, self.coal_obj.skip_exc)
431-
else '<skipped %s>' % v.__class__.__name__
431+
else f'<skipped {v.__class__.__name__}>'
432432
for v in self.skipped]
433433
msg = ('no valid values found. Tried %r and got (%s)'
434434
% (missed_specs, ', '.join(skipped_vals)))
435435
if self.coal_obj.skip is not _MISSING:
436-
msg += ', skip set to {!r}'.format(self.coal_obj.skip)
436+
msg += f', skip set to {self.coal_obj.skip!r}'
437437
if self.coal_obj.skip_exc is not GlomError:
438-
msg += ', skip_exc set to {!r}'.format(self.coal_obj.skip_exc)
438+
msg += f', skip_exc set to {self.coal_obj.skip_exc!r}'
439439
if self.path is not None:
440-
msg += ' (at path {!r})'.format(self.path)
440+
msg += f' (at path {self.path!r})'
441441
return msg
442442

443443

@@ -488,11 +488,11 @@ def get_message(self):
488488
return ("glom() called without registering any types for operation '%s'. see"
489489
" glom.register() or Glommer's constructor for details." % (self.op,))
490490
reg_types = sorted([t.__name__ for t, h in self.type_map.items() if h])
491-
reg_types_str = '()' if not reg_types else ('(%s)' % ', '.join(reg_types))
491+
reg_types_str = '()' if not reg_types else (f"({', '.join(reg_types)})")
492492
msg = ("target type %r not registered for '%s', expected one of"
493493
" registered types: %s" % (self.target_type.__name__, self.op, reg_types_str))
494494
if self.path:
495-
msg += ' (at {!r})'.format(self.path)
495+
msg += f' (at {self.path!r})'
496496
return msg
497497

498498

@@ -557,21 +557,21 @@ def format_invocation(name='', args=(), kwargs=None, **kw):
557557
"""
558558
_repr = kw.pop('repr', bbrepr)
559559
if kw:
560-
raise TypeError('unexpected keyword args: %r' % ', '.join(kw.keys()))
560+
raise TypeError(f"unexpected keyword args: {', '.join(kw.keys())!r}")
561561
kwargs = kwargs or {}
562562
a_text = ', '.join([_repr(a) for a in args])
563563
if isinstance(kwargs, dict):
564564
kwarg_items = [(k, kwargs[k]) for k in sorted(kwargs)]
565565
else:
566566
kwarg_items = kwargs
567-
kw_text = ', '.join(['{}={}'.format(k, _repr(v)) for k, v in kwarg_items])
567+
kw_text = ', '.join([f'{k}={_repr(v)}' for k, v in kwarg_items])
568568

569569
all_args_text = a_text
570570
if all_args_text and kw_text:
571571
all_args_text += ', '
572572
all_args_text += kw_text
573573

574-
return '{}({})'.format(name, all_args_text)
574+
return f'{name}({all_args_text})'
575575

576576

577577
class Path:
@@ -819,8 +819,8 @@ def glomit(self, target, scope):
819819
def __repr__(self):
820820
cn = self.__class__.__name__
821821
if self.scope:
822-
return '{}({}, scope={!r})'.format(cn, bbrepr(self.spec), self.scope)
823-
return '{}({})'.format(cn, bbrepr(self.spec))
822+
return f'{cn}({bbrepr(self.spec)}, scope={self.scope!r})'
823+
return f'{cn}({bbrepr(self.spec)})'
824824

825825

826826
class Coalesce:
@@ -914,7 +914,7 @@ def __init__(self, *subspecs, **kwargs):
914914
self.skip_func = lambda v: v == self.skip
915915
self.skip_exc = kwargs.pop('skip_exc', GlomError)
916916
if kwargs:
917-
raise TypeError('unexpected keyword args: {!r}'.format(sorted(kwargs.keys())))
917+
raise TypeError(f'unexpected keyword args: {sorted(kwargs.keys())!r}')
918918

919919
def glomit(self, target, scope):
920920
skipped = []
@@ -996,13 +996,13 @@ def __init__(self, *a, **kw):
996996
if breakpoint is True:
997997
breakpoint = pdb.set_trace
998998
if breakpoint and not callable(breakpoint):
999-
raise TypeError('breakpoint expected bool or callable, not: %r' % breakpoint)
999+
raise TypeError(f'breakpoint expected bool or callable, not: {breakpoint!r}')
10001000
self.breakpoint = breakpoint
10011001
post_mortem = kw.pop('post_mortem', False)
10021002
if post_mortem is True:
10031003
post_mortem = pdb.post_mortem
10041004
if post_mortem and not callable(post_mortem):
1005-
raise TypeError('post_mortem expected bool or callable, not: %r' % post_mortem)
1005+
raise TypeError(f'post_mortem expected bool or callable, not: {post_mortem!r}')
10061006
self.post_mortem = post_mortem
10071007

10081008
def __repr__(self):
@@ -1096,7 +1096,7 @@ def glomit(self, target, scope):
10961096

10971097
def __repr__(self):
10981098
cn = self.__class__.__name__
1099-
return '{}({}, args={!r}, kwargs={!r})'.format(cn, bbrepr(self.func), self.args, self.kwargs)
1099+
return f'{cn}({bbrepr(self.func)}, args={self.args!r}, kwargs={self.kwargs!r})'
11001100

11011101

11021102
def _is_spec(obj, strict=False):
@@ -1439,7 +1439,7 @@ def __getitem__(self, item):
14391439
def __call__(self, *args, **kwargs):
14401440
if self is S:
14411441
if args:
1442-
raise TypeError('S() takes no positional arguments, got: {!r}'.format(args))
1442+
raise TypeError(f'S() takes no positional arguments, got: {args!r}')
14431443
if not kwargs:
14441444
raise TypeError('S() expected at least one kwarg, got none')
14451445
# TODO: typecheck kwarg vals?
@@ -1733,7 +1733,7 @@ def _format_t(path, root=T):
17331733
index = ", ".join([_format_slice(x) for x in arg])
17341734
else:
17351735
index = _format_slice(arg)
1736-
prepr.append("[{}]".format(index))
1736+
prepr.append(f"[{index}]")
17371737
elif op == '(':
17381738
args, kwargs = arg
17391739
prepr.append(format_invocation(args=args, kwargs=kwargs, repr=bbrepr))
@@ -1788,7 +1788,7 @@ def glomit(self, target, scope):
17881788

17891789
def __repr__(self):
17901790
cn = self.__class__.__name__
1791-
return '{}({})'.format(cn, bbrepr(self.value))
1791+
return f'{cn}({bbrepr(self.value)})'
17921792

17931793

17941794
Literal = Val # backwards compat for pre-20.7.0
@@ -1812,7 +1812,7 @@ def __iter__(self):
18121812
return iter(self.__dict__.items())
18131813

18141814
def __repr__(self):
1815-
return "{}({})".format(self.__class__.__name__, bbrepr(self.__dict__))
1815+
return f"{self.__class__.__name__}({bbrepr(self.__dict__)})"
18161816

18171817

18181818
class Vars:
@@ -1885,7 +1885,7 @@ def glomit(self, target, scope):
18851885
def __repr__(self):
18861886
cn = self.__class__.__name__
18871887
rpr = '' if self.spec is None else bbrepr(self.spec)
1888-
return '{}({})'.format(cn, rpr)
1888+
return f'{cn}({rpr})'
18891889

18901890

18911891
class _AbstractIterable(_AbstractIterableBase):
@@ -2093,7 +2093,7 @@ def _register_fuzzy_type(self, op, new_type, _type_tree=None):
20932093

20942094
def register(self, target_type, **kwargs):
20952095
if not isinstance(target_type, type):
2096-
raise TypeError('register expected a type, not an instance: {!r}'.format(target_type))
2096+
raise TypeError(f'register expected a type, not an instance: {target_type!r}')
20972097
exact = kwargs.pop('exact', None)
20982098
new_op_map = dict(kwargs)
20992099

@@ -2139,11 +2139,11 @@ def register_op(self, op_name, auto_func=None, exact=False):
21392139
extensions.
21402140
"""
21412141
if not isinstance(op_name, basestring):
2142-
raise TypeError('expected op_name to be a text name, not: {!r}'.format(op_name))
2142+
raise TypeError(f'expected op_name to be a text name, not: {op_name!r}')
21432143
if auto_func is None:
21442144
auto_func = lambda t: False
21452145
elif not callable(auto_func):
2146-
raise TypeError('expected auto_func to be callable, not: {!r}'.format(auto_func))
2146+
raise TypeError(f'expected auto_func to be callable, not: {auto_func!r}')
21472147

21482148
# determine support for any previously known types
21492149
known_types = set(sum([list(m.keys()) for m
@@ -2268,7 +2268,7 @@ def glom(target, spec, **kwargs):
22682268
scope.update(kwargs.pop('scope', {}))
22692269
err = None
22702270
if kwargs:
2271-
raise TypeError('unexpected keyword args: %r' % sorted(kwargs.keys()))
2271+
raise TypeError(f'unexpected keyword args: {sorted(kwargs.keys())!r}')
22722272
try:
22732273
try:
22742274
ret = _glom(target, spec, scope)
@@ -2537,7 +2537,7 @@ def fill(self, target):
25372537
def __repr__(self):
25382538
cn = self.__class__.__name__
25392539
rpr = '' if self.spec is None else bbrepr(self.spec)
2540-
return '{}({})'.format(cn, rpr)
2540+
return f'{cn}({rpr})'
25412541

25422542

25432543
def FILL(target, spec, scope):

glom/grouping.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ def glomit(self, target, scope):
9292

9393
def __repr__(self):
9494
cn = self.__class__.__name__
95-
return '{}({!r})'.format(cn, self.spec)
95+
return f'{cn}({self.spec!r})'
9696

9797

9898
def GROUP(target, spec, scope):
@@ -171,7 +171,7 @@ def agg(self, target, tree):
171171
return STOP
172172

173173
def __repr__(self):
174-
return '%s()' % self.__class__.__name__
174+
return f'{self.__class__.__name__}()'
175175

176176

177177
class Avg:
@@ -195,7 +195,7 @@ def agg(self, target, tree):
195195
return avg_acc[0] / avg_acc[1]
196196

197197
def __repr__(self):
198-
return '%s()' % self.__class__.__name__
198+
return f'{self.__class__.__name__}()'
199199

200200

201201
class Max:
@@ -214,7 +214,7 @@ def agg(self, target, tree):
214214
return tree[self]
215215

216216
def __repr__(self):
217-
return '%s()' % self.__class__.__name__
217+
return f'{self.__class__.__name__}()'
218218

219219

220220
class Min:
@@ -233,7 +233,7 @@ def agg(self, target, tree):
233233
return tree[self]
234234

235235
def __repr__(self):
236-
return '%s()' % self.__class__.__name__
236+
return f'{self.__class__.__name__}()'
237237

238238

239239
class Sample:
@@ -270,7 +270,7 @@ def agg(self, target, tree):
270270
return sample
271271

272272
def __repr__(self):
273-
return '{}({!r})'.format(self.__class__.__name__, self.size)
273+
return f'{self.__class__.__name__}({self.size!r})'
274274

275275

276276

@@ -313,4 +313,4 @@ def glomit(self, target, scope):
313313
return scope[glom](target, self.subspec, scope)
314314

315315
def __repr__(self):
316-
return '{}({!r}, {!r})'.format(self.__class__.__name__, self.n, self.subspec)
316+
return f'{self.__class__.__name__}({self.n!r}, {self.subspec!r})'

0 commit comments

Comments
 (0)