diff --git a/README_TEST.md b/README_TEST.md new file mode 100644 index 0000000..8187010 --- /dev/null +++ b/README_TEST.md @@ -0,0 +1 @@ +New file for testing CI/CD diff --git a/bigquery/query_builder.py b/bigquery/query_builder.py index 7362148..235007e 100644 --- a/bigquery/query_builder.py +++ b/bigquery/query_builder.py @@ -138,7 +138,18 @@ def _render_sources(dataset, tables): dataset : str The data set to fetch log data from. tables : Union[dict, list] - The tables to fetch log data from + The tables to fetch log data from; detailed formats are described below: + list: + tables = [table1, table2, table3] + dict: + tables = { + 'date_range': True, + 'table': 'ga_sessions_', + # OR + # 'table': ['ga_sessions_', 'ga_sessions_intraday_'], + 'from_date': '2016-08-01', + 'to_date': '2016-08-24' + } Returns ------- @@ -149,11 +160,20 @@ def _render_sources(dataset, tables): if isinstance(tables, dict): if tables.get('date_range', False): try: - dataset_table = '.'.join([dataset, tables['table']]) - return "FROM (TABLE_DATE_RANGE([{}], TIMESTAMP('{}'),"\ - " TIMESTAMP('{}'))) ".format(dataset_table, - tables['from_date'], - tables['to_date']) + table_list = tables['table'] + if isinstance(table_list, str): + table_list = [table_list] + + from_list = [] + for single_table in table_list: + from_string = _render_single_source( + dataset, single_table, + tables['from_date'], tables['to_date']) + from_list.append(from_string) + from_strings = ', '.join(from_list) + + return "FROM {}".format(from_strings) + except KeyError as exp: logger.warn( 'Missing parameter %s in selecting sources' % (exp)) @@ -163,6 +183,16 @@ def _render_sources(dataset, tables): ["[%s.%s]" % (dataset, table) for table in tables]) +def _render_single_source(dataset, table, from_date, to_date): + dataset_table = '.'.join([dataset, table]) + from_string = ( + "(TABLE_DATE_RANGE([{}], " + "TIMESTAMP('{}'), TIMESTAMP('{}'))) ".format( + dataset_table, from_date, to_date) + ) + return from_string + + def _render_conditions(conditions): """Render the conditions part of a query. diff --git a/bigquery/version.py b/bigquery/version.py index b280975..e8b6b09 100644 --- a/bigquery/version.py +++ b/bigquery/version.py @@ -1 +1 @@ -__version__ = '1.8.0' +__version__ = '1.8.1' diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..5b8aed8 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +google-api-python-client +httplib2 +python-dateutil