code: def _RegisterCredentialsMethod(method, position=None):
      
      if position is None:
          position = len(_CREDENTIALS_METHODS)
      else:
          position = min(position, len(_CREDENTIALS_METHODS))
      _CREDENTIALS_METHODS.insert(position, method)
      return method
docs: Register a new method for fetching credentials.
  
      This new method should be a function with signature:
        client_info, **kwds -> Credentials or None
      This method can be used as a decorator, unless position needs to
      be supplied.
  
      Note that method must *always* accept arbitrary keyword arguments.
  
      Args:
        method: New credential-fetching method.
        position: (default: None) Where in the list of methods to
          add this; if None, we append. In all but rare cases,
          this should be either 0 or None.
      Returns:
        method, for use as a decorator.