docs: def _get_all_tables(self, dataset_id, cache=False, project_id=None):
          """Retrieve the list of tables for dataset, that respect the formats:
              * appid_YYYY_MM
              * YYYY_MM_appid
  
          Parameters
          ----------
          dataset_id : str
              The dataset to retrieve table names for        
          cache : bool, optional
              To use cached value or not (default False). Timeout value equals
              CACHE_TIMEOUT.
          project_id: str
              Unique ``str`` identifying the BigQuery project contains the dataset
  
          Returns
          -------
          dict
              A ``dict`` of app ids mapped to their table names
          """
          do_fetch = True
          if cache and self.cache.get(dataset_id):
              time, result = self.cache.get(dataset_id)
              if datetime.now() - time < CACHE_TIMEOUT:
                  do_fetch = False
  
          if do_fetch:
              result = self._get_all_tables_for_dataset(dataset_id, project_id)
              self.cache[dataset_id] = (datetime.now(), result)
  
          return self._parse_table_list_response(result)