
Last Updated: April 2025
With the rise of Data Scientists, Financial coders, Casual Developers, or Traders (aka Citizen Developers), and the rapid growth of Jupyter application, the JupyterLab (aka Notebook) is a de-facto tool of those Citizen Developers. Thanks to the IPython kernel, Notebook provides a powerful interactive shell, interactive data visualization, embedded documentation, and supports various programming languages such as Python (native supported), R, Julia, and much more.
The Notebook application is easier to use when comparing to other traditional IDEs (Integrated development environment) or Editors. Citizen Developers do not need much programming language or technology experience to use the Notebook application. However, The Jupyter Notebook also provides Coding and Magic features which make Notebook a friendly development environment for both Citizen and Professional Developers.
This article demonstrates how to enable Python/Jupyter application coding autocompletion feature. The demo application uses content from the Data Library for Python as an example library.
Introduction to the Data Library for Python
The Data Library for Python provides a set of ease-of-use interfaces offering coders uniform access to the breadth and depth of financial data and services available on the Workspace, RDP, and Real-Time Platforms. The API is designed to provide consistent access through multiple access channels and target both Professional Developers and Financial Coders. Developers can choose to access content from the desktop, through their deployed streaming services, or directly to the cloud. With the Data Library, the same Python code can be used to retrieve data regardless of which access point you choose to connect to the platform.

The Data Library are available in the following programming languages:
For more deep detail regarding the Data Library for Python, please refer to the following articles and tutorials:
Disclaimer
This article is based on Data Library Python versions 2.1.1
This is all I have to say about the Data Library.
Python built-in help
The Python programming language comes with a built-in help() function to display documentation of modules, functions, classes, objects, etc with the following syntax:
help([object])
However, the result is not always easy to read as the following examples:

or

For the library that keeps involving like Data Library for Python, this is inconvenient even the Library itself is easy to use.
IPython Autocompletion
Fortunately, the JupyterLab comes with the IPython magic command %config Completer.use_jedi = False statement that enables the library/function autocompletion (like IntelliSense in Microsoft development environment term).
You need to set the magic command %config Completer.use_jedi = False statement at the top cell of the Notebook application (like this Notebook).

Once you have enabled and run the %config Completer.use_jedi = False magic command, you can trigger the code autocompletion by pressing the tab button after the "." character.

This IPython command also enables the "shift + tab" buttons to show the function help and tooltip information.

You can also use "?" at the end of the function (without ()) to display documentation for objects and methods in the IPython environment.

Please note that all IPython helpers and autocompletion magic support all Python libraries in the Notebook environment, not limit to only Data Library. I am demonstrating with the Data Library get_history() method that returns data as a DataFrame object.

This lets developers interact with an application easier.
Example Code:
# Request Historical Data of Tesla Inc.
df_tesla = ld.get_history(universe = 'TSLA.O')
df.head(3)

LSEG Workspace CodeBook
If you are LSEG Workspace user, you can access CodeBook app, a cloud-hosted Jupyter Notebook development environment for Python scripting from the application. The CodeBook is natively available in Workspace as an app (no installation required!!), providing access to LSEG APIs that are already pre-installed on the cloud.
One benefit of using the CodeBook app is the environment has already enabled Jupyter Notebook magics for you. You can use all code autocompletion shortcuts (tab, shift + tab, and ?) without setting any IPython Magic in your Notebook.

Conclusion and Next Step
Some Professional Developers may think Jupyter Notebook (and JupyterLab) is just a learning tool for Casual Developers like Data Scientists. However, the tool provides enough coding/development features for a wide range of Developers. The IPython Code Autocompletion feature (and other Magics) helps developers implement the code logic and navigate through the libraries/APIs in the same experience as the traditional IDEs.
There is some new development project that tries to merge the benefits/features of the traditional IDEs and Jupyter Notebook like Netflix's Polynote. While the JupyterLab also keeps evolving to make a better development environment and easier to use.
At the same time, the Data Library for Python lets developers rapidly access LSEG content from various platforms with a few lines of code that easy to understand and maintain. Developers can focus on implement the business logic or analysis data without worry about the connection, authentication detail with the Platforms.
References
You can find more details regarding the Data Library and Jupyter Notebook from the following resources:
- LSEG Data Library for Python on the LSEG Developer Community website.
- Data Library for Python - Reference Guide
- The Data Library for Python - Quick Reference Guide (Access layer) article.
- Essential Guide to the Data Libraries - Generations of Python library (EDAPI, RDP, RD, LD) article.
- Data Library for Python Examples on GitHub repository.
- Jupyter Project Official page.
- Jupyter Notebook Shortcuts.
- IPython Built-in magic commands.
- Jupyter Notebook: An Introduction.
- Jupyter Lab: Evolution of the Jupyter Notebook.
- 10 Compelling Reasons you Should Use JupyterLab for Data Science Coding.
For any questions related to this article or Data Library, please use the Developers Community Q&A Forum.