def melkweg_observer(self, observer: Observer, _) -> Observer: parser = MelkwegParser() data = fetch(self.scrape_url) observer.on_next( parser.parse(ParsingContext(venue=self.venue, content=data))) observer.on_completed() return observer
def test_create_on_next_throw_close1(): ex = 'ex' next = [True] error = [False] completed = [False] def on_next(x): assert 42 == x next[0] = True def on_error(e): assert ex == e error[0] = True def on_completed(): completed[0] = True res = Observer(on_next, on_error, on_completed) res.on_next(42) assert next[0] assert not error[0] assert not completed[0] res.on_completed() assert completed[0] assert not error[0]
def simplon_observer(self, observer: Observer, _) -> Disposable: parser = SimplonParser() data = fetch(self.scrape_url) events = parser.parse(ParsingContext(venue=self.venue, content=data)) observer.on_next(events) observer.on_completed() return observer
def rx_loop(observer: Observer, scheduler: typing.Scheduler): print("Looping urls") loop = asyncio.get_event_loop() try: loop.run_until_complete(async_sender(urls, observer)) except Exception as e: observer.on_error(e) finally: loop.close() observer.on_completed()
def observe(observer: Observer, _: Optional[Scheduler]) -> None: assert device is not None self._should_monitor_evdev_events = True for event in device.read_loop(): if not self._should_monitor_evdev_events: break if event.type == ecodes.EV_KEY or \ (event.type == ecodes.EV_ABS and self.should_send_ev_abs_events): observer.on_next(event) device.close() observer.on_completed()
def vera_observer(self, observer: Observer, _) -> Disposable: vera_parser = VeraParser() items_per_page = 20 page_index = 0 done = False while not done: page_index += 1 url = self.scrape_url.format(page_index, items_per_page) data = fetch(url) new_events = vera_parser.parse(ParsingContext(venue=self.venue, content=data)) observer.on_next(new_events) done = len(new_events) < items_per_page observer.on_completed() return observer
def _subscribe_core(self, observer: Observer, scheduler: Scheduler = None) -> Disposable: 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()
def test_create_on_next(): next = [False] def on_next(x): assert 42 == x next[0] = True res = Observer(on_next) res.on_next(42) assert next[0] return res.on_completed()
def test_create_on_next_on_completed(): next = [False] completed = [False] def on_next(x): assert 42 == x next[0] = True return next[0] def on_completed(): completed[0] = True return completed[0] res = Observer(on_next, None, on_completed) res.on_next(42) assert next[0] assert not completed[0] res.on_completed() assert completed[0]