[Python-checkins] cpython (merge 3.2 -> 3.2): merge heads
benjamin.peterson
python-checkins at python.org
Tue Jun 21 04:38:11 CEST 2011
http://hg.python.org/cpython/rev/c38c3dab4bfb
changeset: 70917:c38c3dab4bfb
branch: 3.2
parent: 70916:8ece0dacd8e8
parent: 70909:1f171dd21bdb
user: Benjamin Peterson <benjamin at python.org>
date: Mon Jun 20 21:40:34 2011 -0500
summary:
merge heads
files:
Doc/library/asyncore.rst | 4 ++--
Doc/library/http.client.rst | 13 ++++++++++++-
Doc/tutorial/modules.rst | 15 ++++++++-------
Lib/multiprocessing/pool.py | 2 ++
Lib/test/test_multiprocessing.py | 3 +++
5 files changed, 27 insertions(+), 10 deletions(-)
diff --git a/Doc/library/asyncore.rst b/Doc/library/asyncore.rst
--- a/Doc/library/asyncore.rst
+++ b/Doc/library/asyncore.rst
@@ -157,8 +157,8 @@
Called on listening channels (passive openers) when a connection has been
established with a new remote endpoint that has issued a :meth:`connect`
- call for the local endpoint. *conn* is a *new* socket object usable to
- send and receive data on the connection, and *address* is the address
+ call for the local endpoint. *sock* is a *new* socket object usable to
+ send and receive data on the connection, and *addr* is the address
bound to the socket on the other end of the connection.
.. versionadded:: 3.2
diff --git a/Doc/library/http.client.rst b/Doc/library/http.client.rst
--- a/Doc/library/http.client.rst
+++ b/Doc/library/http.client.rst
@@ -543,6 +543,9 @@
A debugging hook. If :attr:`debuglevel` is greater than zero, messages
will be printed to stdout as the response is read and parsed.
+.. attribute:: HTTPResponse.closed
+
+ Is True if the stream is closed.
Examples
--------
@@ -555,7 +558,15 @@
>>> r1 = conn.getresponse()
>>> print(r1.status, r1.reason)
200 OK
- >>> data1 = r1.read()
+ >>> data1 = r1.read() # This will return entire content.
+ >>> # The following example demonstrates reading data in chunks.
+ >>> conn.request("GET", "/index.html")
+ >>> r1 = conn.getresponse()
+ >>> while not r1.closed:
+ ... print(r1.read(200)) # 200 bytes
+ b'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
+ ...
+ >>> # Example of an invalid request
>>> conn.request("GET", "/parrot.spam")
>>> r2 = conn.getresponse()
>>> print(r2.status, r2.reason)
diff --git a/Doc/tutorial/modules.rst b/Doc/tutorial/modules.rst
--- a/Doc/tutorial/modules.rst
+++ b/Doc/tutorial/modules.rst
@@ -159,13 +159,14 @@
.. index:: triple: module; search; path
-When a module named :mod:`spam` is imported, the interpreter searches for a file
-named :file:`spam.py` in the current directory, and then in the list of
-directories specified by the environment variable :envvar:`PYTHONPATH`. This
-has the same syntax as the shell variable :envvar:`PATH`, that is, a list of
-directory names. When :envvar:`PYTHONPATH` is not set, or when the file is not
-found there, the search continues in an installation-dependent default path; on
-Unix, this is usually :file:`.:/usr/local/lib/python`.
+When a module named :mod:`spam` is imported, the interpreter searches for a
+file named :file:`spam.py` in the directory containing the input script and
+then in the list of directories specified by the environment variable
+:envvar:`PYTHONPATH`. This has the same syntax as the shell variable
+:envvar:`PATH`, that is, a list of directory names. When :envvar:`PYTHONPATH`
+is not set, or when the file is not found there, the search continues in an
+installation-dependent default path; on Unix, this is usually
+:file:`.:/usr/local/lib/python`.
Actually, modules are searched in the list of directories given by the variable
``sys.path`` which is initialized from the directory containing the input script
diff --git a/Lib/multiprocessing/pool.py b/Lib/multiprocessing/pool.py
--- a/Lib/multiprocessing/pool.py
+++ b/Lib/multiprocessing/pool.py
@@ -148,6 +148,8 @@
processes = cpu_count()
except NotImplementedError:
processes = 1
+ if processes < 1:
+ raise ValueError("Number of processes must be at least 1")
if initializer is not None and not hasattr(initializer, '__call__'):
raise TypeError('initializer must be a callable')
diff --git a/Lib/test/test_multiprocessing.py b/Lib/test/test_multiprocessing.py
--- a/Lib/test/test_multiprocessing.py
+++ b/Lib/test/test_multiprocessing.py
@@ -1089,6 +1089,9 @@
self.assertEqual(sorted(it), list(map(sqr, list(range(1000)))))
def test_make_pool(self):
+ self.assertRaises(ValueError, multiprocessing.Pool, -1)
+ self.assertRaises(ValueError, multiprocessing.Pool, 0)
+
p = multiprocessing.Pool(3)
self.assertEqual(3, len(p._pool))
p.close()
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list