@@ -625,29 +625,27 @@ def _validate_win_type(win_type, kwargs):
625
625
'gaussian' : ['std' ],
626
626
'general_gaussian' : ['power' , 'width' ],
627
627
'slepian' : ['width' ],
628
- 'exponential' : ['center' , ' tau' ]}
629
- immutable_args_map = { 'exponential' : { 'center' : None } }
628
+ 'exponential' : ['tau' ],
629
+ }
630
630
631
631
if win_type in arg_map :
632
- immutable_args = immutable_args_map .get (win_type , {})
633
- return tuple ([win_type ] + _pop_args (win_type ,
634
- arg_map [win_type ],
635
- immutable_args ,
636
- kwargs ))
632
+ win_args = _pop_args (win_type , arg_map [win_type ], kwargs )
633
+ if win_type == 'exponential' :
634
+ # exponential window requires the first arg (center)
635
+ # to be set to None (necessary for symmetric window)
636
+ win_args .insert (0 , None )
637
+
638
+ return tuple ([win_type ] + win_args )
637
639
638
640
return win_type
639
641
640
- def _pop_args (win_type , arg_names , immutable_args , kwargs ):
642
+ def _pop_args (win_type , arg_names , kwargs ):
641
643
msg = '%s window requires %%s' % win_type
642
644
all_args = []
643
645
for n in arg_names :
644
- if n in immutable_args :
645
- value = immutable_args [n ]
646
- elif n in kwargs :
647
- value = kwargs .pop (n )
648
- else :
646
+ if n not in kwargs :
649
647
raise ValueError (msg % n )
650
- all_args .append (value )
648
+ all_args .append (kwargs . pop ( n ) )
651
649
return all_args
652
650
653
651
win_type = _validate_win_type (self .win_type , kwargs )
0 commit comments