skip to navigation
skip to content

Not Logged In

smk_python_sdk 1.3.5

Smarkets Python SDK - API clients and utility library

Latest Version: 3.0.0

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)

 
File Type Py Version Uploaded on Size
smk_python_sdk-1.3.5-py27-none-any.whl (md5) Python Wheel 2.7 2014-08-13 52KB
smk_python_sdk-1.3.5.tar.gz (md5) Source 2014-08-13 62KB
  • Downloads (All Versions):
  • 333 downloads in the last day
  • 3196 downloads in the last week
  • 11296 downloads in the last month