Python queue.Empty() Examples
The following are 30
code examples of queue.Empty().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
queue
, or try the search function
.
Example #1
Source File: streaming.py From olympe with BSD 3-Clause "New" or "Revised" License | 8 votes |
def run(self): window_name = "Olympe Streaming Example" cv2.namedWindow(window_name, cv2.WINDOW_NORMAL) main_thread = next( filter(lambda t: t.name == "MainThread", threading.enumerate()) ) while main_thread.is_alive(): with self.flush_queue_lock: try: yuv_frame = self.frame_queue.get(timeout=0.01) except queue.Empty: continue try: self.show_yuv_frame(window_name, yuv_frame) except Exception: # We have to continue popping frame from the queue even if # we fail to show one frame traceback.print_exc() finally: # Don't forget to unref the yuv frame. We don't want to # starve the video buffer pool yuv_frame.unref() cv2.destroyWindow(window_name)
Example #2
Source File: observer_thread_wrapper.py From moler with BSD 3-Clause "New" or "Revised" License | 7 votes |
def _loop_for_observer(self): """ Loop to pass data (put by method feed) to observer. :return: None """ while self._request_end is False: try: data, timestamp = self._queue.get(True, self._timeout_for_get_from_queue) try: self.logger.log(level=TRACE, msg=r'notifying {}({!r})'.format(self._observer, repr(data))) except ReferenceError: self._request_end = True # self._observer is no more valid. try: if self._observer_self: self._observer(self._observer_self, data, timestamp) else: self._observer(data, timestamp) except ReferenceError: self._request_end = True # self._observer is no more valid. except Exception: self.logger.exception(msg=r'Exception inside: {}({!r})'.format(self._observer, repr(data))) except queue.Empty: pass # No incoming data within self._timeout_for_get_from_queue self._observer = None self._observer_self = None
Example #3
Source File: ray.py From eventsourcing with BSD 3-Clause "New" or "Revised" License | 6 votes |
def db_jobs(self): # print("Running do_jobs") while not self.has_been_stopped.is_set(): try: item = self.db_jobs_queue.get() # timeout=1) self.db_jobs_queue.task_done() except Empty: if self.has_been_stopped.is_set(): break else: if item is None or self.has_been_stopped.is_set(): break db_job: RayDbJob = item # self.print_timecheck("Doing db job", item) try: db_job.execute() except Exception as e: if db_job.error is None: print(traceback.format_exc()) self._print_timecheck( "Continuing after error running DB job:", e ) sleep(1) # else: # self.print_timecheck("Done db job", item)
Example #4
Source File: camera_node.py From RacingRobot with MIT License | 6 votes |
def extractInfo(self): try: while not self.exit: try: frame = self.frame_queue.get(block=True, timeout=1) except queue.Empty: print("Queue empty") continue try: # Publish new image msg = self.bridge.cv2_to_imgmsg(frame, 'rgb8') if not self.exit: self.image_publisher.publish(msg) except CvBridgeError as e: print("Error Converting cv image: {}".format(e.message)) self.frame_num += 1 except Exception as e: print("Exception after loop: {}".format(e)) raise
Example #5
Source File: timer_queue.py From misp42splunk with GNU Lesser General Public License v3.0 | 6 votes |
def _check_and_execute(self): wakeup_queue = self._wakeup_queue while 1: (next_expired_time, expired_timers) = self._get_expired_timers() for timer in expired_timers: try: # Note, please make timer callback effective/short timer() except Exception: logging.error(traceback.format_exc()) self._reset_timers(expired_timers) sleep_time = _calc_sleep_time(next_expired_time) try: wakeup = wakeup_queue.get(timeout=sleep_time) if wakeup is TEARDOWN_SENTINEL: break except Queue.Empty: pass logging.info('TimerQueue stopped.')
Example #6
Source File: timer_queue.py From misp42splunk with GNU Lesser General Public License v3.0 | 6 votes |
def _check_and_execute(self): wakeup_queue = self._wakeup_queue while 1: (next_expired_time, expired_timers) = self._get_expired_timers() for timer in expired_timers: try: # Note, please make timer callback effective/short timer() except Exception: logging.error(traceback.format_exc()) self._reset_timers(expired_timers) sleep_time = _calc_sleep_time(next_expired_time) try: wakeup = wakeup_queue.get(timeout=sleep_time) if wakeup is TEARDOWN_SENTINEL: break except Queue.Empty: pass logging.info('TimerQueue stopped.')
Example #7
Source File: thread_pool.py From misp42splunk with GNU Lesser General Public License v3.0 | 6 votes |
def _do_admin(self): admin_q = self._admin_queue resize_win = self._resize_window while 1: try: wakup = admin_q.get(timeout=resize_win + 1) except queue.Empty: self._do_resize_according_to_loads() continue if wakup is None: break else: self._do_resize_according_to_loads() log.logger.info("ThreadPool admin thread=%s stopped.", threading.current_thread().getName())
Example #8
Source File: thread_pool.py From misp42splunk with GNU Lesser General Public License v3.0 | 6 votes |
def get(self, timeout=None): """ Return the result when it arrives. If timeout is not None and the result does not arrive within timeout seconds then multiprocessing.TimeoutError is raised. If the remote call raised an exception then that exception will be reraised by get(). """ try: res = self._q.get(timeout=timeout) except queue.Empty: raise multiprocessing.TimeoutError("Timed out") if isinstance(res, Exception): raise res return res
Example #9
Source File: threads_exceptions_and_throttling.py From Expert-Python-Programming_Second-Edition with BSD 3-Clause "New" or "Revised" License | 6 votes |
def worker(work_queue, results_queue, throttle): while True: try: item = work_queue.get(block=False) except Empty: break else: while not throttle.consume(): pass try: result = fetch_place(item) except Exception as err: results_queue.put(err) else: results_queue.put(result) finally: work_queue.task_done()
Example #10
Source File: test_asynchronous.py From kuryr-kubernetes with Apache License 2.0 | 6 votes |
def test_run_empty(self, m_count): events = [(x, (), {}) for x in (mock.sentinel.event1, mock.sentinel.event2)] group = mock.sentinel.group m_queue = mock.Mock() m_queue.empty.return_value = True m_queue.get.side_effect = events + [queue.Empty()] m_handler = mock.Mock() m_count.return_value = list(range(5)) async_handler = h_async.Async(m_handler, mock.Mock(), mock.Mock()) with mock.patch('time.sleep'): async_handler._run(group, m_queue) m_handler.assert_has_calls([mock.call(event[0]) for event in events]) self.assertEqual(len(events), m_handler.call_count)
Example #11
Source File: gui_threads.py From Pyro5 with MIT License | 6 votes |
def install_pyro_queue_callback(self): """ Add a callback to the tkinter event loop that is invoked every so often. The callback checks the Pyro work queue for work and processes it. """ def check_pyro_queue(): try: while True: # get a work item from the queue (until it is empty) workitem = self.pyro_queue.get_nowait() # execute it in the gui's mainloop thread workitem["callable"](*workitem["vargs"], **workitem["kwargs"]) except queue.Empty: pass self.tk.after(1000 // PYRO_QUEUE_HZ, check_pyro_queue) self.tk.after(1000 // PYRO_QUEUE_HZ, check_pyro_queue)
Example #12
Source File: server.py From BiblioPixel with MIT License | 6 votes |
def api(self, request, data=None): log.debug('api: %s, %s', request, data) msg = { 'req': request.lower(), 'data': data, 'sender': 'RemoteServer'} self.q_send.put(msg) try: status, data = self.q_recv.get(timeout=5) except queue.Empty: status, data = False, 'Timeout waiting for response.' return flask.jsonify({ 'status': status, 'msg': 'OK' if status else data, 'data': data if status else None, })
Example #13
Source File: orderstream.py From flumine with MIT License | 6 votes |
def handle_output(self) -> None: """Handles output from stream. """ while self.is_alive(): try: order_books = self._output_queue.get( block=True, timeout=self.streaming_timeout ) except queue.Empty: # todo snap every 5s or so anyway if self.flumine.markets.live_orders: order_books = self._listener.snap( market_ids=self.flumine.markets.open_market_ids ) else: continue if order_books: self.flumine.handler_queue.put(CurrentOrdersEvent(order_books)) logger.info("Stopped output_thread (OrderStream {0})".format(self.stream_id))
Example #14
Source File: marketstream.py From flumine with MIT License | 6 votes |
def handle_output(self) -> None: """Handles output from stream. """ while self.is_alive(): try: market_books = self._output_queue.get( block=True, timeout=self.streaming_timeout ) except queue.Empty: market_books = self._listener.snap( market_ids=self.flumine.markets.open_market_ids ) if market_books: self.flumine.handler_queue.put(MarketBookEvent(market_books)) logger.info("Stopped output_thread (MarketStream {0})".format(self.stream_id))
Example #15
Source File: download_samples.py From gym-malware with MIT License | 6 votes |
def download_worker_function(download_queue, vtapikey): while True: try: sha256 = download_queue.get() except queue.Empty: continue if sha256 == "STOP": download_queue.task_done() return True print("{} downloading".format(sha256)) sample_path = os.path.join(samples_path, sha256) success = vt_download_sample(sha256, sample_path, vtapikey) if not success: print("{} had a problem".format(sha256)) print("{} done".format(sha256)) download_queue.task_done()
Example #16
Source File: multiproc_data.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 6 votes |
def reset(self): """ Resets the generator by stopping all processes """ self.alive.value = False qsize = 0 try: while True: self.queue.get(timeout=0.1) qsize += 1 except QEmptyExcept: pass print("Queue size on reset: {}".format(qsize)) for i, p in enumerate(self.proc): p.join() self.proc.clear()
Example #17
Source File: sharedconsole.py From molotov with Apache License 2.0 | 6 votes |
def display(self): if os.getpid() != self._creator: return while not self._stop: lines_displayed = 0 while True: try: line = self._stream.get_nowait() sys.stdout.write(line) lines_displayed += 1 except Empty: break if self._stop or lines_displayed > self._max_lines_displayed: break else: await asyncio.sleep(0) sys.stdout.flush() if not self._stop: await cancellable_sleep(self._interval)
Example #18
Source File: connectionpool.py From recruit with Apache License 2.0 | 5 votes |
def close(self): """ Close all pooled connections and disable the pool. """ # Disable access to the pool old_pool, self.pool = self.pool, None try: while True: conn = old_pool.get(block=False) if conn: conn.close() except Empty: pass # Done.
Example #19
Source File: dataloader.py From EMANet with GNU General Public License v3.0 | 5 votes |
def _get_batch(self): if self.timeout > 0: try: return self.data_queue.get(timeout=self.timeout) except queue.Empty: raise RuntimeError('DataLoader timed out after {} seconds'.format(self.timeout)) else: return self.data_queue.get()
Example #20
Source File: connectionpool.py From vulscan with MIT License | 5 votes |
def close(self): """ Close all pooled connections and disable the pool. """ # Disable access to the pool old_pool, self.pool = self.pool, None try: while True: conn = old_pool.get(block=False) if conn: conn.close() except Empty: pass # Done.
Example #21
Source File: connectionpool.py From vulscan with MIT License | 5 votes |
def _get_conn(self, timeout=None): """ Get a connection. Will return a pooled connection if one is available. If no connections are available and :prop:`.block` is ``False``, then a fresh connection is returned. :param timeout: Seconds to wait before giving up and raising :class:`urllib3.exceptions.EmptyPoolError` if the pool is empty and :prop:`.block` is ``True``. """ conn = None try: conn = self.pool.get(block=self.block, timeout=timeout) except AttributeError: # self.pool is None raise ClosedPoolError(self, "Pool is closed.") except Empty: if self.block: raise EmptyPoolError(self, "Pool reached maximum size and no more " "connections are allowed.") pass # Oh well, we'll create a new connection then # If this is a persistent connection, check if it got disconnected if conn and is_connection_dropped(conn): log.info("Resetting dropped connection: %s" % self.host) conn.close() if getattr(conn, 'auto_open', 1) == 0: # This is a proxied connection that has been mutated by # httplib._tunnel() and cannot be reused (since it would # attempt to bypass the proxy) conn = None return conn or self._new_conn()
Example #22
Source File: event.py From bilibiliupload with MIT License | 5 votes |
def __run(self): """引擎运行""" while self.__active is True: try: # 获取事件的阻塞时间设为1秒 event = self.__eventQueue.get(block=True, timeout=1) self.__event_process(event) except Empty: pass
Example #23
Source File: connectionpool.py From recruit with Apache License 2.0 | 5 votes |
def _get_conn(self, timeout=None): """ Get a connection. Will return a pooled connection if one is available. If no connections are available and :prop:`.block` is ``False``, then a fresh connection is returned. :param timeout: Seconds to wait before giving up and raising :class:`urllib3.exceptions.EmptyPoolError` if the pool is empty and :prop:`.block` is ``True``. """ conn = None try: conn = self.pool.get(block=self.block, timeout=timeout) except AttributeError: # self.pool is None raise ClosedPoolError(self, "Pool is closed.") except Empty: if self.block: raise EmptyPoolError(self, "Pool reached maximum size and no more " "connections are allowed.") pass # Oh well, we'll create a new connection then # If this is a persistent connection, check if it got disconnected if conn and is_connection_dropped(conn): log.info("Resetting dropped connection: %s", self.host) conn.close() if getattr(conn, 'auto_open', 1) == 0: # This is a proxied connection that has been mutated by # httplib._tunnel() and cannot be reused (since it would # attempt to bypass the proxy) conn = None return conn or self._new_conn()
Example #24
Source File: threads_thread_pool.py From Expert-Python-Programming_Second-Edition with BSD 3-Clause "New" or "Revised" License | 5 votes |
def worker(work_queue): while not work_queue.empty(): try: item = work_queue.get(block=False) except Empty: break else: fetch_place(item) work_queue.task_done()
Example #25
Source File: support.py From molotov with Apache License 2.0 | 5 votes |
def serialize(console): res = [] while True: try: res.append(console._stream.get(block=True, timeout=_TIMEOUT)) except Empty: break return "".join(res)
Example #26
Source File: sharedconsole.py From molotov with Apache License 2.0 | 5 votes |
def stop(self): self._stop = True while True: try: sys.stdout.write(self._stream.get_nowait()) except Empty: break sys.stdout.flush()
Example #27
Source File: vad.py From audio with BSD 2-Clause "Simplified" License | 5 votes |
def generator(self): while not self.closed: # Use a blocking get() to ensure there's at least one chunk of # data, and stop iteration if the chunk is None, indicating the # end of the audio stream. chunk = self._buff.get() if chunk is None: return data = [chunk] # Now consume whatever other data's still buffered. while True: try: chunk = self._buff.get(block=False) if chunk is None: return data.append(chunk) except queue.Empty: break ans = np.fromstring(b"".join(data), dtype=np.float32) # yield uniform-sized chunks ans = np.split(ans, np.shape(ans)[0] / self._chunk) # Resample the audio to 22050, librosa default for chunk in ans: yield librosa.core.resample(chunk, self._rate, 22050)
Example #28
Source File: asynchronous.py From kuryr-kubernetes with Apache License 2.0 | 5 votes |
def _run(self, group, queue): LOG.debug("Asynchronous handler started processing %s", group) for _ in itertools.count(): # NOTE(ivc): this is a mock-friendly replacement for 'while True' # to allow more controlled environment for unit-tests (e.g. to # avoid tests getting stuck in infinite loops) try: event, args, kwargs = queue.get(timeout=self._grace_period) except py_queue.Empty: break # FIXME(ivc): temporary workaround to skip stale events # If K8s updates resource while the handler is processing it, # when the handler finishes its work it can fail to update an # annotation due to the 'resourceVersion' conflict. K8sClient # was updated to allow *new* annotations to be set ignoring # 'resourceVersion', but it leads to another problem as the # Handler will receive old events (i.e. before annotation is set) # and will start processing the event 'from scratch'. # It has negative effect on handlers' performance (VIFHandler # creates ports only to later delete them and LBaaS handler also # produces some excess requests to Neutron, although with lesser # impact). # Possible solutions (can be combined): # - use K8s ThirdPartyResources to store data/annotations instead # of native K8s resources (assuming Kuryr-K8s will own those # resources and no one else would update them) # - use the resulting 'resourceVersion' received from K8sClient's # 'annotate' to provide feedback to Async to skip all events # until that version # - stick to the 'get-or-create' behaviour in handlers and # also introduce cache for long operations time.sleep(STALE_PERIOD) while not queue.empty(): event, args, kwargs = queue.get() if queue.empty(): time.sleep(STALE_PERIOD) self._handler(event, *args, **kwargs)
Example #29
Source File: test_asynchronous.py From kuryr-kubernetes with Apache License 2.0 | 5 votes |
def test_run_stale(self, m_count): events = [(x, (), {}) for x in (mock.sentinel.event1, mock.sentinel.event2)] group = mock.sentinel.group m_queue = mock.Mock() m_queue.empty.side_effect = [False, True, True] m_queue.get.side_effect = events + [queue.Empty()] m_handler = mock.Mock() m_count.return_value = list(range(5)) async_handler = h_async.Async(m_handler, mock.Mock(), mock.Mock()) with mock.patch('time.sleep'): async_handler._run(group, m_queue) m_handler.assert_called_once_with(mock.sentinel.event2)
Example #30
Source File: threads_two_way_queues.py From Expert-Python-Programming_Second-Edition with BSD 3-Clause "New" or "Revised" License | 5 votes |
def worker(work_queue, results_queue): while not work_queue.empty(): try: item = work_queue.get(block=False) except Empty: break else: results_queue.put( fetch_place(item) ) work_queue.task_done()