@@ -396,26 +396,26 @@ def _action_set_custom_parameter(self: argparse.Action, value: Any) -> None:
396396 CUSTOM_ACTION_ATTRIBS .add (param_name )
397397
398398
399- def _choices_callable_validator (self : argparse .Action , value : Any ) -> Any :
399+ def _validate_completion_callable (self : argparse .Action , value : Any ) -> Any :
400400 """Validate choices_provider and completer values for potential conflicts."""
401401 if value is None :
402402 return None
403403
404404 if self .choices is not None :
405405 err_msg = "None of the following parameters can be used alongside a choices parameter:\n choices_provider, completer"
406- raise TypeError (err_msg )
406+ raise ValueError (err_msg )
407407 if self .nargs == 0 :
408408 err_msg = (
409409 "None of the following parameters can be used on an action that takes no arguments:\n choices_provider, completer"
410410 )
411- raise TypeError (err_msg )
411+ raise ValueError (err_msg )
412412 return value
413413
414414
415415# Add new attributes to argparse.Action.
416416# See _ActionsContainer_add_argument() for details on these attributes.
417- register_argparse_argument_parameter ('choices_provider' , validator = _choices_callable_validator )
418- register_argparse_argument_parameter ('completer' , validator = _choices_callable_validator )
417+ register_argparse_argument_parameter ('choices_provider' , validator = _validate_completion_callable )
418+ register_argparse_argument_parameter ('completer' , validator = _validate_completion_callable )
419419register_argparse_argument_parameter ('table_columns' )
420420register_argparse_argument_parameter ('nargs_range' )
421421register_argparse_argument_parameter ('suppress_tab_hint' )
@@ -470,12 +470,8 @@ def _ActionsContainer_add_argument( # noqa: N802
470470 :raises ValueError: on incorrect parameter usage
471471 """
472472 # Verify consistent use of arguments
473- choices_callables = [choices_provider , completer ]
474- num_params_set = len (choices_callables ) - choices_callables .count (None )
475-
476- if num_params_set > 1 :
477- err_msg = "Only one of the following parameters may be used at a time:\n choices_provider, completer"
478- raise (ValueError (err_msg ))
473+ if choices_provider is not None and completer is not None :
474+ raise ValueError ("Only one of the following parameters may be used at a time:\n choices_provider, completer" )
479475
480476 # Pre-process special ranged nargs
481477 nargs_range = None
0 commit comments