Foxbit
| Status de teste | |
|---|---|
| Versão | |
| Compatibilidade |
Cliente python para API websocket da foxbit.
Instalação
PIP
Para instalar via pip, execute no terminal:
$> pip install foxbit
GIT
Para instalar via git, execute no terminal:
$> git clone https://gitlab.com/qlrddev/foxbit.git
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:
O módulo foxbit é consituído, basicamente, de classes-cliente e de classes-mensagens.
Dentre as classes-cliente, podemos importar a classe base:
>>> from foxbit.client import Client
Ou uma classe-cliente de endpoints públicos (que não requerem autenticação):
>>> from foxbit.client import PublicClient
A classe-mensagem é a classe que cria mensagens na forma definida pela API da foxbit:
>>> from foxbit.frame import 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.
>>> def on_open(ws):
... """Assim que a conexão for aberta, envie uma requisição"""
... print("Connected")
... public_client.getInstruments(
... OMSId=1,
... InstrumentId=1
... )
>>>
Note que a instância public_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;statusque é o estado durante o fechamento;msgque é 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)
... public_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
>>> public_client = PublicClient(
... on_open=on_open,
... on_close=on_close,
... on_message=on_message,
... on_error=on_error
...)
>>>
Execute a função run_forever
>>> public_client.run_forever()
Classes e métodos
-
Classe
foxbit.client.Client: subclasse derivada dewebsocket.WebsocketApp; não possue métodos próprios.-
Classe
foxbit.client.PublicClient: subclasse derivada defoxbit.client.Client; possue métodos próprios:getInstrumentgetInstrumentsgetProductsgetL2SnapshotgetTickerHistorysubscribeTickerunsubscribeTickersubscribeLevel1unsubscribeLevel1subscribeLevel2unsubscribeLevel2onSubscription
-
-
Classe
foxbit.frame.MessageFrame: classe de utilidade para criar mensagens em formato definido:toJSON: tranforma as propriedades da classe em umastrJSON;fromJSONtranforma umastrJSON em uma instância deMessageFrame.
Release files for foxbit 0.0.12
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| foxbit-0.0.12-py3-none-any.whl | Python 3 | none | any | Details |
Release files / foxbit-0.0.12-py3-none-any.whl
| Download URL | foxbit-0.0.12-py3-none-any.whl |
|---|---|
| Size | 12.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3a9a84bc57d01c825401ddb51a416945a535200632205bec0f1620a16ce561da
|
|
BLAKE2b-256 checksum How to use checksums |
778df4a4764f278d4ecbc47f917401eededa608e10644226e4e46870eb498ad2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.2
|