code: def get_args_and_values(parser, an_action):
      
      args = inspect.getargspec(an_action.__class__.__init__).args
      kwargs = dict(
          (an_attr, getattr(an_action, an_attr))
          for an_attr in args
          if (
              an_attr not in ('self', 'required')
              and getattr(an_action, an_attr) is not None
          )
      )
      action_name = find_action_name_by_value(
          parser._optionals._registries,
          an_action
      )
      if 'required' in kwargs:
          del kwargs['required']
      kwargs['action'] = action_name
      if 'option_strings' in kwargs:
          args = tuple(kwargs['option_strings'])
          del kwargs['option_strings']
      else:
          args = ()
      return args, kwargs
docs: this rountine attempts to reconstruct the kwargs that were used in the
      creation of an action object