from framework import read, where, format_date, to_tuple __COLUMNS__ = { 'rfn_fund_id': 'fund_id', 'rfn_date': 'nav_date', 'rfn_nav_cal': 'nav_cal', } @read def get_navs(fund_id=None, min_date=None, max_date=None): sqls = [] if min_date: sqls.append(f"rfn_date >= '{format_date(min_date)}'") if max_date: sqls.append(f"rfn_date <= '{format_date(max_date)}'") return f''' select {','.join([f"`{x[0]}` as `{x[1]}`" for x in __COLUMNS__.items()])} from robo_fund_navs {where(*sqls, rfn_fund_id=to_tuple(fund_id))} order by rfn_fund_id, rfn_date '''