@@ -688,7 +688,8 @@ def __init__(self, func: Callable, *args, **kwargs) -> None:
688
688
689
689
self .attached_to_group : bool = False
690
690
691
- self .options : list [Option ] = kwargs .get ("options" , [])
691
+ self ._options_kwargs = kwargs .get ("options" , [])
692
+ self .options : list [Option ] = []
692
693
self ._validate_parameters ()
693
694
694
695
try :
@@ -703,11 +704,13 @@ def __init__(self, func: Callable, *args, **kwargs) -> None:
703
704
self ._after_invoke = None
704
705
705
706
def _validate_parameters (self ):
707
+ print (self .options , self ._options_kwargs )
706
708
params = self ._get_signature_parameters ()
707
- if kwop := self .options :
709
+ if kwop := self ._options_kwargs :
708
710
self .options = self ._match_option_param_names (params , kwop )
709
711
else :
710
712
self .options = self ._parse_options (params )
713
+ print (self .options , self ._options_kwargs )
711
714
712
715
def _check_required_params (self , params ):
713
716
params = iter (params .items ())
@@ -727,6 +730,8 @@ def _check_required_params(self, params):
727
730
def _parse_options (self , params , * , check_params : bool = True ) -> list [Option ]:
728
731
if check_params :
729
732
params = self ._check_required_params (params )
733
+ else :
734
+ params = iter (params .items ())
730
735
731
736
final_options = []
732
737
for p_name , p_obj in params :
@@ -790,6 +795,7 @@ def _parse_options(self, params, *, check_params: bool = True) -> list[Option]:
790
795
return final_options
791
796
792
797
def _match_option_param_names (self , params , options ):
798
+ options = list (options )
793
799
params = self ._check_required_params (params )
794
800
795
801
check_annotations : list [Callable [[Option , type ], bool ]] = [
@@ -855,8 +861,7 @@ def cog(self, value):
855
861
or value is None
856
862
and old_cog is not None
857
863
):
858
- params = self ._get_signature_parameters ()
859
- self .options = self ._parse_options (params )
864
+ self ._validate_parameters ()
860
865
861
866
@property
862
867
def is_subcommand (self ) -> bool :
0 commit comments