@@ -3044,14 +3044,9 @@ def foo(a=1, b=2, c=3):
3044
3044
self .assertEqual (_foo (* ba .args , ** ba .kwargs ), (12 , 10 , 20 ))
3045
3045
3046
3046
3047
- def foo (a , b , c , d , ** kwargs ):
3047
+ def foo (a , b , / , c , d , ** kwargs ):
3048
3048
pass
3049
3049
sig = inspect .signature (foo )
3050
- params = sig .parameters .copy ()
3051
- params ['a' ] = params ['a' ].replace (kind = Parameter .POSITIONAL_ONLY )
3052
- params ['b' ] = params ['b' ].replace (kind = Parameter .POSITIONAL_ONLY )
3053
- foo .__signature__ = inspect .Signature (params .values ())
3054
- sig = inspect .signature (foo )
3055
3050
self .assertEqual (str (sig ), '(a, b, /, c, d, **kwargs)' )
3056
3051
3057
3052
self .assertEqual (self .signature (partial (foo , 1 )),
@@ -3556,14 +3551,9 @@ def test_signature_str_positional_only(self):
3556
3551
P = inspect .Parameter
3557
3552
S = inspect .Signature
3558
3553
3559
- def test (a_po , * , b , ** kwargs ):
3554
+ def test (a_po , / , * , b , ** kwargs ):
3560
3555
return a_po , kwargs
3561
3556
3562
- sig = inspect .signature (test )
3563
- new_params = list (sig .parameters .values ())
3564
- new_params [0 ] = new_params [0 ].replace (kind = P .POSITIONAL_ONLY )
3565
- test .__signature__ = sig .replace (parameters = new_params )
3566
-
3567
3557
self .assertEqual (str (inspect .signature (test )),
3568
3558
'(a_po, /, *, b, **kwargs)' )
3569
3559
@@ -3593,6 +3583,14 @@ def test() -> 42:
3593
3583
self .assertEqual (sig .return_annotation , 42 )
3594
3584
self .assertEqual (sig , inspect .signature (test ))
3595
3585
3586
+ def test_signature_replaced (self ):
3587
+ def test ():
3588
+ pass
3589
+
3590
+ spam_param = inspect .Parameter ('spam' , inspect .Parameter .POSITIONAL_ONLY )
3591
+ sig = test .__signature__ = inspect .Signature (parameters = (spam_param ,))
3592
+ self .assertEqual (sig , inspect .signature (test ))
3593
+
3596
3594
def test_signature_on_mangled_parameters (self ):
3597
3595
class Spam :
3598
3596
def foo (self , __p1 :1 = 2 , * , __p2 :2 = 3 ):
@@ -4157,16 +4155,9 @@ def test(a, *args, b, z=100, **kwargs):
4157
4155
def test_signature_bind_positional_only (self ):
4158
4156
P = inspect .Parameter
4159
4157
4160
- def test (a_po , b_po , c_po = 3 , foo = 42 , * , bar = 50 , ** kwargs ):
4158
+ def test (a_po , b_po , c_po = 3 , / , foo = 42 , * , bar = 50 , ** kwargs ):
4161
4159
return a_po , b_po , c_po , foo , bar , kwargs
4162
4160
4163
- sig = inspect .signature (test )
4164
- new_params = collections .OrderedDict (tuple (sig .parameters .items ()))
4165
- for name in ('a_po' , 'b_po' , 'c_po' ):
4166
- new_params [name ] = new_params [name ].replace (kind = P .POSITIONAL_ONLY )
4167
- new_sig = sig .replace (parameters = new_params .values ())
4168
- test .__signature__ = new_sig
4169
-
4170
4161
self .assertEqual (self .call (test , 1 , 2 , 4 , 5 , bar = 6 ),
4171
4162
(1 , 2 , 4 , 5 , 6 , {}))
4172
4163
0 commit comments