@@ -192,10 +192,12 @@ def find_arg_in_command(cls, command, idx):
192192 idx = cls .arg_idx_to_list (idx )
193193 assert isinstance (idx , list ), f"invalid arg_idx type: { type (idx )} "
194194
195- for arg_group in command .arg_groups :
196- arg = cls .find_arg_in_group (arg_group , idx )
197- if arg :
198- return arg
195+ if command .arg_groups :
196+ for arg_group in command .arg_groups :
197+ arg = cls .find_arg_in_group (arg_group , idx )
198+ if arg :
199+ return arg
200+
199201 return None
200202
201203 def find_arg_parent (self , * cmd_names , idx ):
@@ -212,9 +214,10 @@ def find_arg_parent_in_command(cls, command, idx):
212214 assert isinstance (idx , list ), f"invalid arg_idx type: { type (idx )} "
213215
214216 if len (idx ) == 1 :
215- for arg_group in command .arg_groups :
216- if cls .find_arg_in_group (arg_group , idx ) is not None :
217- return None , arg_group
217+ if command .arg_groups :
218+ for arg_group in command .arg_groups :
219+ if cls .find_arg_in_group (arg_group , idx ) is not None :
220+ return None , arg_group
218221 else :
219222 parent_idx = idx [:- 1 ]
220223 parent_arg = cls .find_arg_in_command (command , idx = parent_idx )
@@ -313,18 +316,20 @@ def arg_filter(_parent, _arg, _arg_idx, _arg_var):
313316 return (_parent , None , None , None ), True
314317 return None , False
315318
316- for arg_group in command .arg_groups :
317- matches = [match for match in cls ._iter_args_in_group (
318- arg_group , arg_filter = arg_filter
319- )]
320- if not matches :
321- continue
322- assert len (matches ) == 1
323-
324- parent , arg , arg_idx , arg_var = matches [0 ]
325- if arg :
326- arg_idx = cls .arg_idx_to_str (arg_idx )
327- return parent , arg , arg_idx
319+ if command .arg_groups :
320+ for arg_group in command .arg_groups :
321+ matches = [match for match in cls ._iter_args_in_group (
322+ arg_group , arg_filter = arg_filter
323+ )]
324+ if not matches :
325+ continue
326+ assert len (matches ) == 1
327+
328+ parent , arg , arg_idx , arg_var = matches [0 ]
329+ if arg :
330+ arg_idx = cls .arg_idx_to_str (arg_idx )
331+ return parent , arg , arg_idx
332+
328333 return None , None , None
329334
330335 @classmethod
@@ -393,18 +398,20 @@ def arg_filter(_parent, _arg, _arg_idx, _arg_var):
393398 return (_parent , _arg , _arg_idx , _arg_var ), True
394399 return None , False
395400
396- for arg_group in command .arg_groups :
397- matches = [match for match in cls ._iter_args_in_group (
398- arg_group , arg_filter = arg_filter
399- )]
400- if not matches :
401- continue
402- assert len (matches ) == 1
403-
404- parent , arg , arg_idx , arg_var = matches [0 ]
405- if arg :
406- arg_idx = cls .arg_idx_to_str (arg_idx )
407- return parent , arg , arg_idx , arg_var
401+ if command .arg_groups :
402+ for arg_group in command .arg_groups :
403+ matches = [match for match in cls ._iter_args_in_group (
404+ arg_group , arg_filter = arg_filter
405+ )]
406+ if not matches :
407+ continue
408+ assert len (matches ) == 1
409+
410+ parent , arg , arg_idx , arg_var = matches [0 ]
411+ if arg :
412+ arg_idx = cls .arg_idx_to_str (arg_idx )
413+ return parent , arg , arg_idx , arg_var
414+
408415 return None , None , None , None
409416
410417 def iter_arg_cls_definition (self , * cmd_names , cls_name_prefix = None ):
@@ -431,11 +438,12 @@ def arg_filter(_parent, _arg, _arg_idx, _arg_var):
431438 return (_parent , _arg , _arg_idx , _arg_var ), False
432439 return None , False
433440
434- for arg_group in command .arg_groups :
435- for parent , arg , arg_idx , arg_var in cls ._iter_args_in_group (arg_group , arg_filter = arg_filter ):
436- if arg :
437- arg_idx = cls .arg_idx_to_str (arg_idx )
438- yield parent , arg , arg_idx , arg_var
441+ if command .arg_groups :
442+ for arg_group in command .arg_groups :
443+ for parent , arg , arg_idx , arg_var in cls ._iter_args_in_group (arg_group , arg_filter = arg_filter ):
444+ if arg :
445+ arg_idx = cls .arg_idx_to_str (arg_idx )
446+ yield parent , arg , arg_idx , arg_var
439447
440448 def iter_arg_cls_reference (self , * cmd_names , cls_name ):
441449 command = self .find_command (* cmd_names )
@@ -457,22 +465,24 @@ def arg_filter(_parent, _arg, _arg_idx, _arg_var):
457465 return (_parent , _arg , _arg_idx , _arg_var ), False
458466 return None , False
459467
460- for arg_group in command .arg_groups :
461- for parent , arg , arg_idx , arg_var in cls ._iter_args_in_group (
462- arg_group , arg_filter = arg_filter ):
463- if arg :
464- arg_idx = cls .arg_idx_to_str (arg_idx )
465- yield parent , arg , arg_idx , arg_var
468+ if command .arg_groups :
469+ for arg_group in command .arg_groups :
470+ for parent , arg , arg_idx , arg_var in cls ._iter_args_in_group (
471+ arg_group , arg_filter = arg_filter ):
472+ if arg :
473+ arg_idx = cls .arg_idx_to_str (arg_idx )
474+ yield parent , arg , arg_idx , arg_var
466475
467476 def iter_args_in_command (self , command ):
468477 def arg_filter (_parent , _arg , _arg_idx , _arg_var ):
469478 return (_parent , _arg , _arg_idx , _arg_var ), False
470479
471- for arg_group in command .arg_groups :
472- for parent , arg , arg_idx , arg_var in self ._iter_args_in_group (arg_group , arg_filter = arg_filter ):
473- if arg :
474- arg_idx = self .arg_idx_to_str (arg_idx )
475- yield parent , arg , arg_idx , arg_var
480+ if command .arg_groups :
481+ for arg_group in command .arg_groups :
482+ for parent , arg , arg_idx , arg_var in self ._iter_args_in_group (arg_group , arg_filter = arg_filter ):
483+ if arg :
484+ arg_idx = self .arg_idx_to_str (arg_idx )
485+ yield parent , arg , arg_idx , arg_var
476486
477487 # TODO: build arg_idx in command link call
478488 @classmethod
0 commit comments