Skip to main content

A python client for foxbit exchange API

Project description

Foxbit.py

Cliente python para API websocket da foxbit

Instalação

PIP

Para instalar via pip, execute no terminal:

$> pip install foxbit.py

GIT

Para instalar via git, execute no terminal:

$> git clone https://github.com/lunhg/foxbit.py

Testar

Para testar o código-fonte, instale o pacote tox e execute:

$> tox

Uso

O exemplo apresentado aqui é feito no console. Mas também funciona em um script ou em um notebook.

Existem exemplos na pasta examples/ que podem auxiliar.

Configuração do ambiente virtual

Para experimentar, sem comprometer o seu sistema, é recomendado usar a abordagem git de instalação e configurar um ambiente virtual.

Para configuração do ambiente virtual, é necessária a instalção do pacote virtualenv. Para isso, execute:

$> pip install virtualenv
$> virtualenv <meu_nome_de_ambiente_virtual>
$> source ./<meu_nome_de_ambiente_virtual>/bin/activate
$> pip install -e .

Adentre no console do python:

$> python
Python 3.10.1 (main, Xxx XXXX, XX:XX:XX) [GCC X.Y.Z] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Importe classes e métodos:

>>> from foxbit.client import Client
>>> from foxbit.frame import MessageFrame
  • Classe foxbit.client.Client: subclasse derivada de websocket.WebsocketApp;
  • Classe foxbit.frame.MessageFrame: classe de utilidade para criar mensagens em formato definido:
    • Possue o método de instância toJSON que tranforma, apropriadamente, as propriedades da classe em uma str JSON;
    • Possue o método estático fromJSON que tranforma, apropriadamente, uma str JSON em uma instância de MessageFrame;

Defina funções de callback:

on_open

Função que é executada assim que a conexão com os servidores da Foxbit são estabelecidos. Requer 1 argumento, ws, que é o próprio cliente websocket.

Note que aqui podemos enviar um frame, através do método send, na forma de uma string JSON, contendo:

  • o tipo de mensagem;
  • a sequência da mensagem;
  • o endpoint da mensagem;
  • o payload da mensagem;
>>> def on_open(ws):
...   """Assim que a conexão for aberta, envie uma requisição"""
...   print("Connected")
...   frame = MessageFrame(
...      endpoint='GetInstruments',
...      payload={'OMSId': 1}
...   )
...   client.send(frame.toJSON())
>>>

Note que a instância client ainda será definida posteriormente

on_close

Função que é executada assim que a conexão com os servidores da Foxbit são fechados. Requer três argumento:

  • ws, que é o próprio cliente websocket;
  • status que é o estado durante o fechamento;
  • msg que é uma mensagem do servidor;
>>> def on_close(ws, status, msg):
...   """Assim que a conexão for fechada, crie uma mensagem"""
...   print("Disconnected with status {}: {}".format(status, msg))
>>>

on_message

Função que é executada assim que uma mensagem é recebida. Requer dois argumentos, ws, que é o próprio cliente websocket, e msg, que é a mensagem recebida. Note que aqui podemos fechar a conexão através do método close.

>>> def on_message(ws, msg):
...   """"Assim que a mensagem for recebida, 
...   transforme-a em um `dict`, imprima e feche a conexão"""
...   parsed = MessageFrame.fromJSON(msg)
...   print(parsed)
...   client.close()
>>>

on_error

função que é executada assim que algum erro é estabelecido. Requer dois argumentos, ws, que é o proóprio cliente websocket, e err, que é o proório erro.

>>> def on_error(ws, err):
...   print(err)
>>>

Defina uma instância de cliente

>>> client = Client(
...  on_open=on_open,
...  on_close=on_close,
...  on_message=on_message,
...  on_error=on_error
...)
>>>

Execute a função run_forever

>>> client.run_forever()

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

foxbit-0.0.1-py3-none-any.whl (13.7 kB view hashes)

Uploaded Python 3

Supported by

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