Problem with refinitiv-data.config.json for refinitiv-data library

I have made changes to refinitiv-data.config.json file, but it seems they are not taken over. How to test whether the config is proper considered.

Project structure:

1714725292672.png

My config file is as follows:

{

"sessions": {

"default":"platform.rdp",

"platform": {

"rdp": {

"app-key": "xxx",

"username": "xxx",

"password": "xxx"

}

}

},

"apis": {

"data": {

"datagrid": {

"underlying-platform": "udf"

}

}

}

}

and I am trying to open a session:

import os

os.environ["RD_LIB_CONFIG_PATH"] = "./Configuration"

import refinitiv.data as rd

from refinitiv.data.content import fundamental_and_reference

import datetime

rd.open_session() -> error here:

[Error 401] - {'error': 'invalid_client', 'error_description': 'Invalid Application Credential.'}

<refinitiv.data.session.Definition object at 0x1d196f09e50 {name='rdp'}>

When I use the same credentials directly with :

session = rd.session.platform.Definition(

app_key='xxx',

grant=rd.session.platform.GrantPassword(

username= "xxx",

password="xxx"

)

).get_session()

session.open()

rd.session.set_default(session) -> I get my session opened and I also get data from

response = fundamental_and_reference.Definition(

["TRI.N", "IBM.N"],

["TR.Revenue", "TR.GrossProfit"]

).get_data()

response.data.df

I want to use config file as I am testing the differences in outputs between UDF Datagrid and RDP Datagrid

Welcome!

It looks like you're new here. Sign in or register to get started.

Best Answer

  • wasin.w
    wasin.w admin
    Answer ✓

    Hello @Anastasiia.Shcherbak

    As mentioned by my colleague, the Platform Session does not support the UDF. You need to use the Desktop Session (the Workspace/Eikon desktop application is required).

    I did a quick test with the Desktop Session as follows:

    "sessions": {
            "default": "desktop.workspace",
            "desktop": {
                "workspace": {
                    "app-key": "App_Key"
                }
            }
        }

    Result:

    workspace.png

    Then when I tested with the Platform Session:

    "sessions": {
            "default": "platform.platform",
            "platform": {
                "rdp": {
                    "app-key": "App Key",
                    "username": "User ID",
                    "password": "Password",
                    "auto-reconnect": true,
                    "server-mode": true,
                    "signon_control": true
                }
            }
            
        }

    Result:

    platform-session.png


Answers

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @Anastasiia.Shcherbak

    Thank you for reaching out to us.

    For readability, the code and configurations should be posted in the code block.

    1714730502346.png

    I have tested the configuration and it worked fine.

    You may need to enable logging in the library to verify what the problem is by using the following code.

    config = rd.get_config()
    config.set_param("logs.transports.file.enabled", True)
    config.set_param("logs.transports.file.name", "refinitiv-data-lib.log")
    config.set_param("logs.level", "debug")
    rd.open_session()

    Then, the refinitiv-data-lib.log file will be created. Please share this log file.

    I found the following message in the log file.

    [2024-05-03T17:00:33.267845+07:00] - [sessions.platform.rdp.0] - [DEBUG] - [109384 - MainThread] - [_definition] - [_update_content_type] - UDF DataGrid service cannot be used with platform sessions, RDP DataGrid will be used instead. The "/apis/data/datagrid/underlying-platform = 'udf'" parameter will be discarded, meaning that the regular RDP DataGrid service will be used for Fundamental and Reference data requests.

    This indicates that the platform.rdp session doesn't support UDF DataGrid.

  • I am getting the following log:

    [2024-05-03T12:51:11.215357+02:00] - [sessions.platform.rdp.17] - [DEBUG] - [8728 - MainThread] - [_platform_session] - [_connection] - Created session connection SessionCxnType.REFINITIV_DATA
    [2024-05-03T12:51:11.217347+02:00] - [sessions.platform.rdp.17] - [DEBUG] - [8728 - MainThread] - [_session_provider] - [session_provider] - + Session created: PlatformSession
    name = 'rdp'
    connection = RefinitivDataConnection
    stream_auto_reconnection = True
    authentication_token_endpoint_url = https://api.refinitiv.com/auth/oauth2/v1/token
    signon_control = True
    server_mode = False
    state = OpenState.Closed
    session_id = 17
    logger_name = sessions.platform.rdp.17

    What would be then the config to be able to use udf? Something like below did not work for me:

    {
    "sessions": {
    "platform": {
    "default": {
    "app-key": "APP_KEY",
    "username": "USERNAME",
    "password": "PASSWORD",
    "auto-reconnect": true,
    "server-mode": true,
    "signon_control": true
    }
    }
    },
    "apis": {
    "data": {
    "datagrid": {
    "underlying-platform": "udf"
    }
    }
    }
    }
  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @Anastasiia.Shcherbak

    As far as I know, the UDF works with the desktop.workspace. You need to run Eikon or Workspace on the maching to use the desktop.workspace session.

    "default": "desktop.workspace",

    Moreover, no need to overide it on the configuration file.

    Please use the configuration file on GitHub.

Welcome!

It looks like you're new here. Sign in or register to get started.

Welcome!

It looks like you're new here. Sign in or register to get started.