auto_sizing/utils.py (23 lines of code) (raw):

import itertools from datetime import datetime, timedelta from typing import Dict, List, Union from google.cloud import bigquery def dict_combinations(dictionary: Dict, key: str) -> List[Dict[str, Union[List, Dict]]]: keys, values = zip(*dictionary[key].items()) dictionary_list = [dict(zip(keys, v)) for v in itertools.product(*values)] return dictionary_list def default_dates_dict( current_date: datetime, num_dates_enrollment: int = 7, analysis_length: int = 28 ) -> Union[Dict[str, int], Dict[str, str], Dict[str, object]]: start_date = current_date - timedelta(num_dates_enrollment + analysis_length + 1) return { "start_date": start_date.strftime("%Y-%m-%d"), "num_dates_enrollment": num_dates_enrollment, "analysis_length": analysis_length, } def delete_bq_table( table_id: str, project_id: str, ) -> None: client = bigquery.Client(project=project_id) client.delete_table(table_id, not_found_ok=True)