portal to use various api data service
Project description
Asklora Portal
Shared utilities and helper classes used in Asklora projects
Contents
- Clients for external services (MarketData, Broker, PriceData, DAMECAClient, DAMFBClient) and their supporting classes (DAM, pydantic models for xml serialising and de-serialising)
- Helper classes (SingletonMeta, ExtendedEnum, PGPHelper)
- Helper functions (deep_get, get_file_size, get_file_sha1)
Information on specific sections
Broker, PriceData and MarketData client
required .env config when importing these
BROKER_API_URL=brokerurl
MARKET_API_URL=market url
BROKER_KEY=key
BROKER_SECRET=secret
usage
from asklora import Broker
broker = Broker()
broker.create_account(...)
or you can use our Portal class to get the specific model
import asklora
portal = asklora.Portal()
rest = portal.get_broker_client() # get a REST client for trade, user, position , order
marketrest = portal.get_market_client() # get a REST client for market data
eventclient = portal.get_event_client() # get an event client for trade, user, position, order
PriceData (for IEX)
required .env config
IEX_API_URL
IEX_TOKEN
usage
from asklora import PriceData
price_data = PriceData()
price_data.get_lastestPrice("MSFT")
DAMECAClient and DAMFBClient
required .env config
DAM_URL
DAM_CSID
usage
For these clients, you can find the Pydantic models needed by some of the class methods in the models
and enums
module.
for example, in the DAMECAClient
, in the generate_application_payload
method, the first argument accepts DAMApplicationPayload
model that will automatically processed to xml the API endpoint needs.
examples
-
DAMECAClient
from asklora import DAMECAClient, PGPHelper from asklora.models import DAMApplicationPayload client = DAMECAClient() # Build payload payload = DAMApplicationPayload( user_id=56, first_name="Jane", last_name="Smith", ... ) # Needed for encryption pgp_helper = PGPHelper( private_key_path=..., public_key_path=..., remote_public_key_path=..., ) # Send the request client.create_account(payload, pgp_helper=pgp_helper)
-
DAMFBClient
from asklora import DAMFBClient, PGPHelper from asklora.models import InstructionSet, InternalCashTransfer, CancelTransaction client = DAMFBClient() instruction_set = InstructionSet( instructions=[ InternalCashTransfer( id=4, source="U199516", destination="U34516", amount=1000, currency="USD", ), CancelTransaction( id=5, ib_instr_id="3", reason="Wrong destination", ), ] ) pgp_helper = PGPHelper( private_key_path=..., public_key_path=..., remote_public_key_path=..., ) client.create_instruction(instruction_set, pgp_helper=pgp_helper) # if needed, you can also send xml directly payload = """<?xml version="1.0" encoding="UTF-8"?> <instruction_set xmlns="http://www.interactivebrokers.com/fbfb_instruction_set" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.interactivebrokers.com/fbfb_instruction_set fbfb_instruction_set.xsd " creation_date="2019-01-11" id="2450" version="1"> <close_account id="2450"> <client_ib_acct_id>U1234567</client_ib_acct_id> <close_reason> No longer needed </close_reason> </close_account> </instruction_set>""" client.create_instruction(payload, pgp_helper=pgp_helper)
-
Both
You can also initialise one or both of the classes above like this:
from asklora import IBClient eca_client = IBClient.get_ECA_client() fb_client = IBClient.get_FB_client()
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 asklora_portal-1.1.13.tar.gz
.
File metadata
- Download URL: asklora_portal-1.1.13.tar.gz
- Upload date:
- Size: 28.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.1 CPython/3.11.4 Linux/6.4.6-76060406-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25b07072bc9c5df46615a4fbde7ca11954e753129bdb70a44f09f4a1941a38fb |
|
MD5 | 9e13ca22a68cf4676036254e11320640 |
|
BLAKE2b-256 | 5205a18719e8499289b490df476e4c7240fd8d5f6e337a66ea5ba724318bad89 |
File details
Details for the file asklora_portal-1.1.13-py3-none-any.whl
.
File metadata
- Download URL: asklora_portal-1.1.13-py3-none-any.whl
- Upload date:
- Size: 34.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.1 CPython/3.11.4 Linux/6.4.6-76060406-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e60c44675d5bd4fe987546c8b449f01e84277e33f328e2b506bf89b2ba61a5dd |
|
MD5 | c718cda6fa41aa6d77f42c04bcc92755 |
|
BLAKE2b-256 | d84c4a5d06f58fd20c3b6a7b3a97b4025ad2e2b4dfd6349264b47d7da50cf97a |