Source code for fooltrader.api.event

# -*- coding: utf-8 -*-

import os

import pandas as pd

from fooltrader.api.technical import to_security_item
from fooltrader.contract.files_contract import get_event_path
from fooltrader.utils import pd_utils
from fooltrader.utils.pd_utils import df_for_date_range


[docs]def get_event(security_item, event_type='finance_forecast', start_date=None, end_date=None, index='timestamp'): """ get forecast items. Parameters ---------- security_item : SecurityItem or str the security item,id or code event_type : str {'finance_forecast','finance_report'} start_date: Timestamp str or Timestamp the start date for the event end_date: Timestamp str or Timestamp the end date for the event Returns ------- DataFrame """ security_item = to_security_item(security_item) path = get_event_path(security_item, event_type) if os.path.exists(path): df = pd_utils.pd_read_csv(path, index=index, generate_id=True) df = df_for_date_range(df, start_date=start_date, end_date=end_date) else: df = pd.DataFrame() return df
def get_finance_forecast_event(security_item, start_date=None, end_date=None): return get_event(security_item, event_type='finance_forecast', start_date=start_date, end_date=end_date) def get_finance_report_event(security_item, index='timestamp', start_date=None, end_date=None): return get_event(security_item, event_type='finance_report', start_date=start_date, end_date=end_date, index=index) def get_report_event_date(security_item, report_period): df = get_finance_report_event(security_item, index='reportPeriod') if report_period in df.index: report_event_date = df.loc[report_period, 'timestamp'] if type(report_event_date) == pd.Series: report_event_date = report_event_date.iat[-1] return report_event_date else: return report_period