"""Example - How to get figi by name of ticker.""" import logging import os from pandas import DataFrame from t_tech.invest import Client, SecurityTradingStatus from t_tech.invest.services import InstrumentsService from t_tech.invest.utils import quotation_to_decimal TOKEN = os.environ["INVEST_TOKEN"] logging.basicConfig(format="%(asctime)s %(levelname)s:%(message)s", level=logging.DEBUG) logger = logging.getLogger(__name__) def main(): """Example - How to get figi by name of ticker.""" ticker = "VTBR" # "BRH3" "SBER" "VTBR" with Client(TOKEN) as client: instruments: InstrumentsService = client.instruments tickers = [] for method in ["shares", "bonds", "etfs", "currencies", "futures"]: for item in getattr(instruments, method)().instruments: tickers.append( { "name": item.name, "ticker": item.ticker, "class_code": item.class_code, "figi": item.figi, "uid": item.uid, "type": method, "min_price_increment": quotation_to_decimal( item.min_price_increment ), "scale": 9 - len(str(item.min_price_increment.nano)) + 1, "lot": item.lot, "trading_status": str( SecurityTradingStatus(item.trading_status).name ), "api_trade_available_flag": item.api_trade_available_flag, "currency": item.currency, "exchange": item.exchange, "buy_available_flag": item.buy_available_flag, "sell_available_flag": item.sell_available_flag, "short_enabled_flag": item.short_enabled_flag, "klong": quotation_to_decimal(item.klong), "kshort": quotation_to_decimal(item.kshort), } ) tickers_df = DataFrame(tickers) ticker_df = tickers_df[tickers_df["ticker"] == ticker] if ticker_df.empty: logger.error("There is no such ticker: %s", ticker) return figi = ticker_df["figi"].iloc[0] print(f"\nTicker {ticker} have figi={figi}\n") print(f"Additional info for this {ticker} ticker:") print(ticker_df.iloc[0]) if __name__ == "__main__": main()