- Introduction
- Concepts and Design
-
CONFIGURATION
-
SESSION LAYER
- About the Session Layer
-
Session
-
session.Definition
- Definition
-
Definition methods
-
session.desktop.Definition
- Definition
-
Definition methods
-
session.platform.Definition
- Definition
-
Definition methods
-
Functions
- Callback functions
- Session event codes
- Session states
-
ACCESS LAYER
- About the Access Layer
- Configuration
-
Dates and calendars
-
News
-
Functions
- open_session
- close_session
- get_data
- get_history
-
open_pricing_stream
- open_pricing_stream
- PricingStream
- PricingRecorder
-
PricingStream methods
-
PricingRecorder methods
-
CONTENT LAYER
- About the Content Layer
-
Fundamental and Reference
- About Fundamental And Reference
-
Definition
- Definition
-
Definition methods
- RowHeaders
-
Historical Pricing
- About Historical Pricing
-
Events
- About Events
- Definition
-
Definition methods
-
Summaries
- About Summaries
- Definition
-
Definition methods
- Historical pricing event types
- Historical pricing adjustments
- Historical pricing market session
-
News
- About news
-
News headlines
- About news headlines
- Definition
-
Definition methods
- Response
-
News stories
- About news stories
- Definition
-
Definition methods
- Response
-
Top news
- About top news
- Definition
-
Definition methods
- Response
-
hierarchy
- Definition
- TopNewsId
-
Definition methods
-
Online reports
- About online reports
- Definition
-
Definition methods
- Response
-
hierarchy
- Definition
-
Definition methods
-
Images
- About images
- Definition
-
Definition methods
- Response
- News SortOrder
-
Pricing
- About pricing
- Definition
-
Definition methods
-
pricing stream methods
-
pricing.chain
- About pricing.chain
- Definition
-
Definition methods
- Pricing stream states
-
IPA FinancialContracts
- About financial contracts
- Definition
-
Bond
- About bond
- Definition
-
Definition methods
-
Interfaces & Enumerations
- PricingParameters
- RoundingParameters
- BenchmarkYieldSelectionMode
- BusinessDayConvention
- DayCountBasis
- AdjustInterestToPaymentDate
- AmortizationFrequency
- AmortizationItem
- AmortizationType
- Direction
- Frequency
- IndexCompoundingMethod
- InterestType
- StubRule
- PaymentRollConvention
- PriceSide
- ProjectedIndexCalculationMethod
- RedemptionDateType
- Rounding
- RoundingType
- YieldType
- QuoteFallbackLogic
- CreditSpreadType
- DividendType
- VolatilityTermStructureType
- VolatilityType
-
Cap Floor
- About cap_floor
- Definition
-
Definition methods
-
Interfaces & Enumerations
-
CDS
- About cds
- Definition
-
Definition methods
-
Interfaces & Enumerations
-
Fx Cross
- About FX Cross
- Definition
-
Definition methods
-
Interfaces & Enumerations
-
IR Swap
- About Swap
- Definition
-
Definition methods
-
Interfaces & Enumerations
-
Option
- About option
- Definition
-
Definition methods
-
Interfaces & Enumerations
-
Repo
- About repo
- Definition
-
Definition methods
-
Interfaces & Enumerations
-
Swaption
- About swaption
- Definition
-
Definition methods
-
Interfaces & Enumerations
-
Term Deposit
- About term deposit
- termDeposit.Definition
-
Definition methods
-
Interfaces & Enumerations
- Response
-
IPA Curves
- About curves
-
Forward Curves
-
ZcCurves
-
IPA Surfaces
- About Surface
-
Cap
- About cap
- Definition
-
Definition methods
-
Interfaces & Enumerations
-
Eti
-
Fx
- About fx
- Definition
-
Interfaces & Enumerations
-
Swaption
- Definitions
-
Interfaces & Enumerations
- Response
-
Search
- About search
- Definition
-
Definition methods
-
SearchViews
-
SymbolConversion
- About SymbolConversion
- Definition
-
Definition methods
-
Interfaces & Enumerations
-
Estimates
- About Estimates
-
Estimates actual values for reported annual periods
- Definition
-
Definition methods
-
Estimates actual values for reported interim periods
- Definition
-
Definition methods
-
Estimates actual values for KPI Measures for reported annual periods
- Definition
-
Definition methods
-
Estimates actual values for KPI Measures for reported interim periods
- Definition
-
Definition methods
-
Annual estimates summary data for periodic estimates measures
- Definition
-
Definition methods
-
Interim estimates summary data for periodic estimates measures
- Definition
-
Definition methods
-
Estimates monthly historical snapshot value for last 12 months for all annual period estimates measures
- Definition
-
Definition methods
-
Estimates monthly historical snapshot value for last 12 months for all interim period estimates measures
- Definition
-
Definition methods
-
Estimates monthly historical snapshot value for non-periodic estimates measures for the last 12 months
- Definition
-
Definition methods
-
Estimates monthly historical snapshot value for recommendations for the last 12 months
- Definition
-
Definition methods
-
Estimates summary values for KPI measures for annual periods
- Definition
-
Definition methods
-
Estimates summary values for KPI measures for interim periods
- Definition
-
Definition methods
-
Estimates monthly historical snapshot value for all KPI measures for the last 12 months
- Definition
-
Definition methods
-
ESG
- About ESG
-
Definition
- Definition
-
Definition methods
-
full_scores
- Definition
-
Definition methods
-
basic_overview
- Definition
-
Definition methods
-
standard_measures
- Definition
-
esg.standard_measures.Definition methods
-
standard_scores
- Definition
-
Definition methods
-
universe
- Definition
-
Definition methods
-
bulk
- Definition
-
Definition methods
-
PackageManager
- PackageManager
-
PackageManager methods
-
Custom Instruments
- About Custom Instruments
- Definition
-
Definition methods
-
Events
- Definition
-
Definition methods
-
Summaries
- Definition
-
Definition methods
-
Manage methods
- Response
-
DELIVERY LAYER
- About the Delivery Layer
-
Endpoint request
- About endpoint_request
- Definition
-
Definition methods
-
Interfaces & Enumerations
-
OMM stream
- About OMM stream
- Definition
-
Definition methods
-
RDP stream
- About RDP stream
- Definition
-
Definition methods
-
CFS
- About CFS
-
CFS buckets
- About CFS buckets
- Definition
-
Definition methods
-
CFS packages
- About CFS packages
- Definition
-
Definition methods
- Response
-
CFS files
- About CFS files
- Definition
-
Definition methods
- Response
-
CFS file-sets
- About CFS file_sets
- Definition
-
Definition methods
- Response
-
CFS file downloader
- About CFS file downloader
- Definition
-
Definition methods
Callback functions
The on_state and on_event session methods take callback functions.
In general, a callback function is a function passed into another function as an argument, which is then invoked to complete a routine or action.
In this case, on_state and on_event methods allow function to be passed as argument.
The main purpose of callbacks is to catch a change of state or an event, depending on which method calls it, and then do something according to the event or state that is caught.
For on_state, the callback function definition should follow the arguments in the order described below:
def on_state_callback(session, state_code, state_msg):
print(f"Session State:{state_code} | {state_msg}")
For on_event, the order is:
def on_event_callback(session, event_code, event_msg):
print(f"Session event:{event_code} | {event_msg}")
As mentioned before, the main purpose is to catch session events or states changes, but you are able to use callbacks for whatever you want.
For on_event, let us take a look at the following code:
import os
import lseg.data as ld
# session creation
DESKTOP_APP_KEY = os.getenv("DESKTOP_APP_KEY")
session = ld.session.desktop.Definition(app_key=DESKTOP_APP_KEY).get_session()
ld.session.set_default(session)
# callback definition
def check_state(state, message, session):
print(f"State: {state}")
print(f"Message: {message}")
print("\n")
# add callback to session
session.on_event(check_state)
# open session
session.open()
# request something
response = ld.content.fundamental_and_reference.Definition(
universe=["IBM"],
fields=["TR.RevenueMean", "TR.Revenue.date"],
row_headers="date"
).get_data()
print(response.data.df.to_string())
# close session
session.close()
In this case, the callback function catches all states during the code execution:
# Session is opening
State: OpenState.Pending
Message: Session opening in progress
# Authentication passed, session is opening, session status changed respectively
State: OpenState.Opened
Message: Session is opened
# Request to fundamental and reference returned data.
# Note: it isn't caught by the callback function, it's a separate print response.
IBM Revenue - Mean Date
Date
2022-07-27 60031219190 NaT
2021-12-31 2021-12-31
# Session successfully closed
State: OpenState.Closed
Message: Session is closed
Catching events is similar:
import os
import lseg.data as ld
# session creation
DESKTOP_APP_KEY = os.getenv("DESKTOP_APP_KEY")
session = ld.session.desktop.Definition(app_key=DESKTOP_APP_KEY).get_session()
ld.session.set_default(session)
# callback definition
def check_event(event, message, session):
print(f"Event: {event}")
print(f"Message: {message}")
print("\n")
# add callbacks to session
session.on_event(check_event)
# open session
session.open()
# define stream
stream = ld.open_pricing_stream(
universe=['GBP=', 'EUR='],
fields=['BID', 'ASK'],
)
# open and then close stream to catch session events
stream.open()
stream.close()
# close session
session.close()
In this example, the callback function catches all event changes during code execution:
# stream is connecting
Event: EventCode.StreamConnecting
Message: None
# stream successfully connected
Event: EventCode.StreamConnected
Message: None