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 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()