コード例 #1
0
 def create_report(self, report_key, report_config):
     if not isinstance(report_key, str):
         raise TypeError('Report key is not a string.')
     if not isinstance(report_config, dict):
         raise TypeError('Report config is not a dict.')
     if 'query_folder' not in self.config:
         raise KeyError('Query folder is not in config.')
     query_folder = self.config['query_folder']
     if not isinstance(query_folder, str):
         raise ValueError('Query folder is not a string.')
     report = Report()
     report.key = report_key
     report.type = self.get_type(report_config)
     report.frequency = self.get_frequency(report_config)
     report.granularity = self.get_granularity(report_config)
     report.lag = self.get_lag(report_config)
     report.is_timeboxed = self.get_is_timeboxed(report_config)
     report.is_funnel = self.get_is_funnel(report_config)
     report.first_date = self.get_first_date(report_config, report.is_timeboxed)
     report.explode_by = self.get_explode_by(report_config)
     if report.type == 'sql':
         report.db_key = self.get_db_key(report_config)
         report.sql_template = self.get_sql_template(report_key, query_folder)
     elif report.type == 'script':
         report.script = self.get_script(report_key, query_folder)
     return report