@@ -232,7 +232,7 @@ def _format_trace_value(value, maxlen):
232
232
s = bbrepr (value ).replace ("\\ '" , "'" )
233
233
if len (s ) > maxlen :
234
234
try :
235
- suffix = '... (len=%s)' % len (value )
235
+ suffix = f '... (len={ len (value )} )'
236
236
except Exception :
237
237
suffix = '...'
238
238
s = s [:maxlen - len (suffix )] + suffix
@@ -351,7 +351,7 @@ def get_message(self):
351
351
352
352
def __repr__ (self ):
353
353
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} )'
355
355
356
356
357
357
class PathAssignError (GlomError ):
@@ -381,7 +381,7 @@ def get_message(self):
381
381
382
382
def __repr__ (self ):
383
383
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} )'
385
385
386
386
387
387
class CoalesceError (GlomError ):
@@ -422,22 +422,22 @@ def __init__(self, coal_obj, skipped, path):
422
422
423
423
def __repr__ (self ):
424
424
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} )'
426
426
427
427
def get_message (self ):
428
428
missed_specs = tuple (self .coal_obj .subspecs )
429
429
skipped_vals = [v .__class__ .__name__
430
430
if isinstance (v , self .coal_obj .skip_exc )
431
- else '<skipped %s>' % v .__class__ .__name__
431
+ else f '<skipped { v .__class__ .__name__ } >'
432
432
for v in self .skipped ]
433
433
msg = ('no valid values found. Tried %r and got (%s)'
434
434
% (missed_specs , ', ' .join (skipped_vals )))
435
435
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 } '
437
437
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 } '
439
439
if self .path is not None :
440
- msg += ' (at path {!r})' . format ( self . path )
440
+ msg += f ' (at path { self . path !r} )'
441
441
return msg
442
442
443
443
@@ -488,11 +488,11 @@ def get_message(self):
488
488
return ("glom() called without registering any types for operation '%s'. see"
489
489
" glom.register() or Glommer's constructor for details." % (self .op ,))
490
490
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 )} )" )
492
492
msg = ("target type %r not registered for '%s', expected one of"
493
493
" registered types: %s" % (self .target_type .__name__ , self .op , reg_types_str ))
494
494
if self .path :
495
- msg += ' (at {!r})' . format ( self . path )
495
+ msg += f ' (at { self . path !r} )'
496
496
return msg
497
497
498
498
@@ -557,21 +557,21 @@ def format_invocation(name='', args=(), kwargs=None, **kw):
557
557
"""
558
558
_repr = kw .pop ('repr' , bbrepr )
559
559
if kw :
560
- raise TypeError (' unexpected keyword args: %r' % ' , ' .join (kw .keys ()))
560
+ raise TypeError (f" unexpected keyword args: { ' , ' .join (kw .keys ())!r } " )
561
561
kwargs = kwargs or {}
562
562
a_text = ', ' .join ([_repr (a ) for a in args ])
563
563
if isinstance (kwargs , dict ):
564
564
kwarg_items = [(k , kwargs [k ]) for k in sorted (kwargs )]
565
565
else :
566
566
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 ])
568
568
569
569
all_args_text = a_text
570
570
if all_args_text and kw_text :
571
571
all_args_text += ', '
572
572
all_args_text += kw_text
573
573
574
- return '{ }({})'. format ( name , all_args_text )
574
+ return f' { name } ({ all_args_text } )'
575
575
576
576
577
577
class Path :
@@ -819,8 +819,8 @@ def glomit(self, target, scope):
819
819
def __repr__ (self ):
820
820
cn = self .__class__ .__name__
821
821
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 )} )'
824
824
825
825
826
826
class Coalesce :
@@ -914,7 +914,7 @@ def __init__(self, *subspecs, **kwargs):
914
914
self .skip_func = lambda v : v == self .skip
915
915
self .skip_exc = kwargs .pop ('skip_exc' , GlomError )
916
916
if kwargs :
917
- raise TypeError ('unexpected keyword args: {!r}' . format ( sorted (kwargs .keys ())) )
917
+ raise TypeError (f 'unexpected keyword args: { sorted (kwargs .keys ())!r } ' )
918
918
919
919
def glomit (self , target , scope ):
920
920
skipped = []
@@ -996,13 +996,13 @@ def __init__(self, *a, **kw):
996
996
if breakpoint is True :
997
997
breakpoint = pdb .set_trace
998
998
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 } ' )
1000
1000
self .breakpoint = breakpoint
1001
1001
post_mortem = kw .pop ('post_mortem' , False )
1002
1002
if post_mortem is True :
1003
1003
post_mortem = pdb .post_mortem
1004
1004
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 } ' )
1006
1006
self .post_mortem = post_mortem
1007
1007
1008
1008
def __repr__ (self ):
@@ -1096,7 +1096,7 @@ def glomit(self, target, scope):
1096
1096
1097
1097
def __repr__ (self ):
1098
1098
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} )'
1100
1100
1101
1101
1102
1102
def _is_spec (obj , strict = False ):
@@ -1439,7 +1439,7 @@ def __getitem__(self, item):
1439
1439
def __call__ (self , * args , ** kwargs ):
1440
1440
if self is S :
1441
1441
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} ' )
1443
1443
if not kwargs :
1444
1444
raise TypeError ('S() expected at least one kwarg, got none' )
1445
1445
# TODO: typecheck kwarg vals?
@@ -1733,7 +1733,7 @@ def _format_t(path, root=T):
1733
1733
index = ", " .join ([_format_slice (x ) for x in arg ])
1734
1734
else :
1735
1735
index = _format_slice (arg )
1736
- prepr .append ("[{}]" . format ( index ) )
1736
+ prepr .append (f "[{ index } ]" )
1737
1737
elif op == '(' :
1738
1738
args , kwargs = arg
1739
1739
prepr .append (format_invocation (args = args , kwargs = kwargs , repr = bbrepr ))
@@ -1788,7 +1788,7 @@ def glomit(self, target, scope):
1788
1788
1789
1789
def __repr__ (self ):
1790
1790
cn = self .__class__ .__name__
1791
- return '{ }({})' . format ( cn , bbrepr (self .value ))
1791
+ return f' { cn } ({ bbrepr (self .value )} )'
1792
1792
1793
1793
1794
1794
Literal = Val # backwards compat for pre-20.7.0
@@ -1812,7 +1812,7 @@ def __iter__(self):
1812
1812
return iter (self .__dict__ .items ())
1813
1813
1814
1814
def __repr__ (self ):
1815
- return "{}({})" . format ( self .__class__ .__name__ , bbrepr (self .__dict__ ))
1815
+ return f" { self .__class__ .__name__ } ( { bbrepr (self .__dict__ )} )"
1816
1816
1817
1817
1818
1818
class Vars :
@@ -1885,7 +1885,7 @@ def glomit(self, target, scope):
1885
1885
def __repr__ (self ):
1886
1886
cn = self .__class__ .__name__
1887
1887
rpr = '' if self .spec is None else bbrepr (self .spec )
1888
- return '{ }({})'. format ( cn , rpr )
1888
+ return f' { cn } ({ rpr } )'
1889
1889
1890
1890
1891
1891
class _AbstractIterable (_AbstractIterableBase ):
@@ -2093,7 +2093,7 @@ def _register_fuzzy_type(self, op, new_type, _type_tree=None):
2093
2093
2094
2094
def register (self , target_type , ** kwargs ):
2095
2095
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} ' )
2097
2097
exact = kwargs .pop ('exact' , None )
2098
2098
new_op_map = dict (kwargs )
2099
2099
@@ -2139,11 +2139,11 @@ def register_op(self, op_name, auto_func=None, exact=False):
2139
2139
extensions.
2140
2140
"""
2141
2141
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} ' )
2143
2143
if auto_func is None :
2144
2144
auto_func = lambda t : False
2145
2145
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} ' )
2147
2147
2148
2148
# determine support for any previously known types
2149
2149
known_types = set (sum ([list (m .keys ()) for m
@@ -2268,7 +2268,7 @@ def glom(target, spec, **kwargs):
2268
2268
scope .update (kwargs .pop ('scope' , {}))
2269
2269
err = None
2270
2270
if kwargs :
2271
- raise TypeError ('unexpected keyword args: %r' % sorted (kwargs .keys ()))
2271
+ raise TypeError (f 'unexpected keyword args: { sorted (kwargs .keys ())!r } ' )
2272
2272
try :
2273
2273
try :
2274
2274
ret = _glom (target , spec , scope )
@@ -2537,7 +2537,7 @@ def fill(self, target):
2537
2537
def __repr__ (self ):
2538
2538
cn = self .__class__ .__name__
2539
2539
rpr = '' if self .spec is None else bbrepr (self .spec )
2540
- return '{ }({})'. format ( cn , rpr )
2540
+ return f' { cn } ({ rpr } )'
2541
2541
2542
2542
2543
2543
def FILL (target , spec , scope ):
0 commit comments