docs: def parse_args(self, args=None, namespace=None):
          """
          Reparses new arguments when _DemoAction (triggering parser.demo_args())
           or _WizardAction (triggering input_args()) was called.
          """
          if not namespace:  # use the new Namespace class for handling _config
              namespace = Namespace(self)
          namespace = super(ArgumentParser, self).parse_args(args, namespace)
          if len(self._reparse_args['pos']) > 0 or \
             len(self._reparse_args['opt']) > 0 or \
             len(self._reparse_args['sub']) > 0:
              args = self._reset_args()
              namespace = super(ArgumentParser, self).parse_args(args, namespace)
          # process "-hh..." here, after having parsed the arguments
          help_level = getattr(namespace, "help", 0)
          if help_level > 0:
              self.print_help()
              self.print_extended_help(help_level)
              self.exit()
          return namespace