def get_account(trader_name=None, model_name=None, return_type='df', start_timestamp=None, end_timestamp=None, filters=None, session=None, order=None, limit=None): try: data_schema = SimAccount query = session.query(data_schema) query = query.filter(data_schema.trader_name == trader_name, data_schema.model_name == model_name) query = common_filter(query, data_schema=data_schema, start_timestamp=start_timestamp, end_timestamp=end_timestamp, filters=filters, order=order, limit=limit) if return_type == 'df': return pd.read_sql(query.statement, query.session.bind) elif return_type == 'domain': return query.all() elif return_type == 'dict': return [item.as_dict() for item in query.all()] except Exception: raise
def get_securities(security_type='stock', exchanges=None, codes=None, columns=None, return_type='df', session=None, start_timestamp=None, end_timestamp=None, filters=None, order=None, limit=None, provider='eastmoney'): local_session = False data_schema = get_security_schema(security_type) store_category = get_store_category(data_schema=data_schema) if not session: session = get_db_session(provider=provider, store_category=store_category) local_session = True if not order: order = data_schema.code.asc() try: if columns: query = session.query(*columns) else: query = session.query(data_schema) # filters if exchanges: query = query.filter(data_schema.exchange.in_(exchanges)) if codes: query = query.filter(data_schema.code.in_(codes)) query = common_filter(query, data_schema=data_schema, start_timestamp=start_timestamp, end_timestamp=end_timestamp, filters=filters, order=order, limit=limit) if return_type == 'df': # TODO:add indices info return pd.read_sql(query.statement, query.session.bind) elif return_type == 'domain': return query.all() elif return_type == 'dict': return [item.to_json() for item in query.all()] except Exception as e: raise finally: if local_session: session.close()