python: modify service init argument

This commit is contained in:
なるみ 2022-04-14 16:06:36 +08:00
parent 0864cc2059
commit b659d570dd
4 changed files with 28 additions and 19 deletions

View File

@ -1,3 +1,5 @@
from __future__ import annotations
from typing import Iterator from typing import Iterator
from typing import List from typing import List
from typing import Tuple from typing import Tuple
@ -10,12 +12,14 @@ from .data import KLine
from .data import MarketDataEvent from .data import MarketDataEvent
from .data import Subscription from .data import Subscription
from .data import UserDataEvent from .data import UserDataEvent
from .utils import get_insecure_channel
class UserDataService(object): class UserDataService(object):
stub: bbgo_pb2_grpc.UserDataServiceStub
def __init__(self, stub: bbgo_pb2_grpc.UserDataServiceStub) -> None: def __init__(self, host: str, port: int) -> None:
self.stub = stub self.stub = bbgo_pb2_grpc.UserDataServiceStub(get_insecure_channel(host, port))
def subscribe(self, session: str) -> Iterator[UserDataEvent]: def subscribe(self, session: str) -> Iterator[UserDataEvent]:
request = bbgo_pb2.UserDataRequest(session) request = bbgo_pb2.UserDataRequest(session)
@ -26,9 +30,10 @@ class UserDataService(object):
class MarketService(object): class MarketService(object):
stub: bbgo_pb2_grpc.MarketDataServiceStub
def __init__(self, stub: bbgo_pb2_grpc.MarketDataServiceStub) -> None: def __init__(self, host: str, port: int) -> None:
self.stub = stub self.stub = bbgo_pb2_grpc.MarketDataServiceStub(get_insecure_channel(host, port))
def subscribe(self, subscriptions: List[Subscription]) -> Iterator[MarketDataEvent]: def subscribe(self, subscriptions: List[Subscription]) -> Iterator[MarketDataEvent]:
request = bbgo_pb2.SubscribeRequest(subscriptions=[s.to_pb() for s in subscriptions]) request = bbgo_pb2.SubscribeRequest(subscriptions=[s.to_pb() for s in subscriptions])
@ -63,9 +68,10 @@ class MarketService(object):
class TradingService(object): class TradingService(object):
stub: bbgo_pb2_grpc.TradingServiceStub
def __init__(self, stub: bbgo_pb2_grpc.TradingServiceStub): def __init__(self, host: str, port: int) -> None:
self.stub = stub self.stub = bbgo_pb2_grpc.TradingServiceStub(get_insecure_channel(host, port))
def submit_order(self, def submit_order(self,
exchange: str, exchange: str,

View File

@ -27,3 +27,17 @@ def get_credentials_from_env():
private_key_certificate_chain_pairs = [(private_key, certificate_chain)] private_key_certificate_chain_pairs = [(private_key, certificate_chain)]
server_credentials = grpc.ssl_server_credentials(private_key_certificate_chain_pairs) server_credentials = grpc.ssl_server_credentials(private_key_certificate_chain_pairs)
return server_credentials return server_credentials
def get_insecure_channel(host: str, port: int) -> grpc.Channel:
address = f'{host}:{port}'
return grpc.insecure_channel(address)
def get_insecure_channel_from_env() -> grpc.Channel:
host = os.environ.get('BBGO_GRPC_HOST') or '127.0.0.1'
port = os.environ.get('BBGO_GRPC_PORT') or 50051
address = get_insecure_channel(host, port)
return grpc.insecure_channel(address)

View File

@ -1,7 +1,5 @@
import click import click
import grpc
import bbgo_pb2_grpc
from bbgo import MarketService from bbgo import MarketService
@ -9,11 +7,7 @@ from bbgo import MarketService
@click.option('--host', default='127.0.0.1') @click.option('--host', default='127.0.0.1')
@click.option('--port', default=50051) @click.option('--port', default=50051)
def main(host, port): def main(host, port):
address = f'{host}:{port}' service = MarketService(host, port)
channel = grpc.insecure_channel(address)
stub = bbgo_pb2_grpc.MarketDataServiceStub(channel)
service = MarketService(stub)
klines, error = service.query_klines(exchange='binance', symbol='BTCUSDT', interval='1m', limit=10) klines, error = service.query_klines(exchange='binance', symbol='BTCUSDT', interval='1m', limit=10)

View File

@ -1,8 +1,6 @@
import click import click
import grpc
from loguru import logger from loguru import logger
import bbgo_pb2_grpc
from bbgo import MarketService from bbgo import MarketService
from bbgo.data import Subscription from bbgo.data import Subscription
from bbgo.enums import ChannelType from bbgo.enums import ChannelType
@ -16,11 +14,8 @@ def main(host, port):
subscriptions = [ subscriptions = [
Subscription('binance', ChannelType.BOOK, symbol='BTCUSDT', depth=DepthType.FULL), Subscription('binance', ChannelType.BOOK, symbol='BTCUSDT', depth=DepthType.FULL),
] ]
address = f'{host}:{port}'
channel = grpc.insecure_channel(address)
stub = bbgo_pb2_grpc.MarketDataServiceStub(channel)
service = MarketService(stub) service = MarketService(host, port)
response_iter = service.subscribe(subscriptions) response_iter = service.subscribe(subscriptions)
for response in response_iter: for response in response_iter:
logger.info(response) logger.info(response)