code: def _SetCredentials(self, **kwds):
          
          args = {
              'api_key': self._API_KEY,
              'client': self,
              'client_id': self._CLIENT_ID,
              'client_secret': self._CLIENT_SECRET,
              'package_name': self._PACKAGE,
              'scopes': self._SCOPES,
              'user_agent': self._USER_AGENT,
          }
          args.update(kwds)
          # credentials_lib can be expensive to import so do it only if needed.
          from apitools.base.py import credentials_lib
          # TODO(craigcitro): It's a bit dangerous to pass this
          # still-half-initialized self into this method, but we might need
          # to set attributes on it associated with our credentials.
          # Consider another way around this (maybe a callback?) and whether
          # or not it's worth it.
          self._credentials = credentials_lib.GetCredentials(**args)
docs: Fetch credentials, and set them for this client.
  
          Note that we can't simply return credentials, since creating them
          may involve side-effecting self.
  
          Args:
            **kwds: Additional keyword arguments are passed on to GetCredentials.
  
          Returns:
            None. Sets self._credentials.