code: def add_argument(self, *args, parser=None, autoenv=False, env=None,
                       complete=None, **kwargs):
          
          if parser is None:
              parser = self.argparser
          action = parser.add_argument(*args, **kwargs)
          if autoenv:
              if env is not None:
                  raise TypeError('Arguments `env` and `autoenv` are mutually '
                                  'exclusive')
              env = self._make_autoenv(action)
          if env:
              self.argparser.bind_env(action, env)
              if autoenv:
                  self._autoenv_actions.add(action)
          if complete:
              action.complete = complete
          return action
docs: Allow cleaner action supplementation.  Autoenv will generate an
          environment variable to be usable as a defaults setter based on the
          command name and the dest property of the action.