# -*- coding:utf-8 -*- from datetime import datetime import pandas as pd from sqlalchemy import text from api.extensions import db def get_df_from_read_sql(query, to_dict=False): bind = query.session.bind query = query.statement.compile(dialect=bind.dialect if bind else None, compile_kwargs={"literal_binds": True}).string a = db.engine df = pd.read_sql(sql=text(query), con=a.connect()) if to_dict: return df.to_dict('records') return df def get_cur_time_str(split_flag='-'): f = f"%Y{split_flag}%m{split_flag}%d{split_flag}%H{split_flag}%M{split_flag}%S{split_flag}%f" return datetime.now().strftime(f)[:-3] class BaseEnum(object): _ALL_ = set() @classmethod def is_valid(cls, item): return item in cls.all() @classmethod def all(cls): if not cls._ALL_: cls._ALL_ = { getattr(cls, attr) for attr in dir(cls) if not attr.startswith("_") and not callable(getattr(cls, attr)) } return cls._ALL_