]> granicus.if.org Git - python/commitdiff
Rename Queue module to queue.
authorAlexandre Vassalotti <alexandre@peadrop.com>
Sun, 11 May 2008 19:59:59 +0000 (19:59 +0000)
committerAlexandre Vassalotti <alexandre@peadrop.com>
Sun, 11 May 2008 19:59:59 +0000 (19:59 +0000)
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.
........

12 files changed:
Doc/library/queue.rst
Doc/library/threading.rst
Doc/reference/simple_stmts.rst
Doc/tutorial/stdlib2.rst
Lib/idlelib/rpc.py
Lib/idlelib/run.py
Lib/queue.py [moved from Lib/Queue.py with 94% similarity]
Lib/test/test_dummy_thread.py
Lib/test/test_queue.py
Lib/test/test_socket.py
Misc/NEWS
Tools/webchecker/wsgui.py

index 7cb07c86db7d3bb7070a59103b5ff580d9728b65..4b9a1ebc2422c4b0e2b829d7076c4b37b5ca5f52 100644 (file)
@@ -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)
 
index dd67d4869f727d284c9248ea02f319f75b711fc6..6be2f62cbee66fa91d1aaa1a8c7a9e698a5c1b0a 100644 (file)
@@ -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.
index 0b90703dad0eea17d484d0d2ebdb57c7b2c4c365..cdf249b1c03c2f6884dffe84433f4c4c919ed6e5 100644 (file)
@@ -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`.
index c6b6620ece38c5c9b603097c496e0392819831c1..d519fc439e5f79ae725abb97d467db6d431178c9 100644 (file)
@@ -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.
 
index 109797c307e54eb6d072f4133b122d4eecfd7318..13ef37257d756f4ca3709aaefabfbdb03b7e10d3 100644 (file)
@@ -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
index 63880d6e76962695fd66376f8203c7dfd74cd078..b7313105655621a3d5506828381fe0f668653dfb 100644 (file)
@@ -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)
similarity index 94%
rename from Lib/Queue.py
rename to Lib/queue.py
index 4d89d97c4534a90042514e73629c65012480b722..7b0b32857863a1b35ec632e1826515da3fffe035 100644 (file)
@@ -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.
 
index 07466cea0b6e9b650c4e18fc0ba5b75e696750ed..59104587f960befd0bee44c78d7176fdecb78965 100644 (file)
@@ -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 "\
index 8c961941f475ad38837bc4a15761ab207aa33446..df7b7e34216e819401c0f0c20363b036c4237b52 100644 (file)
@@ -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):
 
index 8c5cf93e77ae19f50c5b293f41408219bf863e3d..ab860ddf80e62a5677abc20917ff5139a2f4ee14 100644 (file)
@@ -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()
index cdf005411e6537b2e490a1bc28a27959a5cb1b89..955b58a41258e2f26d297b33da1c38aab1d75724 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -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.
index 95c7ab9e1d7eceed8735952a88823641b62ef383..b2223c401dfc4bf4b24761b791a7a0f4dd9ce39c 100755 (executable)
@@ -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)