# -*- coding: utf-8 -*- """ @author: yq @time: 2024/11/8 @desc: 处理占位符的函数 """ import datetime import re import pytz def get_date(offset: int = 0) -> str: current_date = datetime.datetime.now(pytz.timezone("Asia/Shanghai")).date() + datetime.timedelta(days=offset) return current_date.strftime("%Y-%m-%d") def _fill_date_placeholder(sql: str): date_placeholder = re.findall(r"{{date.*?}}", sql) if date_placeholder: date_placeholder = date_placeholder[0] offset = date_placeholder.replace("{{date", "").replace("}}", "") if len(offset) > 0: symbol = offset[0:1] offset = int(offset[1:]) if "-" == symbol: offset = -offset else: offset = 0 date_new = get_date(offset) sql = sql.replace(date_placeholder, repr(date_new)) return sql def f_fill_placeholder(sql: str): sql = _fill_date_placeholder(sql) return sql