Path: blob/master/ invest-robot-contest_sirius-master/services/instruments_info_cache.py
5932 views
from api_calls.get_info import get_shares1from utils.util import is_file_exists, read_dict_from_file, write_dict_to_file, pretty_dict23instruments_cache = {}4instruments_cache_filename = 'data/cache_instruments'567# Кэш инструментов. Зачитывается с сервера один раз и записывается в файл. Кэш можно сбросить запуском --reset-robot89def get_instruments_cache():10return instruments_cache111213def make_instrument_key(exchange, ticker):14return exchange + '_' + ticker151617def get_instrument_info(exchange, ticker):18global instruments_cache19return get_instrument_info_by_key(make_instrument_key(exchange, ticker))202122def get_instrument_info_by_key(key):23global instruments_cache24return instruments_cache[key]252627def init_instruments_cache():28global instruments_cache2930if is_file_exists(instruments_cache_filename):31instruments_cache = read_dict_from_file(instruments_cache_filename)32return3334shares = get_shares()['instruments']3536instruments_cache = {}3738for instrument in shares:39ticker = instrument['ticker']40exchange = instrument['exchange']41instruments_cache[make_instrument_key(exchange, ticker)] = {42'ticker': instrument['ticker'],43'exchange': instrument['exchange'],44'figi': instrument['figi'],45'min_lot': instrument['lot'],46'currency': instrument['currency'].upper(),47'class_code': instrument['classCode']48}4950write_dict_to_file(instruments_cache_filename, instruments_cache)51525354