code: def esummary(database: str, ids=False, webenv=False, query_key=False, count=False, retstart=False, retmax=False,
               api_key=False, email=False, **kwargs) -> Optional[List[EsummaryResult]]:
      
      url = BASE_URL + f'esummary.fcgi?db={database}'
      url = check_webenv(webenv, url)
      url = check_query_key(query_key, url)
      url = check_api_key(api_key, url)
      url = check_email(email, url)
  
      if ids:
          if isinstance(ids, str):
              id = ids
          else:
              id = ','.join(ids)
          url += f'&id={id}'
          count = len(id.split(','))
  
      for resp in entrez_sets_of_results(url, retstart, retmax, count):
          yield resp.text
docs: Get document summaries using the Entrez ESearch API.
  
      Parameters
      ----------
      database : str
          Entez database to search.
      ids : list or str
          List of IDs to submit to the server.
      webenv : str
          An Entrez WebEnv to use saved history.
      query_key : str
          An Entrez query_key to use saved history.
      count : int
          Number of records in the webenv
      retstart : int
          Return values starting at this index.
      retmax : int
          Return at most this number of values.
      api_key : str
          A users API key which allows more requests per second
      email : str
          A users email which is required if not using API.
  
      Returns
      -------
      list
          A list of EsummaryResults with values [id, srx, create_date, update_date]