RDP Lib: KeyError: 'config-change-notifications-enabled'

When I run python from Eclipse, it works fine. But when I build a stand-alone exe file using PyInstaller, the following error is thrown. Looks like it is related to refinitive.dataplatform library (the stand-alone exe file that was built previously and included eikon and refinitiv.data libraries worked fine). Do you now how this error can be fixed?

 

 

File "refinitiv\dataplatform\_external_libraries\python_configuration\configuration.py", line 200, in get_bool

  File "refinitiv\dataplatform\_external_libraries\python_configuration\configuration_set.py", line 110, in __getitem__

  File "refinitiv\dataplatform\_external_libraries\python_configuration\configuration_set.py", line 67, in _from_configs

  File "refinitiv\dataplatform\_external_libraries\python_configuration\configuration_set.py", line 61, in _from_configs

  File "refinitiv\dataplatform\_external_libraries\python_configuration\configuration.py", line 155, in __getitem__

KeyError: 'config-change-notifications-enabled'

Answers

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @RogelynMayAgustin

    The Refinitiv Data Platform Library has been rebranded to the LSEG Data Library for Python.

    Please migrate the application to use the LSEG Data Library for Python instead. The examples are on GitHub.

    You can also refer to this Essential Guide to the Data Libraries - Generations of Python library (EDAPI, RDP, RD, LD) article.

  • Hi @Jirapongse , thank you for the above.

    Client has a few follow-up questions:

    I have a few follow up questions I would appreciate your help with.

     

    1.      The only instance where we used the deprecated refinitiv.dataplatform library was the rdp.search function. I assume that with retiring the library I should switch respectively to either rd.discovery.search or ld.discovery.search functions, which are full equivalents of the rdp.search function. I also understand that with the rebranding to lseg, there is no value in keeping both the rd.discovery.search and ld.discovery.search functions and ld.discovery.search would be a preferred choice.

    2.      Currently we use both eikon and refinitive.data libraries. The area where the use of the two libraries does not overlap is the use of eikon API to perform SCREENER tool searches and the use of the rd API to perform Advanced Search tool searches. Based on the links you provided, I understand that lseg library integrates API for both searches. For the Advanced Search tool, the syntaxis of the ld search function is exactly the same as for the rd search functions. Could you please provide links to the examples of using Screener() function with the lseg library to replicate the ek.get_data(“TR(“SCREEN(U(…)))”) function? (For eikon, we export the functions from the screener tool ‘as functions’ to identify the correct syntaxis. I wonder if there is also a simple way to build the function syntaxis for the lseg Screener() function).

    3.      The links you provided indicate the api key is required for both desktop and platform sessions (Example.DataLibrary.Python/Examples/4-Session/EX-4.01.01-Sessions.ipynb at lseg-data-examples · LSEG-API-Samples/Example.DataLibrary.Python · GitHub). However, we currently use the api key only with the eikon library and the rd functions use only our credentials to open a session. From the ‘easy to use’ perspective, the preference is to connect automatically to the database without using the api key (the login information is confirmed once in a few month, so the connection is created in most cases automatically without requiring any action form the user). I wonder is there a ‘recommended’ approach to create a session (e.g., setting a configuration file with the api key, credentials, and log output for each user)? Or the trade off in this case is between the connection simplicity and the connection robustness (e.g., possibility to identify easily any connection problems).