# # | export
# async def upload_data_with_date(
# instance_auth,
# data_fn,
# consol_ds,
# partition_date_col,
# partition_delimiter,
# start_date,
# end_date,
# debug_api: bool = False,
# debug_prn: bool = False,
# ):
# instance_session = httpx.AsyncClient()
# print(
# f"'๐ฌ upload_with_data: starting retrieval {start_date}, {end_date}, {instance_auth.domo_instance}"
# )
# upload_df = await data_fn(
# instance_auth=instance_auth,
# session=instance_session,
# start_date=start_date,
# end_date=end_date,
# debug=debug,
# )
# await instance_session.aclose()
# if not isinstance(upload_df, pd.DataFrame):
# print(f"๐ error no data returned {instance_auth.domo_instance}")
# print(upload_df)
# return None
# if debug_prn:
# print(
# f"๐งป upload_with_data: starting upload {len(upload_df)} rows for {instance_auth.domo_instance}"
# )
# task = []
# for index, partition_set in upload_df.drop_duplicates(
# subset=[partition_date_col]
# ).iterrows():
# partition_date = partition_set[partition_date_col]
# partition_key = (
# f"{instance_auth.domo_instance}{partition_delimiter}{str(partition_date)}"
# )
# task.append(
# consol_ds.upload_data(
# upload_df=upload_df[(upload_df[partition_date_col] == partition_date)],
# upload_method="REPLACE",
# partition_key=partition_key,
# is_index=False,
# debug_api=debug_api,
# debug_prn=debug_prn,
# )
# )
# res = await asyncio.gather(*task)
# if debug_prn:
# print(
# f"๐ upload_with_data : finished uploading {len(upload_df)} rows for {instance_auth.domo_instance}"
# )
# return res