mirror of https://github.com/python/cpython
merge heads
This commit is contained in:
commit
66b371e000
|
@ -157,8 +157,8 @@ any that have been added to the map during asynchronous service) is closed.
|
|||
|
||||
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
|
||||
|
|
|
@ -543,6 +543,9 @@ statement.
|
|||
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 @@ Here is an example session that uses the ``GET`` method::
|
|||
>>> 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)
|
||||
|
|
|
@ -159,13 +159,14 @@ The Module Search Path
|
|||
|
||||
.. 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
|
||||
|
|
|
@ -148,6 +148,8 @@ class Pool(object):
|
|||
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')
|
||||
|
|
|
@ -1089,6 +1089,9 @@ class _TestPool(BaseTestCase):
|
|||
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()
|
||||
|
|
Loading…
Reference in New Issue