Skip to content

Python module for Persistent SQLite data, Dict and Queue and QuestDB

License

Notifications You must be signed in to change notification settings

ejtraderLabs/ejtraderDB

Repository files navigation

Pypi Publish Release License

Install requirements:

pip install ejtraderDB - U

Description for DictSQlite

import

from ejtraderDB import DictSQlite

api = DictSQLite('history',multithreading=True)


# save to sqlite
api["keyname"] = dataFrame


# read from sqlite

dataFrame = api['keyname']

print(dataFrame)

Description for QuestDb

API wrapper following the basic API requirements of QuestDB described here.

Import

from ejtraderDB import QuestDB

api = QuestDB()

Methods

/imp - Import

/imp streams tabular text data directly into a table. It supports CSV, TAB and pipe (|) delimited inputs with optional headers. There are no restrictions on data size. Data types and structures are detected automatically, without additional configuration. In some cases, additional configuration can be provided to improve the automatic detection as described in user-defined schema.

res = api.imp(filename="test.csv", name="ejtraderDB")

See qdb_api.py or API reference for all possible parameters.

/exec - Execute queries

/exec compiles and executes the SQL query supplied as a parameter and returns a JSON response.

res = api.exec(query="SELECT * FROM ejtraderDB")

SQL queries will be verified via sqlvalidator==0.0.17 there might be issues with QuestDB SQL Syntax.

See qdb_api.py or API reference for all possible parameters.

/exp - Export data

This endpoint allows you to pass url-encoded queries but the request body is returned in a tabular form to be saved and reused as opposed to JSON.

res = api.exp(query="SELECT * FROM ejtraderDB")

you can now choose between the following output formats:

  • CSV: qdb.exp(query="...", output="csv")
  • DataFrame: qdb.exp(query="...", output="pandas"

See qdb_api.py or API reference for all possible parameters.