예제 #1
0
def test_groupdisposable_contains():
    d1 = Disposable.empty()
    d2 = Disposable.empty()

    g = CompositeDisposable(d1, d2)

    assert g.length == 2
    assert g.contains(d1)
    assert g.contains(d2)
예제 #2
0
def test_groupdisposable_contains():
    d1 = Disposable.empty()
    d2 = Disposable.empty()

    g = CompositeDisposable(d1, d2)

    assert g.length == 2
    assert g.contains(d1)
    assert g.contains(d2)
예제 #3
0
    def _subscribe_core(self, observer):
        with self.lock:
            self.check_disposed()
            if not self.is_stopped:
                self.observers.append(observer)
                return InnerSubscription(self, observer)

            if self.exception:
                observer.on_error(self.exception)
                return Disposable.empty()

            observer.on_completed()
            return Disposable.empty()
예제 #4
0
 def wrapped_action(self, state):
     try:
         return action(parent._get_recursive_wrapper(self), state)
     except Exception as ex:
         if not parent._handler(ex):
             raise Exception(ex)
         return Disposable.empty()
예제 #5
0
 def wrapped_action(self, state):
     try:
         return action(parent._get_recursive_wrapper(self), state)
     except Exception as ex:
         if not parent._handler(ex):
             raise Exception(ex)
         return Disposable.empty()
예제 #6
0
파일: schedulerbase.py 프로젝트: tmbb/RxPY
            def schedule_work(_, state3):
                action(state3, inner_action)
                if is_added:
                    group.remove(d)
                else:
                    is_done[0] = True

                return Disposable.empty()
예제 #7
0
    def disposable(self):
        """Returns a dependent disposable that when disposed decreases the
        refcount on the underlying disposable."""

        with self.lock:
            if self.is_disposed:
                return Disposable.empty()
            else:
                self.count += 1
                return self.InnerDisposable(self)
예제 #8
0
    def disposable(self):
        """Returns a dependent disposable that when disposed decreases the
        refcount on the underlying disposable."""

        with self.lock:
            if self.is_disposed:
                return Disposable.empty()

            self.count += 1
            return self.InnerDisposable(self)
예제 #9
0
    def __init__(self, enable_queue=True, scheduler=None):
        super(ControlledSubject, self).__init__(self._subscribe)

        self.subject = Subject()
        self.enable_queue = enable_queue
        self.queue = [] if enable_queue else None
        self.requested_count = 0
        self.requested_disposable = Disposable.empty()
        self.error = None
        self.has_failed = False
        self.has_completed = False
        self.scheduler = scheduler or current_thread_scheduler
예제 #10
0
    def __init__(self, enable_queue=True, scheduler=None):
        super(ControlledSubject, self).__init__()

        self.subject = Subject()
        self.enable_queue = enable_queue
        self.queue = [] if enable_queue else None
        self.requested_count = 0
        self.requested_disposable = Disposable.empty()
        self.error = None
        self.has_failed = False
        self.has_completed = False
        self.scheduler = scheduler or current_thread_scheduler
예제 #11
0
파일: using.py 프로젝트: Austin-cp/cp-0.1.1
    def subscribe(observer):
        disposable = Disposable.empty()
        try:
            resource = resource_factory()
            if resource:
                disposable = resource

            source = observable_factory(resource)
        except Exception as exception:
            d = Observable.throw_exception(exception).subscribe(observer)
            return CompositeDisposable(d, disposable)

        return CompositeDisposable(source.subscribe(observer), disposable)
예제 #12
0
    def _subscribe_core(self, observer):
        conn = self.source.publish()
        subscription = conn.subscribe(observer)
        connection = [Disposable.empty()]

        def on_next(b):
            if b:
                connection[0] = conn.connect()
            else:
                connection[0].dispose()
                connection[0] = Disposable.empty()

        pausable = self.pauser.distinct_until_changed().subscribe(on_next)
        return CompositeDisposable(subscription, connection[0], pausable)
예제 #13
0
파일: pausable.py 프로젝트: ESSL-CQQ/RxPY
    def _subscribe_core(self, observer):
        conn = self.source.publish()
        subscription = conn.subscribe(observer)
        connection = [Disposable.empty()]

        def on_next(b):
            if b:
                connection[0] = conn.connect()
            else:
                connection[0].dispose()
                connection[0] = Disposable.empty()

        pausable = self.pauser.distinct_until_changed().subscribe(on_next)
        return CompositeDisposable(subscription, connection[0], pausable)
예제 #14
0
    def unsafe_subscribe(self, observer, scheduler, subscribe_scheduler):
        # self.scheduler = self.scheduler or scheduler
        source = self
        em = scheduler.get_execution_model()

        inner_subscription = self.InnerSubscription(source=self,
                                                    observer=observer,
                                                    scheduler=scheduler,
                                                    em=em)

        with self.lock:
            if not self.is_stopped:
                # get current buffer index
                current_idx = self.buffer.last_idx - 1
                self.current_index[inner_subscription] = current_idx
                self.inactive_subsriptions.append(inner_subscription)
                return Disposable.empty()

            if self.exception:
                observer.on_error(self.exception)
                return Disposable.empty()

        observer.on_completed()
        return Disposable.empty()
예제 #15
0
    def _subscribe_core(self, observer):
        ex = None

        with self.lock:
            self.check_disposed()
            if not self.is_stopped:
                self.observers.append(observer)
                observer.on_next(self.value)
                return InnerSubscription(self, observer)
            ex = self.exception

        if ex:
            observer.on_error(ex)
        else:
            observer.on_completed()

        return Disposable.empty()
예제 #16
0
    def _subscribe_core(self, observer, scheduler=None):
        with self.lock:
            self.check_disposed()
            if not self.is_stopped:
                self.observers.append(observer)
                return InnerSubscription(self, observer)

            ex = self.exception
            hv = self.has_value
            v = self.value

        if ex:
            observer.on_error(ex)
        elif hv:
            observer.on_next(v)
            observer.on_completed()
        else:
            observer.on_completed()

        return Disposable.empty()
예제 #17
0
    def _subscribe_core(self, observer):
        with self.lock:
            self.check_disposed()
            if not self.is_stopped:
                self.observers.append(observer)
                return InnerSubscription(self, observer)

            ex = self.exception
            hv = self.has_value
            v = self.value

        if ex:
            observer.on_error(ex)
        elif hv:
            observer.on_next(v)
            observer.on_completed()
        else:
            observer.on_completed()

        return Disposable.empty()
예제 #18
0
 def action_subscribe(scheduler, state):
     """Called at subscribe time. Defaults to 200"""
     subscription[0] = source[0].subscribe(observer)
     return Disposable.empty()
예제 #19
0
파일: pausable.py 프로젝트: ESSL-CQQ/RxPY
 def on_next(b):
     if b:
         connection[0] = conn.connect()
     else:
         connection[0].dispose()
         connection[0] = Disposable.empty()
예제 #20
0
 def action_create(scheduler, state):
     """Called at create time. Defaults to 100"""
     source[0] = create()
     return Disposable.empty()
예제 #21
0
 def action(scheduler, state=None):
     xx[0] = state
     return Disposable.empty()
예제 #22
0
 def action(scheduler, state):
     notification.accept(observer)
     return Disposable.empty()
예제 #23
0
 def action(scheduler, state=None):
      xx[0] = state
      return Disposable.empty()
예제 #24
0
    def invoke_action(self, action, state=None):
        ret = action(self, state)
        if isinstance(ret, Disposable):
            return ret

        return Disposable.empty()
예제 #25
0
 def subscribe2(o):
     o.on_error("exception")
     return Disposable.empty()
예제 #26
0
def test_emptydisposable():
    d = Disposable.empty()
    assert d
    d.dispose()
예제 #27
0
 def subscribe(o):
     o.on_error(ex)
     o.on_next(100)
     o.on_error("foo")
     o.on_completed()
     return Disposable.empty()
예제 #28
0
 def subscribe1(o):
     o.on_next(1)
     return Disposable.empty()
예제 #29
0
 def action(scheduler, state):
     for observer in observable.observers[:]:
         notification.accept(observer)
     return Disposable.empty()
예제 #30
0
 def inner_action(scheduler, state=None):
     yy[0] = state
     return Disposable.empty()
예제 #31
0
 def inner_action(scheduler, y):
     yy[0] = y
     return Disposable.empty()
예제 #32
0
 def action_dispose(scheduler, state):
     """Called at dispose time. Defaults to 1000"""
     subscription[0].dispose()
     return Disposable.empty()
예제 #33
0
 def inner_action(scheduler, y):
     yy[0] = y
     return Disposable.empty()
예제 #34
0
 def action(_, __):
     observer.on_next(self.elem)
     observer.on_completed()
     Disposable.empty()
예제 #35
0
 def subscribe(o, observer=None):
     o.on_error(ex)
     o.on_next(100)
     o.on_error('foo')
     o.on_completed()
     return Disposable.empty()
예제 #36
0
 def action_dispose(scheduler, state):
     """Called at dispose time. Defaults to 1000"""
     subscription[0].dispose()
     return Disposable.empty()
예제 #37
0
 def subscribe2(o):
     o.on_error('exception')
     return Disposable.empty()
예제 #38
0
 def unsafe_subscribe(self, observer: Observer, scheduler: Scheduler,
                      subscribe_scheduler: Scheduler):
     self.observer = observer
     return Disposable.empty()
예제 #39
0
 def on_subscribe_completed(self, subscriber: Subscriber, ex):
     if ex is not None:
         subscriber.observer.on_error(ex)
     else:
         subscriber.observer.on_completed()
     return Disposable.empty()
예제 #40
0
 def action_subscribe(scheduler, state):
     """Called at subscribe time. Defaults to 200"""
     subscription[0] = source[0].subscribe(observer, scheduler)
     return Disposable.empty()
예제 #41
0
파일: schedulerbase.py 프로젝트: tmbb/RxPY
    def invoke_action(self, action, state=None):
        ret = action(self, state)
        if isinstance(ret, Disposable):
            return ret

        return Disposable.empty()
예제 #42
0
 def subscribe(o, observer=None):
     o.on_next(1)
     o.on_next(2)
     return Disposable.empty()
예제 #43
0
def test_emptydisposable():
    d = Disposable.empty()
    assert d
    d.dispose()
예제 #44
0
 def subscribe1(o):
     o.on_next(1)
     return Disposable.empty()
예제 #45
0
 def on_next(b):
     if b:
         connection[0] = conn.connect()
     else:
         connection[0].dispose()
         connection[0] = Disposable.empty()
예제 #46
0
 def subscribe3(o):
     o.on_completed()
     return Disposable.empty()
예제 #47
0
 def action(scheduler, state):
     for observer in observable.observers[:]:
         notification.accept(observer)
     return Disposable.empty()
예제 #48
0
 def subscribe(_):
     return Disposable.empty()
예제 #49
0
 def inner_action(scheduler, state=None):
     yy[0] = state
     return Disposable.empty()
예제 #50
0
 def subscribe3(o):
     o.on_completed()
     return Disposable.empty()
예제 #51
0
파일: never.py 프로젝트: ESSL-CQQ/RxPY
 def subscribe(_):
     return Disposable.empty()