lusid-express is a python package that makes it quick and easy to get started using Lusid and Luminesce.
Project description
1. lusid-express
1.0.0.0.1. lusid-express
is a python package that makes it quick and easy to get started using Lusid and Luminesce. It is particularly geared toward creating a good notebook user experience when working locally.
-
- 1.1. Requirements
- 1.1.1. Environmental Variable setup
- 1.2. Installation
- 1.1. Requirements
-
- 3.1. Why use this?
-
- 5.1. Lusid Objects
- 5.2. Copy to Clipboard
This repository holds the source code for lusid-express, a python package that makes it quick and easy to get started using Lusid and Luminesce. The package provides convenience in 4 distinct ways.
- Ease of installation of finbourne packages.
%%luminesce
cell magic in your local jupyter installation.- Preset variables that make it possible to ommit boiler plate code.
- Widgets and other visual representations of Lusid objects.
flowchart LR
LE-->UTILS[utils]
LE-->WIDGETS[widgets]
LE-->MAIN[CLI]
LE[lusid_express]-->API[apis]
LE-->DISPLAY[display]
WIDGETS-->Transaction(Transaction Forms):::F
MAIN-->O(Optional Styling Overrides):::F
MAIN-->Vars(Optional startup variables):::F
MAIN-->Mag(Optional magics):::F
DISPLAY-->M(markdown render tools):::F
DISPLAY-->H(HTML render tools):::F
DISPLAY-->S(Styling):::F
DISPLAY-->Scr(javaScript):::F
API-->Ap(authed lusid apis):::F
UTILS-->L(datetime tools):::F
UTILS-->V(case adjustment tools):::F
UTILS-->X(idempotentcy tools):::F
classDef F fill:#e1dddd
1. Getting Started
1.1. Requirements
In order to authenticate the lusid api clients you will need to have generated a secrets file. furthermore, you will need to have an environmental variable named FBN_SECRETS_PATH
set to the full path to your secrets file.
1.1.1. Environmental Variable setup
1.1.1.1.1. Mac OS
Assuming ~/.secret/secrets.json
exists
echo 'export FBN_SECRETS_PATH="~/.secret/secrets.json"' >> ~/.zshrc
NOTE: Your secrets file needs to include the lumi api url under the key: lumiApiUrl
. This url usually takes the form https://{your-domain}.lusid.com/honeycomb
.
1.2. Installation
pip install -U lusid-express
python -m lusid_express --enable all
The above commands install the lusid-express
package and enable enhancements to your IPython environment. If running from a virtual environment these enhancements are limited to that virtual environment.
enabling magic
adds the luminesce
magic command. vars
adds preloaded variables to IPython sessions. format
adds tables with finbourne branding, as well as branded automatic rendering of lusid objects when displayed. The --disable
command is available should you wish to disable these.
2. Convenience package installations
graph LR;
lu[lusid_express]-->lusid_express[Lusid_blundle]
lusid_express --> luminesce_sdk_preview
lusid_express --> lusid_jam
lusid_express --> lusid_sdk_preview
lusid_express --> fbnlab_preview
lusid_express --> finbourne_access_sdk
lusid_express --> finbourne_identity_sdk
lusid_express --> finbourne_insights_sdk_preview
lusid_express --> finbourne_sdk_utilities
lusid_express --> lusid_configuration_sdk_preview
lusid_express --> lusid_drive_sdk_preview
lusid_express --> lusid_notifications_sdk_preview
lusid_express --> lusid_scheduler_sdk_preview
lusid_express --> lusid_workflow_sdk_preview
lusid_express --> lusidtools
lusid_express --> dve_lumipy_preview
luminesce_sdk_preview["luminesce-sdk-preview==1.14.758"]
lusid_jam["lusid-jam==0.1.2"]
lusid_sdk_preview["lusid-sdk-preview==1.1.120"]
fbnlab_preview["fbnlab-preview==0.1.108"]
finbourne_access_sdk["finbourne-access-sdk==0.0.3751"]
finbourne_identity_sdk["finbourne-identity-sdk==0.0.2834"]
finbourne_insights_sdk_preview["finbourne-insights-sdk-preview==0.0.763"]
finbourne_sdk_utilities["finbourne-sdk-utilities==0.0.10"]
lusid_configuration_sdk_preview["lusid-configuration-sdk-preview==0.1.514"]
lusid_drive_sdk_preview["lusid-drive-sdk-preview==0.1.617"]
lusid_notifications_sdk_preview["lusid-notifications-sdk-preview==0.1.923"]
lusid_scheduler_sdk_preview["lusid-scheduler-sdk-preview==0.0.829"]
lusid_workflow_sdk_preview["lusid-workflow-sdk-preview==0.1.810"]
lusidtools["lusidtools==1.0.14"]
dve_lumipy_preview["dve-lumipy-preview==0.1.1075"]
3. Luminesce Magic Command
python -m lusid_express -e magic
3.1. Why use this?
The main motivation to use this cell magic is to enable SQL syntax highlighting through the use of SQL jupyter cells. That is, rather than display a cell on a notebook that holds an SQL string such as:
sql_string = """
@raw_equities =
SELECT *,
'training' as Scope,
Currency as domCcy,
Ticker as DisplayName
FROM @equitiesCSV
WHERE Ticker IS NOT null;
where Ticker is null
and "type" is not "FundsIn";
SELECT *
FROM Lusid.Instrument.Equity.Writer
WHERE toWrite = @raw_equities;
"""
You would instead have a cell with pure SQL that looks like this:
%%luminesce
@raw_equities =
SELECT *,
'training' as Scope,
Currency as domCcy,
Ticker as DisplayName
FROM @equitiesCSV
WHERE Ticker IS NOT null;
where Ticker is null
and "type" is not "FundsIn";
SELECT *
FROM Lusid.Instrument.Equity.Writer
WHERE toWrite = @raw_equities;
VSCode allows the SQL auto-formatting of Jupyter cells. This query runs when the cell is excecuted.
4. Pre-loaded Variables
python -m lusid_express -e vars
Enabling this feature provides the convenience of automatically loading important variables into python notebooks. This allows us to omit boler-plate code from each notebook. It also allows for reduce complexity as token management, authentication, and api client instantiations have all been abstracted away.
Variable Name | Statement | Description |
---|---|---|
lu | import lusid as lu |
Main LUSID package |
lm | import lusid.models as lm |
LUSID models module |
apis | import lusid_express.apis as apis |
convenience package providing pre-authenticated api access. |
5. Formatting
python -m lusid_express -e format
When enabled, format
overrides default rendering of certain types of objects.
5.1. Lusid Objects
Lusid Objects are rendered as tables, displaying the object type as the table's title, and its properties in the table's rows
Equity
Property | Value |
---|---|
identifiers | |
isin | US0378331005 |
figi | BBG000B9XVV8 |
ticker | AAPL |
dom_ccy | USD |
instrument_type | Equity |
5.2. Copy to Clipboard
With every table or Pandas DataFrame a Copy to Clipboard
button is available for excel friendly copy/pasting.
6. Widgets
The widgets module allows you to quickly create forms that represent the input of several entity types. They also include a submit button to execute api calls. Only Transactions
have a widget representation for now, more will be added.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file lusid_express-1.2.2.tar.gz
.
File metadata
- Download URL: lusid_express-1.2.2.tar.gz
- Upload date:
- Size: 134.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e250204bcaf4dd5e240a869cffcd0df5a5103de97a2a01afd14521df1ab1f72 |
|
MD5 | b7c3c1374701b06add389335485807b6 |
|
BLAKE2b-256 | 053fdcec5c07e222416ba4c55263d38a9f40d133633691ff52262d9a779b901d |
File details
Details for the file lusid_express-1.2.2-py3-none-any.whl
.
File metadata
- Download URL: lusid_express-1.2.2-py3-none-any.whl
- Upload date:
- Size: 135.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a5315d7a20eef178ad96acf3c474c6e9b2d3aef37b606732a1c9bb5f3d4595d |
|
MD5 | 7c0d1cf1be8fff3cb77ccc62a5b84311 |
|
BLAKE2b-256 | 6293ffc743bb93fcc696a40c256c69bd47921e9d46cb33aca9d2b5c157921d85 |