code: def _get_credentials(self):
          
  
          home_dir = os.path.expanduser('~')
          credential_dir = os.path.join(home_dir, '.credentials')
  
          if not os.path.exists(credential_dir):
              os.makedirs(credential_dir)
  
          credential_path = os.path.join(
              credential_dir,
              'bernard.sheets-sync.json',
          )
  
          store = Storage(credential_path)
          credentials = store.get()
  
          if not credentials or credentials.invalid:
              with NamedTemporaryFile(suffix='.json') as f:
                  data = ujson.dumps(settings.GOOGLE_SHEET_SYNC['credentials'])
                  f.write(data.encode('utf-8'))
                  f.flush()
                  flow = client.flow_from_clientsecrets(f.name, SCOPES)
  
              flow.user_agent = APPLICATION_NAME
              credentials = tools.run_flow(flow, store, self.flags)
              print('Storing credentials to ' + credential_path)
  
          return credentials
docs: Gets valid user credentials from storage.
  
          If nothing has been stored, or if the stored credentials are invalid,
          the OAuth2 flow is completed to obtain the new credentials.
  
          Returns:
              Credentials, the obtained credential.