Skip to main content

Smarkets Python SDK - API clients and utility library

Project description

Build status

Smarkets Python library (streaming API client, id generation, more to come).

Compatible with Python 2.7 and PyPy 1.9+.

Documentation: http://smarkets-python-sdk.readthedocs.org/en/latest/

Installing using source distribution

When you install smk-python-sdk using PyPI distribution there are no non-Python dependencies. All the Python dependencies will be fetched for you when you install smk-python-sdk.

PyPI page: https://pypi.python.org/pypi/smk_python_sdk

pip install smk-python-sdk

Getting Started

import logging
logging.basicConfig(level=logging.DEBUG)

from smarkets.streaming_api.api import (
    BUY, GOOD_TIL_CANCELLED, OrderCreate, SessionSettings, Session, StreamingAPIClient)

username = 'username'
password = 'password'

settings = SessionSettings(username, password)
settings.host = 'api.smarkets.com'
settings.port = 3701

session = Session(settings)

client = StreamingAPIClient(session)

client.login()
client.ping()
client.read()
client.flush()

market_id = client.str_to_uuid128('fc024')

order = OrderCreate()
order.quantity = 400000 # £40 payout
order.price = 2500 # 25.00%
order.side = BUY
order.market = market_id
order.contract = client.str_to_uuid128('fcccc')
order.time_in_force = GOOD_TIL_CANCELLED

client.send(order)
client.logout()

Registering callbacks

from google.protobuf import text_format

def login_response(msg):
    print("eto.login_response", text_format.MessageToString(msg))

def global_callback(name, msg):
    print(name, text_format.MessageToString(msg))

client.add_handler('eto.login_response', login_response)
client.add_global_handler(global_callback)

Thread Safety

Functions and class members contained in this package are thread safe. Instance members are not thread safe.

Development

GitHub repository: https://github.com/smarkets/smk_python_sdk/

Non-Python dependencies:

  • piqi

  • Google protocol buffers compiler and libraries

You can install Python dependencies by executing:

pip install -r requirements-dev-py2.txt

To build and install call:

python setup.py clean build install

Note: building the package does not fetch the most recent piqi files from their respective locations in setup.py. In order to do so, you must call python setup.py clean, and then python setup.py build.

License

Copyright (C) 2011-2013 Smarkets Limited <support@smarkets.com>

This module is released under the MIT License: http://www.opensource.org/licenses/mit-license.php (or see the LICENSE file)

Project details


Release history Release notifications | RSS feed

This version

1.4.0

Download files

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

Source Distribution

smk_python_sdk-1.4.0.tar.gz (64.5 kB view details)

Uploaded Source

Built Distribution

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

smk_python_sdk-1.4.0-py27-none-any.whl (54.6 kB view details)

Uploaded Python 2.7

File details

Details for the file smk_python_sdk-1.4.0.tar.gz.

File metadata

File hashes

Hashes for smk_python_sdk-1.4.0.tar.gz
Algorithm Hash digest
SHA256 bb3de7b96da7e68aecf9f4ce3c0137b5371f64f1361130892c01bcd047709f98
MD5 6179e1a3bcdb4d74bfee24bacfa60256
BLAKE2b-256 c322f2d3632c118d4387f833db2357ebb13c019b4c0f0d3b7b4b8d2a3c02ce42

See more details on using hashes here.

File details

Details for the file smk_python_sdk-1.4.0-py27-none-any.whl.

File metadata

File hashes

Hashes for smk_python_sdk-1.4.0-py27-none-any.whl
Algorithm Hash digest
SHA256 8722bb4b358e2689ff46440b97d224a96cfb72e00718498a4f0d1787f555d854
MD5 fe7126ed3a3b24b6e270a79aecabdf23
BLAKE2b-256 d9bb11e4773f25d764e8d390540093e6c1061b4b02fe5c416e8fe29fb484ca1c

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