docs: def _list_directory(self, folder_id=''):
      
          ''' a generator method for listing the contents of a directory '''
          
          title = '%s._list_directory' % self.__class__.__name__
          
      # construct default response
          file_list = []
      
      # construct request kwargs
          list_kwargs = {
              'spaces': self.drive_space,
              'fields': 'nextPageToken, files(id, name, parents, mimeType)'
          }
      
      # add query field for parent
          if folder_id:
              list_kwargs['q'] = "'%s' in parents" % folder_id
      
      # retrieve space id
          if not self.space_id:
              self._get_space()
          
      # send request
          page_token = 1
          while page_token:
              try:
                  response = self.drive.list(**list_kwargs).execute()
              except:
                  raise DriveConnectionError(title)
          
          # populate list from response
              results = response.get('files', [])
              for file in results:
                  if not folder_id and file.get('parents', [])[0] != self.space_id:
                      pass
                  else:
                      yield file.get('id', ''), file.get('name', ''), file.get('mimeType', '')
      
          # get page token
              page_token = response.get('nextPageToken', None)
              if page_token:
                  list_kwargs['pageToken'] = page_token
          
          return file_list