Rename Queue module to queue.
Updated documentation to use new name. Merged revisions 63077 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r63077 | alexandre.vassalotti | 2008-05-11 15:39:48 -0400 (Sun, 11 May 2008) | 3 lines Added stub for the Queue module to be renamed in 3.0. Use the 3.0 module name to avoid spurious warnings. ........
This commit is contained in:
parent
4e3e21e2cf
commit
f260e443ac
|
@ -1,12 +1,12 @@
|
|||
|
||||
:mod:`Queue` --- A synchronized queue class
|
||||
:mod:`queue` --- A synchronized queue class
|
||||
===========================================
|
||||
|
||||
.. module:: Queue
|
||||
.. module:: queue
|
||||
:synopsis: A synchronized queue class.
|
||||
|
||||
|
||||
The :mod:`Queue` module implements multi-producer, multi-consumer queues.
|
||||
The :mod:`queue` module implements multi-producer, multi-consumer queues.
|
||||
It is especially useful in threaded programming when information must be
|
||||
exchanged safely between multiple threads. The :class:`Queue` class in this
|
||||
module implements all the required locking semantics. It depends on the
|
||||
|
@ -20,7 +20,7 @@ the first retrieved (operating like a stack). With a priority queue,
|
|||
the entries are kept sorted (using the :mod:`heapq` module) and the
|
||||
lowest valued entry is retrieved first.
|
||||
|
||||
The :mod:`Queue` module defines the following classes and exceptions:
|
||||
The :mod:`queue` module defines the following classes and exceptions:
|
||||
|
||||
.. class:: Queue(maxsize)
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
This module constructs higher-level threading interfaces on top of the lower
|
||||
level :mod:`thread` module.
|
||||
See also the :mod:`Queue` module.
|
||||
See also the :mod:`queue` module.
|
||||
|
||||
The :mod:`dummy_threading` module is provided for situations where
|
||||
:mod:`threading` cannot be used because :mod:`thread` is missing.
|
||||
|
|
|
@ -485,7 +485,7 @@ The :keyword:`raise` statement
|
|||
If no expressions are present, :keyword:`raise` re-raises the last exception
|
||||
that was active in the current scope. If no exception is active in the current
|
||||
scope, a :exc:`TypeError` exception is raised indicating that this is an error
|
||||
(if running under IDLE, a :exc:`Queue.Empty` exception is raised instead).
|
||||
(if running under IDLE, a :exc:`queue.Empty` exception is raised instead).
|
||||
|
||||
Otherwise, :keyword:`raise` evaluates the first expression as the exception
|
||||
object. It must be either a subclass or an instance of :class:`BaseException`.
|
||||
|
|
|
@ -198,7 +198,7 @@ variables, and semaphores.
|
|||
While those tools are powerful, minor design errors can result in problems that
|
||||
are difficult to reproduce. So, the preferred approach to task coordination is
|
||||
to concentrate all access to a resource in a single thread and then use the
|
||||
:mod:`Queue` module to feed that thread with requests from other threads.
|
||||
:mod:`queue` module to feed that thread with requests from other threads.
|
||||
Applications using :class:`Queue` objects for inter-thread communication and
|
||||
coordination are easier to design, more readable, and more reliable.
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ import SocketServer
|
|||
import struct
|
||||
import pickle
|
||||
import threading
|
||||
import Queue
|
||||
import queue
|
||||
import traceback
|
||||
import copyreg
|
||||
import types
|
||||
|
@ -117,8 +117,8 @@ class RPCServer(SocketServer.TCPServer):
|
|||
#----------------- end class RPCServer --------------------
|
||||
|
||||
objecttable = {}
|
||||
request_queue = Queue.Queue(0)
|
||||
response_queue = Queue.Queue(0)
|
||||
request_queue = queue.Queue(0)
|
||||
response_queue = queue.Queue(0)
|
||||
|
||||
|
||||
class SocketIO(object):
|
||||
|
@ -413,7 +413,7 @@ class SocketIO(object):
|
|||
# send queued response if there is one available
|
||||
try:
|
||||
qmsg = response_queue.get(0)
|
||||
except Queue.Empty:
|
||||
except queue.Empty:
|
||||
pass
|
||||
else:
|
||||
seq, response = qmsg
|
||||
|
|
|
@ -5,7 +5,7 @@ import socket
|
|||
import traceback
|
||||
import thread
|
||||
import threading
|
||||
import Queue
|
||||
import queue
|
||||
|
||||
from idlelib import CallTips
|
||||
from idlelib import AutoComplete
|
||||
|
@ -85,7 +85,7 @@ def main(del_exitfunc=False):
|
|||
continue
|
||||
try:
|
||||
seq, request = rpc.request_queue.get(block=True, timeout=0.05)
|
||||
except Queue.Empty:
|
||||
except queue.Empty:
|
||||
continue
|
||||
method, args, kwargs = request
|
||||
ret = method(*args, **kwargs)
|
||||
|
|
|
@ -90,6 +90,20 @@ class Queue:
|
|||
self.mutex.release()
|
||||
return n
|
||||
|
||||
def empty(self):
|
||||
"""Return True if the queue is empty, False otherwise (not reliable!)."""
|
||||
self.mutex.acquire()
|
||||
n = not self._qsize()
|
||||
self.mutex.release()
|
||||
return n
|
||||
|
||||
def full(self):
|
||||
"""Return True if the queue is full, False otherwise (not reliable!)."""
|
||||
self.mutex.acquire()
|
||||
n = 0 < self.maxsize == self._qsize()
|
||||
self.mutex.release()
|
||||
return n
|
||||
|
||||
def put(self, item, block=True, timeout=None):
|
||||
"""Put an item into the queue.
|
||||
|
|
@ -7,7 +7,7 @@ implementation as its sole argument.
|
|||
"""
|
||||
import dummy_thread as _thread
|
||||
import time
|
||||
import Queue
|
||||
import queue
|
||||
import random
|
||||
import unittest
|
||||
from test import test_support
|
||||
|
@ -124,7 +124,7 @@ class ThreadTests(unittest.TestCase):
|
|||
"""Use to test _thread.start_new_thread() passes args properly."""
|
||||
queue.put((arg1, arg2))
|
||||
|
||||
testing_queue = Queue.Queue(1)
|
||||
testing_queue = queue.Queue(1)
|
||||
_thread.start_new_thread(arg_tester, (testing_queue, True, True))
|
||||
result = testing_queue.get()
|
||||
self.failUnless(result[0] and result[1],
|
||||
|
@ -148,7 +148,7 @@ class ThreadTests(unittest.TestCase):
|
|||
queue.put(_thread.get_ident())
|
||||
|
||||
thread_count = 5
|
||||
testing_queue = Queue.Queue(thread_count)
|
||||
testing_queue = queue.Queue(thread_count)
|
||||
if test_support.verbose:
|
||||
print()
|
||||
print("*** Testing multiple thread creation "\
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Some simple Queue module tests, plus some failure conditions
|
||||
# Some simple queue module tests, plus some failure conditions
|
||||
# to ensure the Queue locks remain stable.
|
||||
import Queue
|
||||
import queue
|
||||
import sys
|
||||
import threading
|
||||
import time
|
||||
|
@ -112,12 +112,12 @@ class BaseQueueTest(unittest.TestCase, BlockingTestMixin):
|
|||
try:
|
||||
q.put(full, block=0)
|
||||
self.fail("Didn't appear to block with a full queue")
|
||||
except Queue.Full:
|
||||
except queue.Full:
|
||||
pass
|
||||
try:
|
||||
q.put(full, timeout=0.01)
|
||||
self.fail("Didn't appear to time-out with a full queue")
|
||||
except Queue.Full:
|
||||
except queue.Full:
|
||||
pass
|
||||
# Test a blocking put
|
||||
self.do_blocking_test(q.put, (full,), q.get, ())
|
||||
|
@ -129,12 +129,12 @@ class BaseQueueTest(unittest.TestCase, BlockingTestMixin):
|
|||
try:
|
||||
q.get(block=0)
|
||||
self.fail("Didn't appear to block with an empty queue")
|
||||
except Queue.Empty:
|
||||
except queue.Empty:
|
||||
pass
|
||||
try:
|
||||
q.get(timeout=0.01)
|
||||
self.fail("Didn't appear to time-out with an empty queue")
|
||||
except Queue.Empty:
|
||||
except queue.Empty:
|
||||
pass
|
||||
# Test a blocking get
|
||||
self.do_blocking_test(q.get, (), q.put, ('empty',))
|
||||
|
@ -196,13 +196,13 @@ class BaseQueueTest(unittest.TestCase, BlockingTestMixin):
|
|||
|
||||
|
||||
class QueueTest(BaseQueueTest):
|
||||
type2test = Queue.Queue
|
||||
type2test = queue.Queue
|
||||
|
||||
class LifoQueueTest(BaseQueueTest):
|
||||
type2test = Queue.LifoQueue
|
||||
type2test = queue.LifoQueue
|
||||
|
||||
class PriorityQueueTest(BaseQueueTest):
|
||||
type2test = Queue.PriorityQueue
|
||||
type2test = queue.PriorityQueue
|
||||
|
||||
|
||||
|
||||
|
@ -210,21 +210,21 @@ class PriorityQueueTest(BaseQueueTest):
|
|||
class FailingQueueException(Exception):
|
||||
pass
|
||||
|
||||
class FailingQueue(Queue.Queue):
|
||||
class FailingQueue(queue.Queue):
|
||||
def __init__(self, *args):
|
||||
self.fail_next_put = False
|
||||
self.fail_next_get = False
|
||||
Queue.Queue.__init__(self, *args)
|
||||
queue.Queue.__init__(self, *args)
|
||||
def _put(self, item):
|
||||
if self.fail_next_put:
|
||||
self.fail_next_put = False
|
||||
raise FailingQueueException("You Lose")
|
||||
return Queue.Queue._put(self, item)
|
||||
return queue.Queue._put(self, item)
|
||||
def _get(self):
|
||||
if self.fail_next_get:
|
||||
self.fail_next_get = False
|
||||
raise FailingQueueException("You Lose")
|
||||
return Queue.Queue._get(self)
|
||||
return queue.Queue._get(self)
|
||||
|
||||
class FailingQueueTest(unittest.TestCase, BlockingTestMixin):
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ import select
|
|||
import thread, threading
|
||||
import time
|
||||
import traceback
|
||||
import Queue
|
||||
import queue
|
||||
import sys
|
||||
import os
|
||||
import array
|
||||
|
@ -96,7 +96,7 @@ class ThreadableTest:
|
|||
self.server_ready = threading.Event()
|
||||
self.client_ready = threading.Event()
|
||||
self.done = threading.Event()
|
||||
self.queue = Queue.Queue(1)
|
||||
self.queue = queue.Queue(1)
|
||||
|
||||
# Do some munging to start the client test.
|
||||
methodname = self.id()
|
||||
|
|
|
@ -21,6 +21,8 @@ Extension Modules
|
|||
Library
|
||||
-------
|
||||
|
||||
- The Queue module has been renamed to queue.
|
||||
|
||||
- The copy_reg module has been renamed to copyreg.
|
||||
|
||||
- The mhlib module has been removed.
|
||||
|
|
|
@ -10,7 +10,7 @@ from Tkinter import *
|
|||
import websucker
|
||||
import os
|
||||
import threading
|
||||
import Queue
|
||||
import queue
|
||||
import time
|
||||
|
||||
VERBOSE = 2
|
||||
|
@ -139,7 +139,7 @@ class App:
|
|||
|
||||
def go(self, event=None):
|
||||
if not self.msgq:
|
||||
self.msgq = Queue.Queue(0)
|
||||
self.msgq = queue.Queue(0)
|
||||
self.check_msgq()
|
||||
if not self.sucker:
|
||||
self.sucker = SuckerThread(self.msgq)
|
||||
|
|
Loading…
Reference in New Issue