def main():
    logger.info("Company profile loading script started at : {}".format(datetime.now()))
    data_client = MongoDataHandler()
    tickers = data_client.get_ticker_list()
    for ticker in tqdm(tickers):
        get_company_profile(ticker, data_client)
    data_client.close_client()
def main():
    now = datetime.now()
    update_from = datetime.now() - timedelta(365)
    logger.info("Ticker price loading script started at : {}".format(
        datetime.now()))
    logger.info("Ticker price are retrieved from  : {}".format(
        datetime.strftime(update_from, '%Y-%m-%d')))
    data_client = MongoDataHandler()
    tickers = data_client.get_ticker_list()
    ticker_chunks = divide_chunks(tickers, 1000)
    for chunk in ticker_chunks:
        ticker_chunk_string = ' '.join(chunk)
        ticker_results = yf.download(ticker_chunk_string)
        recent_ticker_results = ticker_results[
            ticker_results.index > dateutil.parser.parse(
                datetime.strftime(update_from, '%Y-%m-%d'))]
        df_rearranged = recent_ticker_results.T.swaplevel(0, 1)
        df_rearranged.columns = df_rearranged.columns.map(str)
        prices_dict = df_rearranged.groupby(
            level=0).apply(lambda df: df.xs(df.name).to_dict()).to_dict()
        price_list = []
        for key, value in prices_dict.items():
            price_dict = {'_id': key, 'prices': value}
            print(price_dict)
            price_list.append(price_dict)
        data_client.save_all_ticker_prices(price_list)
def get_company_profile(ticker: str, data_client: MongoDataHandler) -> None:
    try:
        company_profile = financial_data.get_company_profiles(ticker)
        if company_profile:
            data_client.update_company_profiles(ticker, company_profile)
        else:
            logger.info("No profile found for : {}".format(ticker))
    except Exception as err:
        logger.info("Loading profile failed for: {} Error: {}".format(ticker, err))
def get_and_load_balance_sheets(ticker: str, data_client: MongoDataHandler) -> None:
    try:
        balance_sheets = financial_data.get_balance_sheets(ticker)
        if balance_sheets:
            data_client.update_balance_sheets(ticker, balance_sheets)
        else:
            logger.info("No balance sheets found for: {}.".format(ticker))
    except Exception as err:
        logger.info("Loading balance sheets failed for: {} Error: {}".format(ticker, err))
def get_and_load_income_statements(company: str,
                                   data_client: MongoDataHandler) -> None:
    try:
        income_statements = financial_data.get_income_statements(company)
        if income_statements:
            data_client.update_income_statements(company, income_statements)
        logger.info("No income statements found for: {}.".format(company))
    except Exception as err:
        logger.info(
            "Loading income statements failed for: {} Error: {}".format(
                company, err))
Beispiel #6
0
def get_and_load_cash_flows(company: str,
                            data_client: MongoDataHandler) -> None:
    try:
        cash_flows = financial_data.get_cash_flows(company)
        if cash_flows:
            data_client.update_cash_flows(company, cash_flows)
        else:
            logger.info("No cash flows found for: {}.".format(company))
    except Exception as err:
        logger.info("Loading cash flows failed for: {}. Error: {}".format(
            company, err))
def main():
    now = datetime.now()
    current_year = now.year
    logger.info("Company balance sheet loading script started.")
    data_client = MongoDataHandler()
    tickers = data_client.get_ticker_list()
    balance_filed_companies = data_client.get_balance_filed_companies(str(current_year))
    balance_unfiled_companies = (set(tickers) - set(balance_filed_companies))
    logger.info("{} unfiled companies to process".format(len(balance_unfiled_companies)))
    [get_and_load_balance_sheets(company, data_client) for company in tqdm(balance_unfiled_companies)]
    data_client.close_client()
Beispiel #8
0
def main():
    try:
        logger.info("Loading company list started")
        # get all companies from fmp
        full_company_list = financial_data.get_companies()
        data_client = MongoDataHandler()
        data_client.save_company_list(full_company_list)
        logger.info("Successfully loaded {} the companies".format(
            len(full_company_list)))
        data_client.close_client()
    except Exception as err:
        logger.info("Loading company list failed: Error: {}".format(err))