@@ -54,7 +54,7 @@ def signature(obj):
54
54
"""Get a signature object for the passed callable."""
55
55
56
56
if not callable (obj ):
57
- raise TypeError ("{ !r} is not a callable object". format ( obj ) )
57
+ raise TypeError (f" { obj !r} is not a callable object" )
58
58
59
59
if isinstance (obj , types .MethodType ):
60
60
sig = signature (obj .__func__ )
@@ -101,7 +101,7 @@ def signature(obj):
101
101
try :
102
102
ba = sig .bind_partial (* partial_args , ** partial_keywords )
103
103
except TypeError as ex :
104
- msg = "partial object {!r} has incorrect arguments" . format ( obj )
104
+ msg = f "partial object { obj !r} has incorrect arguments"
105
105
raise ValueError (msg )
106
106
107
107
for arg_name , arg_value in ba .arguments .items ():
@@ -171,10 +171,10 @@ def signature(obj):
171
171
172
172
if isinstance (obj , types .BuiltinFunctionType ):
173
173
# Raise a nicer error message for builtins
174
- msg = "no signature found for builtin function {!r}" . format ( obj )
174
+ msg = f "no signature found for builtin function { obj !r} "
175
175
raise ValueError (msg )
176
176
177
- raise ValueError ("callable {!r} is not supported by signature" . format ( obj ) )
177
+ raise ValueError (f "callable { obj !r} is not supported by signature" )
178
178
179
179
180
180
class _void (object ):
@@ -195,7 +195,7 @@ def __str__(self):
195
195
return self ._name
196
196
197
197
def __repr__ (self ):
198
- return "<_ParameterKind: {!r}>" . format ( self . _name )
198
+ return f "<_ParameterKind: { self . _name !r} >"
199
199
200
200
201
201
_POSITIONAL_ONLY = _ParameterKind (0 , name = "POSITIONAL_ONLY" )
@@ -249,7 +249,7 @@ def __init__(
249
249
250
250
if default is not _empty :
251
251
if kind in (_VAR_POSITIONAL , _VAR_KEYWORD ):
252
- msg = "{ } parameters cannot have default values". format ( kind )
252
+ msg = f" { kind } parameters cannot have default values"
253
253
raise ValueError (msg )
254
254
self ._default = default
255
255
self ._annotation = annotation
@@ -263,7 +263,7 @@ def __init__(
263
263
else :
264
264
name = str (name )
265
265
if kind != _POSITIONAL_ONLY and not re .match (r"[a-z_]\w*$" , name , re .I ):
266
- msg = "{ !r} is not a valid parameter name". format ( name )
266
+ msg = f" { name !r} is not a valid parameter name"
267
267
raise ValueError (msg )
268
268
self ._name = name
269
269
@@ -325,14 +325,14 @@ def __str__(self):
325
325
if kind == _POSITIONAL_ONLY :
326
326
if formatted is None :
327
327
formatted = ""
328
- formatted = "<{}>" . format ( formatted )
328
+ formatted = f "<{ formatted } >"
329
329
330
330
# Add annotation and default value
331
331
if self ._annotation is not _empty :
332
- formatted = "{ }:{}" . format ( formatted , formatannotation (self ._annotation ))
332
+ formatted = f" { formatted } :{ formatannotation (self ._annotation )} "
333
333
334
334
if self ._default is not _empty :
335
- formatted = "{ }={}" . format ( formatted , repr (self ._default ))
335
+ formatted = f" { formatted } ={ repr (self ._default )} "
336
336
337
337
if kind == _VAR_POSITIONAL :
338
338
formatted = "*" + formatted
@@ -342,10 +342,10 @@ def __str__(self):
342
342
return formatted
343
343
344
344
def __repr__ (self ):
345
- return "<{} at {:#x} {!r}>" . format ( self . __class__ . __name__ , id ( self ), self . name )
345
+ return f "<{ self . __class__ . __name__ } at { id ( self ) :#x} { self . name !r} >"
346
346
347
347
def __hash__ (self ):
348
- msg = "unhashable type: '{}'" . format ( self .__class__ .__name__ )
348
+ msg = f "unhashable type: '{ self .__class__ .__name__ } '"
349
349
raise TypeError (msg )
350
350
351
351
def __eq__ (self , other ):
@@ -442,7 +442,7 @@ def kwargs(self):
442
442
return kwargs
443
443
444
444
def __hash__ (self ):
445
- msg = "unhashable type: '{}'" . format ( self .__class__ .__name__ )
445
+ msg = f "unhashable type: '{ self .__class__ .__name__ } '"
446
446
raise TypeError (msg )
447
447
448
448
def __eq__ (self , other ):
@@ -501,8 +501,7 @@ def __init__(
501
501
for idx , param in enumerate (parameters ):
502
502
kind = param .kind
503
503
if kind < top_kind :
504
- msg = "wrong parameter order: {0} before {1}"
505
- msg = msg .format (top_kind , param .kind )
504
+ msg = f"wrong parameter order: { top_kind } before { param .kind } "
506
505
raise ValueError (msg )
507
506
else :
508
507
top_kind = kind
@@ -513,7 +512,7 @@ def __init__(
513
512
param = param .replace (name = name )
514
513
515
514
if name in params :
516
- msg = "duplicate parameter name: {!r}" . format ( name )
515
+ msg = f "duplicate parameter name: { name !r} "
517
516
raise ValueError (msg )
518
517
params [name ] = param
519
518
else :
@@ -527,7 +526,7 @@ def from_function(cls, func):
527
526
"""Constructs Signature for the given python function"""
528
527
529
528
if not isinstance (func , types .FunctionType ):
530
- raise TypeError ("{ !r} is not a Python function". format ( func ) )
529
+ raise TypeError (f" { func !r} is not a Python function" )
531
530
532
531
Parameter = cls ._parameter_cls
533
532
@@ -631,7 +630,7 @@ def replace(self, parameters=_void, return_annotation=_void):
631
630
return type (self )(parameters , return_annotation = return_annotation )
632
631
633
632
def __hash__ (self ):
634
- msg = "unhashable type: '{}'" . format ( self .__class__ .__name__ )
633
+ msg = f "unhashable type: '{ self .__class__ .__name__ } '"
635
634
raise TypeError (msg )
636
635
637
636
def __eq__ (self , other ):
@@ -708,10 +707,9 @@ def _bind(self, args, kwargs, partial=False):
708
707
elif param .name in kwargs :
709
708
if param .kind == _POSITIONAL_ONLY :
710
709
msg = (
711
- "{arg !r} parameter is positional only, "
710
+ f" { param . name !r} parameter is positional only, "
712
711
"but was passed as a keyword"
713
712
)
714
- msg = msg .format (arg = param .name )
715
713
raise TypeError (msg )
716
714
parameters_ex = (param ,)
717
715
break
@@ -726,8 +724,7 @@ def _bind(self, args, kwargs, partial=False):
726
724
parameters_ex = (param ,)
727
725
break
728
726
else :
729
- msg = "{arg!r} parameter lacking default value"
730
- msg = msg .format (arg = param .name )
727
+ msg = f"{ param .name !r} parameter lacking default value"
731
728
raise TypeError (msg )
732
729
else :
733
730
# We have a positional argument to process
@@ -752,8 +749,7 @@ def _bind(self, args, kwargs, partial=False):
752
749
753
750
if param .name in kwargs :
754
751
raise TypeError (
755
- "multiple values for argument "
756
- "{arg!r}" .format (arg = param .name )
752
+ f"multiple values for argument { param .name !r} "
757
753
)
758
754
759
755
arguments [param .name ] = arg_val
@@ -767,8 +763,8 @@ def _bind(self, args, kwargs, partial=False):
767
763
# Signature object (but let's have this check here
768
764
# to ensure correct behaviour just in case)
769
765
raise TypeError (
770
- "{arg !r} parameter is positional only, "
771
- "but was passed as a keyword" . format ( arg = param . name )
766
+ f" { param . name !r} parameter is positional only, "
767
+ "but was passed as a keyword"
772
768
)
773
769
774
770
if param .kind == _VAR_KEYWORD :
@@ -789,9 +785,7 @@ def _bind(self, args, kwargs, partial=False):
789
785
and param .kind != _VAR_POSITIONAL
790
786
and param .default is _empty
791
787
):
792
- raise TypeError (
793
- "{arg!r} parameter lacking default value" .format (arg = param_name )
794
- )
788
+ raise TypeError (f"{ param_name !r} parameter lacking default value" )
795
789
796
790
else :
797
791
arguments [param_name ] = arg_val
@@ -841,10 +835,10 @@ def __str__(self):
841
835
842
836
result .append (formatted )
843
837
844
- rendered = "({})" . format ( ", " .join (result ))
838
+ rendered = f "({ ', ' .join (result )} )"
845
839
846
840
if self .return_annotation is not _empty :
847
841
anno = formatannotation (self .return_annotation )
848
- rendered += " -> {}" . format ( anno )
842
+ rendered += f " -> { anno } "
849
843
850
844
return rendered
0 commit comments