]> granicus.if.org Git - python/commitdiff
Issue 11177: asyncore's create_socket() arguments can now be omitted.
authorGiampaolo Rodolà <g.rodola@gmail.com>
Fri, 25 Feb 2011 22:21:22 +0000 (22:21 +0000)
committerGiampaolo Rodolà <g.rodola@gmail.com>
Fri, 25 Feb 2011 22:21:22 +0000 (22:21 +0000)
Doc/library/asyncore.rst
Lib/asyncore.py
Lib/test/test_asyncore.py
Misc/NEWS

index 54dd249ca7f0d432209d8e611e6515319c8fc858..aa16acaa18907e50a13aa2a03a064a35c2a6a937 100644 (file)
@@ -184,12 +184,14 @@ any that have been added to the map during asynchronous service) is closed.
    Most of these are nearly identical to their socket partners.
 
 
-   .. method:: create_socket(family, type)
+   .. method:: create_socket(family=socket.AF_INET, type=socket.SOCK_STREAM)
 
       This is identical to the creation of a normal socket, and will use the
       same options for creation.  Refer to the :mod:`socket` documentation for
       information on creating sockets.
 
+  .. versionchanged:: 3.3 family and type arguments can be omitted.
+
 
    .. method:: connect(address)
 
@@ -280,7 +282,7 @@ implement its socket handling::
 
        def __init__(self, host, path):
            asyncore.dispatcher.__init__(self)
-           self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
+           self.create_socket()
            self.connect( (host, 80) )
            self.buffer = bytes('GET %s HTTP/1.0\r\n\r\n' % path, 'ascii')
 
@@ -326,7 +328,7 @@ connections and dispatches the incoming connections to a handler::
 
         def __init__(self, host, port):
             asyncore.dispatcher.__init__(self)
-            self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
+            self.create_socket()
             self.set_reuse_addr()
             self.bind((host, port))
             self.listen(5)
index a277bddc86a2e3180a51ee3fd2481cf51618104b..aaa9e7c421fa9278ebc73e66ea446996aa8b61bc 100644 (file)
@@ -287,7 +287,7 @@ class dispatcher:
             del map[fd]
         self._fileno = None
 
-    def create_socket(self, family, type):
+    def create_socket(self, family=socket.AF_INET, type=socket.SOCK_STREAM):
         self.family_and_type = family, type
         sock = socket.socket(family, type)
         sock.setblocking(0)
index 53c49a803b467a68baa29601b6de180e637fb284..389dc8add1adb3fecf0ff9121cc4780e92768b43 100644 (file)
@@ -352,7 +352,7 @@ class DispatcherWithSendTests(unittest.TestCase):
     @support.reap_threads
     def test_send(self):
         evt = threading.Event()
-        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+        sock = socket.socket()
         sock.settimeout(3)
         port = support.bind_port(sock)
 
@@ -367,7 +367,7 @@ class DispatcherWithSendTests(unittest.TestCase):
 
             data = b"Suppose there isn't a 16-ton weight?"
             d = dispatcherwithsend_noread()
-            d.create_socket(socket.AF_INET, socket.SOCK_STREAM)
+            d.create_socket()
             d.connect((HOST, port))
 
             # give time for socket to connect
@@ -474,7 +474,7 @@ class TCPServer(asyncore.dispatcher):
 
     def __init__(self, handler=BaseTestHandler, host=HOST, port=0):
         asyncore.dispatcher.__init__(self)
-        self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
+        self.create_socket()
         self.set_reuse_addr()
         self.bind((host, port))
         self.listen(5)
@@ -495,7 +495,7 @@ class BaseClient(BaseTestHandler):
 
     def __init__(self, address):
         BaseTestHandler.__init__(self)
-        self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
+        self.create_socket()
         self.connect(address)
 
     def handle_connect(self):
@@ -536,7 +536,7 @@ class BaseTestAPI(unittest.TestCase):
 
             def __init__(self):
                 BaseTestHandler.__init__(self)
-                self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
+                self.create_socket()
                 self.bind((HOST, 0))
                 self.listen(5)
                 self.address = self.socket.getsockname()[:2]
@@ -555,7 +555,7 @@ class BaseTestAPI(unittest.TestCase):
 
             def __init__(self):
                 BaseTestHandler.__init__(self)
-                self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
+                self.create_socket()
                 self.bind((HOST, 0))
                 self.listen(5)
                 self.address = self.socket.getsockname()[:2]
@@ -693,20 +693,20 @@ class BaseTestAPI(unittest.TestCase):
 
     def test_create_socket(self):
         s = asyncore.dispatcher()
-        s.create_socket(socket.AF_INET, socket.SOCK_STREAM)
+        s.create_socket()
         self.assertEqual(s.socket.family, socket.AF_INET)
         SOCK_NONBLOCK = getattr(socket, 'SOCK_NONBLOCK', 0)
         self.assertEqual(s.socket.type, socket.SOCK_STREAM | SOCK_NONBLOCK)
 
     def test_bind(self):
         s1 = asyncore.dispatcher()
-        s1.create_socket(socket.AF_INET, socket.SOCK_STREAM)
+        s1.create_socket()
         s1.bind((HOST, 0))
         s1.listen(5)
         port = s1.socket.getsockname()[1]
 
         s2 = asyncore.dispatcher()
-        s2.create_socket(socket.AF_INET, socket.SOCK_STREAM)
+        s2.create_socket()
         # EADDRINUSE indicates the socket was correctly bound
         self.assertRaises(socket.error, s2.bind, (HOST, port))
 
@@ -723,7 +723,7 @@ class BaseTestAPI(unittest.TestCase):
             self.assertFalse(s.socket.getsockopt(socket.SOL_SOCKET,
                                                  socket.SO_REUSEADDR))
             s.socket.close()
-            s.create_socket(socket.AF_INET, socket.SOCK_STREAM)
+            s.create_socket()
             s.set_reuse_addr()
             self.assertTrue(s.socket.getsockopt(socket.SOL_SOCKET,
                                                  socket.SO_REUSEADDR))
index 89a8bdbceb44302e23182fb798993661ac519786..8acaf43065356765d629a5ae25dca64d79887b8b 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -35,6 +35,8 @@ Core and Builtins
 Library
 -------
 
+- Issue 11177: asyncore's create_socket() arguments can now be omitted.
+
 - Issue #6064: Add a ``daemon`` keyword argument to the threading.Thread
   and multiprocessing.Process constructors in order to override the
   default behaviour of inheriting the daemonic property from the current