I am getting Session not opened error while using refinitiv.data

I am trying to pull some reference data using refinitiv.data via python code but getting Errors: ValueError: Session is not opened. Can't send any request. Can you please help.

Code:

import refinitiv.data as rd
from refinitiv.data.content import fundamental_and_reference

platform_session = rd.session.platform.Definition(
    app_key="XXXXX",
    grant=rd.session.platform.GrantPassword(
        username="XXX",
        password="XXX"
    ),
    signon_control=True   # this will avoid failed token request if you run multiple time you code without closing the session
    ).get_session()
    
rd.session.set_default(platform_session)
rd.open_session()
response = fundamental_and_reference.Definition(
    ["TRI.N", "IBM.N"],
    ["TR.Revenue", "TR.GrossProfit"]
    ).get_data()
    
print(response.data.df)
rd.close_session()

Errors:

An error occurred while requesting URL('http://localhost:9001/api/status').
ConnectError('[WinError 10061] No connection could be made because the target machine actively refused it')
An error occurred while requesting URL('http://localhost:9000/api/status').
RemoteProtocolError('Server disconnected without sending a response.')
An error occurred while requesting URL('http://localhost:9060/api/status').
ConnectError('[WinError 10061] No connection could be made because the target machine actively refused it')
Error: no proxy address identified.
Check if Desktop is running.

ValueError: Session is not opened. Can't send any request

Answers

  • This content has been removed.
  • Hello @NaveenS

    I can replicate the same issue with both Data Library version 1 (refinitiv-data) and Data library version 2 (lseg-data) .

    It seems the code needs the Session object as follows:

    import os
    from dotenv import dotenv_values
    import lseg.data as ld
    from lseg.data import session
    from lseg.data.content import fundamental_and_reference

    config = dotenv_values(".env")

    if __name__=='__main__':
    try:
    session = ld.session.platform.Definition(
    app_key = config['APP-KEY'],
    grant = ld.session.platform.GrantPassword(
    username = config['USERNAME'],
    password = config['PASSWORD']
    ),
    signon_control=True
    ).get_session()
    session.open()
    print(f'Session Status: {session.open_state}')
    if str(session.open_state) == 'OpenState.Opened':
    ld.session.set_default(session)
    response = fundamental_and_reference.Definition(
    universe= ["TRI.N", "IBM.N"],
    fields=["TR.Revenue", "TR.GrossProfit"]
    ).get_data()
    print(response.data.df)
    except Exception as exp:
    print(f'Exception {exp}')
    finally:
    ld.close_session()
    image.png
  • Hi, I have the follow error when trying the following code

    import refinitiv.data as rd
    rd.get_config()["http.request-timeout"] = 300
    rd.open_session()

    An error occurred while requesting URL('http://localhost:9060/api/handshake').RemoteProtocolError('Server disconnected without sending a response.')Error on handshake url http://localhost:9060/api/handshake : RemoteProtocolError('Server disconnected without sending a response.')
    

    Any help to overcome the problem is appreciated!