class Shell(BackendInterface, UIInterface): """ 终端接口类,可通过它在python终端上操作界面和后台代码。 """ def __init__(self): log.info("Init Shell..") self._engine = ZMQEventEngine('Shell') self._engine.start() self.gate = EventRPCClient('Shell', self._engine, WindowGate.SERVER_FOR_SHELL) self._backend = EventRPCClient('test_shell', self._engine, Backend.SERVER_FOR_SHELL) def get_all_pcontracts(self): pass def get_all_contracts(self): ret = self._backend.sync_call("get_all_contracts") six.print_("****" ) six.print_(ret) six.print_("****" ) #"""docstring for get_all_contracts""" #six.print_("------------------" ) #six.print_("get-all-contracts" ) #six.print_(pcontract) #six.print_("------------------" ) #return "world" def show_data(self, strpcontract): """docstring for load_pcontract""" return self.gate.sync_call("show_data", { 'pcontract': strpcontract }) def get_pcontract(self, pcontract): """docstring for get_data""" pass def run_strategy(self, name): """""" return def run_technical(self, name): return def get_technicals(self): """ 获取系统的所有指标。 """ return def get_strategies(self): return 'hello' def plot(self): """docstring for plo""" six.print_("plot" )
class Shell(BackendInterface, UIInterface): """ 终端接口类,可通过它在python终端上操作界面和后台代码。 """ def __init__(self): log.info("Init Shell..") self._engine = ZMQEventEngine('Shell') self._engine.start() self.gate = EventRPCClient('Shell', self._engine, WindowGate.SERVER_FOR_SHELL) self._backend = EventRPCClient('test_shell', self._engine, Backend.SERVER_FOR_SHELL) def get_all_pcontracts(self): pass def get_all_contracts(self): ret = self._backend.sync_call("get_all_contracts") six.print_("****") six.print_(ret) six.print_("****") #"""docstring for get_all_contracts""" #six.print_("------------------" ) #six.print_("get-all-contracts" ) #six.print_(pcontract) #six.print_("------------------" ) #return "world" def show_data(self, strpcontract): """docstring for load_pcontract""" return self.gate.sync_call("show_data", {'pcontract': strpcontract}) def get_pcontract(self, pcontract): """docstring for get_data""" pass def run_strategy(self, name): """""" return def run_technical(self, name): return def get_technicals(self): """ 获取系统的所有指标。 """ return def get_strategies(self): return 'hello' def plot(self): """docstring for plo""" six.print_("plot")
def test_sync_call(timeout): ee = QueueEventEngine() client = EventRPCClient(ee, 'test') server = EventRPCServer(ee, 'test') server.register("server_print_hello", server_print_hello) ee.start() six.print_( client.sync_call("server_print_hello", {'msg': 'sync_client'}, timeout), "**") ee.stop() return
class WindowGate(BackendInterface): SERVER_FOR_SHELL = "ui4shell" def __init__(self, widget): log.info("Init WindowGate..") self._engine = ZMQEventEngine('WindowGate') self._engine.start() self._backend = EventRPCClient('WindowGate', self._engine, Backend.SERVER_FOR_UI) self._shell_srv = EventRPCServer(self._engine, self.SERVER_FOR_SHELL) self._register_functions(self._shell_srv) self._period = None self._contract = None self._widget = widget def _register_functions(self, server): server.register('get_all_contracts', self.get_all_contracts) server.register('get_all_pcontracts', self.get_all_pcontracts) server.register('get_pcontract', self.get_pcontract) server.register('show_data', self.show_data) def add_widget(self, ith, type_): self._widget.add_widget def add_technical(self, ith, technical): """""" ## @TODO compute technical with backend, # display result from backend return @property def pcontract(self): return PContract(self._contract, self._period) def stop(self): self._engine.stop() def get_all_contracts(self): ret = self._backend.sync_call('get_all_contracts') return deserialize_all_contracts(ret) def get_all_pcontracts(self): ret = self._backend.sync_call('get_all_pcontracts') return deserialize_all_pcontracts(ret) def get_pcontract(self, str_pcontract): ret = self._backend.sync_call('get_pcontract', {'str_pcontract': str_pcontract}) return deserialize_pcontract_bars(ret) def run_strategy(self, name): """""" return def run_technical(self, name): return def get_technicals(self): """ 获取系统的所有指标。 """ return def get_strategies(self): """ 获取系统的所有策略。 """ return def show_data(self, pcontract): self._widget.show_data(pcontract)
class WindowGate(BackendInterface): SERVER_FOR_SHELL = "ui4shell" def __init__(self, widget): log.info("Init WindowGate..") self._engine = ZMQEventEngine('WindowGate') self._engine.start() self._backend = EventRPCClient('WindowGate', self._engine, Backend.SERVER_FOR_UI) self._shell_srv = EventRPCServer(self._engine, self.SERVER_FOR_SHELL) self._register_functions(self._shell_srv) self._period = None self._contract = None self._widget = widget def _register_functions(self, server): server.register('get_all_contracts', self.get_all_contracts) server.register('get_all_pcontracts', self.get_all_pcontracts) server.register('get_pcontract', self.get_pcontract) server.register('show_data', self.show_data) def add_widget(self, ith, type_): self._widget.add_widget def add_technical(self, ith, technical): """""" ## @TODO compute technical with backend, # display result from backend return @property def pcontract(self): return PContract(self._contract, self._period) def stop(self): self._engine.stop() def get_all_contracts(self): ret = self._backend.sync_call('get_all_contracts') return deserialize_all_contracts(ret) def get_all_pcontracts(self): ret = self._backend.sync_call('get_all_pcontracts') return deserialize_all_pcontracts(ret) def get_pcontract(self, str_pcontract): ret = self._backend.sync_call('get_pcontract', { 'str_pcontract': str_pcontract }) return deserialize_pcontract_bars(ret) def run_strategy(self, name): """""" return def run_technical(self, name): return def get_technicals(self): """ 获取系统的所有指标。 """ return def get_strategies(self): """ 获取系统的所有策略。 """ return def show_data(self, pcontract): self._widget.show_data(pcontract)