#!/usr/bin/env python3 import asyncio import datetime import sys import refinitiv.dataplatform as rdp # Useful for debugging import logging logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.DEBUG) APP_KEY = 'app id here' MACHINE_ID = 'machine id here' PASSWORD = 'password here' my_session = rdp.PlatformSession( APP_KEY, rdp.GrantPassword( username=MACHINE_ID, password=PASSWORD), on_state=lambda session, state, message: print("Platform session state: ", state, message), on_event=lambda session, event, message: print("Platform session event: ", event, message) ) my_session.set_log_level(logging.DEBUG) my_session.open() ric_list = ['/.TCHI', '/.HSI'] view_list = ['TRDPRC_1', 'SALTIM', 'TRADE_DATE'] def process_message(instrument_name, fields): print('Update received for streaming_price: {}: {}'.format(instrument_name, fields)) streaming_prices = rdp.StreamingPrices( session = my_session, universe = ric_list, #fields = view_list, on_refresh = lambda streaming_price, instrument_name, fields : process_message(instrument_name, fields), on_update = lambda streaming_price, instrument_name, fields : process_message(instrument_name, fields), on_status = lambda streaming_price, instrument_name, status : process_message(instrument_name, status), on_complete = lambda streaming_price : print('Complete') ) streaming_prices.open() asyncio.get_event_loop().run_forever()