def generate_report(self,
                        dimensions,
                        columns,
                        date_range_type,
                        start_date=None,
                        end_date=None,
                        filter_query=None):
        report_query = {
            'dimensions': dimensions,
            'columns': columns,
            'dateRangeType': date_range_type,
        }

        if date_range_type == 'CUSTOM_DATE':
            assert start_date and end_date
            report_query['startDate'] = {
                'year': start_date.year,
                'month': start_date.month,
                'day': start_date.day,
            }
            report_query['endDate'] = {
                'year': end_date.year,
                'month': end_date.month,
                'day': end_date.day,
            }

        if filter_query:
            report_query['statement'] = filter_query

        raw_list = self._generate_report_as_list(report_query)
        return [sanitize_report_response(i) for i in raw_list]
Called by ``DBConnection.retrieve_session``. Will attempt to load data from an associated ``TotoSessionCache``.
dataset/ETHPy150Open chartbeat-labs/parselmouth/parselmouth/adapters/dfp/client.py/DFPClient.generate_report--crossover with--dataset/ETHPy150Open JeremyOT/Toto/toto/dbconnection.py/DBConnection._load_session_data