Metadata-Version: 2.0
Name: smk-python-sdk
Version: 1.0.8
Summary: Smarkets Python SDK - API clients and utility library
Home-page: https://github.com/smarkets/smk_python_sdk
Author: Smarkets Limited
Author-email: support@smarkets.com
License: MIT
Download-URL: https://github.com/smarkets/smk_python_sdk/downloads/smk_python_sdk-1.0.8.tar.gz
Keywords: Smarkets,betting exchange
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Requires-Dist: decorator
Requires-Dist: injector
Requires-Dist: requests
Requires-Dist: requests-oauthlib
Requires-Dist: protobuf (>=2.5.0)
Requires-Dist: six
Requires-Dist: simplejson

smk-python-sdk
==============

.. image:: https://travis-ci.org/smarkets/smk_python_sdk.png?branch=master
   :alt: Build status
   :target: https://travis-ci.org/smarkets/smk_python_sdk

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

Compatible with Python 2.x >= 2.6 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
---------------

.. code-block:: python

    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
'''''''''''''''''''''

.. code-block:: python

    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


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)


