Skip to main content

GRVT Python SDK

Project description

uv logo pre-commit logo ruff logo bandit logo pytest logo

Docker logo GitHub Actions logo

GRVT Python SDK

CodeQL GitHub CI GitHub license


Table of Contents


What's in the library

GRVT Python SDK library provides Python classes and utility methods for easy access to GRVT trading environments.

Environments

  • testnet - Testnet environment.
  • staging - Development Integration environment.
  • dev - Development environment.

SDK Library provides two types of classes:

  1. Raw - thin wrapper classes around Rest API.
  2. Ccxt-compatible - classes with ccxt-like methods. Provide access to both Rest API and WebSockets.

Files

Raw access:

  • grvt_raw_base.py - base classes for Rest API access.
  • grvt_raw_env.py - definitions of environments for raw access.
  • grvt_raw_signing.py - utility methods for signing orders.
  • grvt_raw_sync.py - class for raw synchronous calls to Rest API.
  • grvt_raw_async.py - class for raw asynchronous calls to Rest API.

CCXT-compatible access:

  • grvt_ccxt_utils.py - utility methods for signing orders.
  • grvt_ccxt_env.py - definitions of environments for ccxt-like access.
  • grvt_ccxt_base.py - base class for Rest API access.
  • grvt_ccxt.py - class for synchronous calls to Rest API.
  • grvt_ccxt_pro.py - class for asynchronous calls to Rest API.
  • grvt_ccxt_ws.py - class for WebSocket calls.

Installation via pip

pip install grvt-pysdk

Configuration

Setup these environment variables:

export GRVT_PRIVATE_KEY="`Secret Private Key` in API setup"
export GRVT_API_KEY="`API Key` in API setup"
export GRVT_TRADING_ACCOUNT_ID=<`Trading account ID` in API>
export GRVT_ENV="testnet"
export GRVT_END_POINT_VERSION="v1"
export GRVT_WS_STREAM_VERSION="v1"

Usage

Examples of how to use various methods to connect to GRVT API:

  • GRVT CCXT - Example of usage of CCXT-compatible Python class GrvtCcxt with synchronous Rest API calls.
  • GRVT CCXT Pro - Example of usage of CCXT.PRO-compatible Python class GrvtCcxtPro with asynchronous Rest API calls.
  • GRVT CCXT WS - Example of usage of CCXT.PRO-compatible Python class GrvtCcxtWS with asynchronous Rest API calls + Web Socket subscriptions + JSON RPC calls over Web Sockets.
  • GRVT API Sync - Synchronous API client for GRVT
  • GRVT API Async - Asynchronous API client for GRVT

Contributor's guide

Prerequisites

Installation of a source code

  1. Clone the git repository

    git clone https://github.com/grvt-technologies/grvt-pysdk.git
    
  2. Go into the project directory

    cd grvt-pysdk/
    
  3. Checkout working branch

    git checkout <branch>
    
  4. Install dependencies

    make install
    
  5. Enable pre-commit hooks

    pre-commit install
    

Manually run example files

Example files run extensive testing of the SDK API classes and log details about details of using GRVT API.

  1. Change to tests folder

    cd tests/pysdk
    
  2. Run example of using synchronous CCXT-compatible calls to Rest API via grvt_ccxt.py, class GrvtCcxt

    uv run python3 test_grvt_ccxt.py
    
  3. Run example of using asynchronous CCXT-compatible calls to Rest API via grvt_ccxt_pro.py, class GrvtCcxtPro

    uv run python3 test_grvt_ccxt_pro.py
    
  4. Run example of using WebSockets subscriptions and JSON RPC calls via grvt_ccxt_ws.py, class GrvtCcxtWS

    uv run python3 test_grvt_ccxt_ws.py
    

What's in the box ?

uv

uv is an extremely fast Python package and project manager, written in Rust.

pyproject.toml file (pyproject.toml): orchestrate your project and its dependencies uv.lock file (uv.lock): ensure that the package versions are consistent for everyone working on your project

For more configuration options and details, see the configuration docs.

pre-commit

pre-commit is a framework for managing and maintaining multi-language pre-commit hooks.

.pre-commit-config.yaml file (.pre-commit-config.yaml): describes what repositories and hooks are installed

For more configuration options and details, see the configuration docs.

ruff

ruff is an extremely fast Python linter, written in Rust.

Rules are defined in the pyproject.toml.

For more configuration options and details, see the configuration docs.

mypy

mypy is an optional static type checker for Python that aims to combine the benefits of dynamic (or "duck") typing and static typing.

Rules are defined in the pyproject.toml.

For more configuration options and details, see the configuration docs.

bandit

bandit is a tool designed to find common security issues in Python code.

Rules are defined in the pyproject.toml.

For more configuration options and details, see the configuration docs.

docformatter

docformatter is a tool designed to format docstrings to follow PEP 257.

Options are defined in the .pre-commit-config.yaml.


Testing

We are using pytest & pytest-cov to write tests.

To run tests with coverage:

make test
Name                                      Stmts   Miss  Cover
-------------------------------------------------------------
src/pysdk/__init__.py                         0      0   100%
src/pysdk/grvt_ccxt.py                      238     21    91%
src/pysdk/grvt_ccxt_base.py                 196     57    71%
src/pysdk/grvt_ccxt_env.py                   48     12    75%
src/pysdk/grvt_ccxt_logging_selector.py      15      7    53%
src/pysdk/grvt_ccxt_pro.py                  245     69    72%
src/pysdk/grvt_ccxt_test_utils.py            30      4    87%
src/pysdk/grvt_ccxt_types.py                 41      0   100%
src/pysdk/grvt_ccxt_utils.py                237     89    62%
src/pysdk/grvt_ccxt_ws.py                   275    238    13%
src/pysdk/grvt_raw_async.py                 149    109    27%
src/pysdk/grvt_raw_base.py                  154     69    55%
src/pysdk/grvt_raw_env.py                    27      5    81%
src/pysdk/grvt_raw_signing.py                33     17    48%
src/pysdk/grvt_raw_sync.py                  149    109    27%
src/pysdk/grvt_raw_types.py                1031      0   100%
-------------------------------------------------------------
TOTAL                                      2868    806    72%


=================================================================================================== 8 passed in 58.20s ====================================================================================================

Makefile

We are using Makefile to manage the project.

To see the list of commands:

make
  grvt-pysdk git:(main)  make
help                           Show this help
run                            Run the project
test                           Run the tests
precommit                      Run the pre-commit hooks
lint                           Run the linter
format                         Run the formatter
typecheck                      Run the type checker
security                       Run the security checker
clean                          Clean the project
install                        Install the project
build                          Build the project
publish                        Publish the project

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

grvt_pysdk-0.1.13.tar.gz (198.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

grvt_pysdk-0.1.13-py3-none-any.whl (65.5 kB view details)

Uploaded Python 3

File details

Details for the file grvt_pysdk-0.1.13.tar.gz.

File metadata

  • Download URL: grvt_pysdk-0.1.13.tar.gz
  • Upload date:
  • Size: 198.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.15

File hashes

Hashes for grvt_pysdk-0.1.13.tar.gz
Algorithm Hash digest
SHA256 1ca40d4827965d08a0aae03eb2ee061fc09f68cc7bb2a4e391519d689cec4e79
MD5 1cad1d22c64b9105f4b372ce4b300771
BLAKE2b-256 47dede3f49a598a15dec05bd027202a9231acc6d1457cd066bf30512cfe58070

See more details on using hashes here.

File details

Details for the file grvt_pysdk-0.1.13-py3-none-any.whl.

File metadata

  • Download URL: grvt_pysdk-0.1.13-py3-none-any.whl
  • Upload date:
  • Size: 65.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.15

File hashes

Hashes for grvt_pysdk-0.1.13-py3-none-any.whl
Algorithm Hash digest
SHA256 4e92067bfe96ca37bc18ed77331ed042d55cf4b6e53bdf5bbab201c2cf90682f
MD5 b58df6a3715f5c769cb957d30a3a6208
BLAKE2b-256 e300bedceaf7d073056600ac64efd6de65b5ece0745a9cb057b4ad43fd17f438

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page