Ejemplo n.º 1
0
 def _start(self, app_context, **kwargs):
     if self.__input is None:
         self.__input = app_context.inst_data_mgr.get_series(self.input.name)
     self.__input.subject.subscribe(on_next=self.on_update)
     if self.__output_bar_type == BarType.Time:
         current_ts = self.__clock.now()
         next_ts = Bar.get_next_bar_start_time(current_ts, self.__output_size)
         diff = next_ts - current_ts
         Observable.timer(int(diff), self.__output_size * 1000, self.__clock.scheduler).subscribe(
             on_next=self.publish)
Ejemplo n.º 2
0
 def _start(self, app_context, **kwargs):
     if self.__input is None:
         self.__input = app_context.inst_data_mgr.get_series(
             self.input.name)
     self.__input.subject.subscribe(on_next=self.on_update)
     if self.__output_bar_type == BarType.Time:
         current_ts = self.__clock.now()
         next_ts = Bar.get_next_bar_start_time(current_ts,
                                               self.__output_size)
         diff = next_ts - current_ts
         Observable.timer(
             int(diff), self.__output_size * 1000,
             self.__clock.scheduler).subscribe(on_next=self.publish)
def run(interval, port):
    scheduler = AsyncIOScheduler()
    clock = Observable.timer(0, interval, scheduler=scheduler)
    loop = asyncio.get_event_loop()
    server = TCPServer(loop)
    observer = SimpleObserver()

    all_events = server.tcp_subject.map(lambda x: x[0].strip()).merge(
        clock).debounce(int(interval / 10), scheduler=scheduler)
    all_events.subscribe(observer)

    server.start(port)
    loop.close()
Ejemplo n.º 4
0
    def delay_subscription(self, duetime, scheduler):
        """Time shifts the observable sequence by delaying the subscription.
    
        1 - res = source.delay_subscription(5000) // 5s
        2 - res = source.delay_subscription(5000, Scheduler.timeout) // 5 seconds
    
        duetime -- Absolute or relative time to perform the subscription at.
        scheduler [Optional] Scheduler to run the subscription delay timer on. 
            If not specified, the timeout scheduler is used.
    
        Returns time-shifted sequence.
        """
        scheduler = scheduler or timeout_scheduler

        def selector(x):
            return Observable.empty()
        return this.delay_with_selector(Observable.timer(duetime, scheduler), selector)
Ejemplo n.º 5
0
def interval(cls, period, scheduler=None):
    """Returns an observable sequence that produces a value after each
    period.

    Example:
    1 - res = rx.Observable.interval(1000)
    2 - res = rx.Observable.interval(1000, rx.Scheduler.timeout)

    Keyword arguments:
    period -- Period for producing the values in the resulting sequence
        (specified as an integer denoting milliseconds).
    scheduler -- [Optional] Scheduler to run the timer on. If not specified,
        rx.Scheduler.timeout is used.

    Returns an observable sequence that produces a value after each period.
    """

    scheduler = scheduler or TimeoutScheduler()
    return Observable.timer(period, period, scheduler)
Ejemplo n.º 6
0
    def delay_subscription(self, duetime, scheduler):
        """Time shifts the observable sequence by delaying the subscription.

        1 - res = source.delay_subscription(5000) # 5s
        2 - res = source.delay_subscription(5000, Scheduler.timeout) # 5 seconds

        duetime -- Absolute or relative time to perform the subscription at.
        scheduler [Optional] Scheduler to run the subscription delay timer on.
            If not specified, the timeout scheduler is used.

        Returns time-shifted sequence.
        """
        scheduler = scheduler or timeout_scheduler

        def selector(_):
            return Observable.empty()

        return self.delay_with_selector(Observable.timer(duetime, scheduler),
                                        selector)
def run(interval, port):
    scheduler = AsyncIOScheduler()
    clock = Observable.timer(0, interval, scheduler=scheduler)
    loop = asyncio.get_event_loop()
    server = TCPServer(loop)
    observer = SimpleObserver()

    all_events = server.tcp_subject.map(
        lambda x: x[0].strip()
    ).merge(
        clock
    ).debounce(
        int(interval / 10),
        scheduler=scheduler
    )
    all_events.subscribe(observer)

    server.start(port)
    loop.close()