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)
Beispiel #2
0
 def test_call():
     ee = QueueEventEngine()
     client = EventRPCClient(ee, 'test')
     server = EventRPCServer(ee, 'test')
     server.register("server_print_hello", server_print_hello)
     ee.start()
     client.call("server_print_hello", {'msg': 'parral_client'},
                 client_print_hello)
     return ee
 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
Beispiel #4
0
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" )
Beispiel #5
0
    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)
Beispiel #6
0
 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 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")
Beispiel #8
0
 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
Beispiel #9
0
class TestBackend(unittest.TestCase):

    ui = EventRPCClient('test_ui', backend._engine, backend.SERVER_FOR_UI)
    shell = EventRPCClient('test_shell', backend._engine,
                           backend.SERVER_FOR_SHELL)

    def test_get_all_contracts(self):
        ret = self.ui.sync_call("get_all_contracts")
        ret = self.shell.sync_call("get_all_contracts")
        print "***********"
        print ret
        print "***********"

    def test_get_pcontract(self):
        ret = self.ui.sync_call("get_pcontract",
                                {'str_pcontract': 'BB.TEST-1.MINUTE'})
        ret = self.shell.sync_call("get_pcontract",
                                   {'str_pcontract': 'BB.TEST-1.MINUTE'})
        print json.loads(ret).keys()
        return
Beispiel #10
0
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)
Beispiel #11
0
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)
Beispiel #12
0
from timeit import timeit

from quantdigger.util import gen_log as log
from quantdigger.util import project_dir
from quantdigger.event.rpc import EventRPCClient
from quantdigger.event.eventengine import ZMQEventEngine
from quantdigger.interaction.backend import Backend

backend_path = os.path.join(project_dir, "quantdigger", "interaction",
                            "backend.py")

log.info("启动后台..")
backend = subprocess.Popen('python %s' % backend_path, shell=True)
time.sleep(1)

engine = ZMQEventEngine('WindowGate')
engine.start()
shell = EventRPCClient('test_shell', engine, Backend.SERVER_FOR_SHELL)


def func():
    shell.sync_call("test_speed")
    return


t = timeit('func()', 'from __main__ import func', number=100)
print(t)

subprocess.Popen.kill(backend)
a = raw_input("Any key to quit quantdigger.")