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)
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