smarkets.streaming_api package¶
smarkets.streaming_api.client module¶
smarkets.streaming_api.exceptions module¶
Core Smarkets API exceptions
-
exception
smarkets.streaming_api.exceptions.ConnectionError¶ Bases:
smarkets.errors.ErrorTCP connection-related error
-
exception
smarkets.streaming_api.exceptions.DecodeError¶ Bases:
smarkets.errors.ErrorHeader decoding error
-
exception
smarkets.streaming_api.exceptions.DownloadError¶ Bases:
smarkets.errors.ErrorRaised when a URL could not be fetched
-
exception
smarkets.streaming_api.exceptions.InvalidCallbackError¶ Bases:
smarkets.errors.ErrorInvalid callback was specified
-
exception
smarkets.streaming_api.exceptions.InvalidUrlError¶ Bases:
smarkets.errors.ErrorRaised when a URL is invalid
-
exception
smarkets.streaming_api.exceptions.LoginError(reason)¶ Bases:
smarkets.errors.ErrorRaised when a login is not successful
-
exception
smarkets.streaming_api.exceptions.LoginTimeout¶ Bases:
smarkets.errors.ErrorRaised when no message is received after sending login request
-
exception
smarkets.streaming_api.exceptions.ParseError¶ Bases:
smarkets.errors.ErrorError parsing a message or frame
-
exception
smarkets.streaming_api.exceptions.SocketDisconnected¶ Bases:
smarkets.errors.ErrorSocket was disconnected while reading
smarkets.streaming_api.session module¶
Smarkets TCP-based session management
-
class
smarkets.streaming_api.session.Session(settings, inseq=1, outseq=1, account_sequence=None)¶ Bases:
objectManages TCP communication via Smarkets streaming API
-
connect()¶ Connects to the API and logs in if not already connected
-
connected¶ Returns True if the socket is currently connected
-
disconnect()¶ Disconnects from the API
-
flush()¶ Flush payloads to the socket
-
logout()¶ Disconnects from the API
-
next_frame()¶ Get the next payload and increment inseq.
Warning
Payload returned by next_frame has to be consumed before next call to next_frame happens.
Returns: A payload or None if no payloads in buffer. Return type: smarkets.streaming_api.session.Frameor None
-
raw_socket¶ Get raw socket used for communication with remote endpoint. :rtype:
socket.socket
-
send()¶ Serialise, sequence, add header, and send payload
-
-
class
smarkets.streaming_api.session.SessionSettings(username=None, password=None, token=None, host='stream.smarkets.com', port=3801, ssl=True, socket_timeout=30, ssl_kwargs=None, tcp_nodelay=True)¶ Bases:
objectEncapsulate settings necessary to create a new session
-
class
smarkets.streaming_api.session.SessionSocket(settings)¶ Bases:
objectWraps a socket with basic framing/deframing
-
connect()¶ Create a TCP socket connection.
Returns True if the socket needed connecting, False if not
-
connected¶ Returns True if the socket is currently connected
-
disconnect()¶ Close the TCP socket.
-
recv()¶ Read stuff from underlying socket.
Return type: byte string
-
send(byte_array)¶ Returns: Number of sent bytes Return type: int
-