docs: def add_subparsers(self, *args, **kwargs):
          """When adding a subparser, we need to ensure that our version of the
          SubparserAction object is returned.  We also need to create the
          corresponding configman Option object for the subparser and pack it's
          foreign data section with the original args & kwargs."""
  
          kwargs['parser_class'] = self.__class__
          kwargs['action'] = ConfigmanSubParsersAction
  
          subparser_action = super(ArgumentParser, self).add_subparsers(
              *args,
              **kwargs
          )
          self._argparse_subparsers = subparser_action
  
          if "dest" not in kwargs or kwargs['dest'] is None:
              kwargs['dest'] = 'subcommand'
          configman_name = kwargs['dest']
          configman_default = None
          configman_doc = kwargs.get('help', '')
          subprocessor_from_string_converter = SubparserFromStringConverter()
          configman_to_string = str
          configman_is_argument = True
          configman_not_for_definition = True
  
          # it's finally time to create the configman Option object and add it
          # to the required_config.
          self.required_config.add_option(
              name=configman_name,
              default=configman_default,
              doc=configman_doc,
              from_string_converter=subprocessor_from_string_converter,
              to_string_converter=configman_to_string,
              is_argument=configman_is_argument,
              not_for_definition=configman_not_for_definition,
              # we're going to save the input parameters that created the
              # argparse Action.  This enables us to perfectly reproduce the
              # the original Action object later during the configman overlay
              # process.
              foreign_data=DotDict({
                  'argparse.flags.subcommand': subparser_action,
                  'argparse.args': args,
                  'argparse.kwargs': kwargs,
                  'argparse.subparsers': DotDict(),
                  'argparse.subprocessor_from_string_converter':
                  subprocessor_from_string_converter
              })
          )
  
          self.configman_subparsers_option = self.required_config[configman_name]
          subparser_action.add_configman_option(self.configman_subparsers_option)
  
          return subparser_action