summaryrefslogtreecommitdiffstats
path: root/Lib
Commit message (Collapse)AuthorAgeFilesLines
* Issue #23347, asyncio: send_signal(), terminate(), kill() don't check if theVictor Stinner2015-01-302-20/+3
| | | | | | | transport was closed. The check broken a Tulip example and this limitation is arbitrary. Check if _proc is None should be enough. Enhance also close(): do nothing when called the second time.
* Issue #23347, asyncio: Make BaseSubprocessTransport.wait() privateVictor Stinner2015-01-294-4/+4
|
* asyncio: Fix ResourceWarning in test_subprocess.test_proc_exit()Victor Stinner2015-01-291-0/+2
|
* asyncio: sync with TulipVictor Stinner2015-01-296-104/+166
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Issue #23347: send_signal(), kill() and terminate() methods of BaseSubprocessTransport now check if the transport was closed and if the process exited. Issue #23347: Refactor creation of subprocess transports. Changes on BaseSubprocessTransport: * Add a wait() method to wait until the child process exit * The constructor now accepts an optional waiter parameter. The _post_init() coroutine must not be called explicitly anymore. It makes subprocess transports closer to other transports, and it gives more freedom if we want later to change completly how subprocess transports are created. * close() now kills the process instead of kindly terminate it: the child process may ignore SIGTERM and continue to run. Call explicitly terminate() and wait() if you want to kindly terminate the child process. * close() now logs a warning in debug mode if the process is still running and needs to be killed * _make_subprocess_transport() is now fully asynchronous again: if the creation of the transport failed, wait asynchronously for the process eixt. Before the wait was synchronous. This change requires close() to *kill*, and not terminate, the child process. * Remove the _kill_wait() method, replaced with a more agressive close() method. It fixes _make_subprocess_transport() on error. BaseSubprocessTransport.close() calls the close() method of pipe transports, whereas _kill_wait() closed directly pipes of the subprocess.Popen object without unregistering file descriptors from the selector (which caused severe bugs). These changes simplifies the code of subprocess.py.
* Issue #23243, asyncio: Emit a ResourceWarning when an event loop or a transportVictor Stinner2015-01-2910-10/+104
| | | | is not explicitly closed. Close also explicitly transports in test_sslproto.
* Issue #22668: Remove endianness assumption in test.Stefan Krah2015-01-291-3/+5
|
* Issue #22668: Ensure that format strings survive slicing after casting.Stefan Krah2015-01-291-0/+19
|
* asyncio: sync with TulipVictor Stinner2015-01-295-44/+85
| | | | | | | | | * Cleanup gather(): use cancelled() method instead of using private Future attribute * Fix _UnixReadPipeTransport and _UnixWritePipeTransport. Only start reading when connection_made() has been called. * Issue #23333: Fix BaseSelectorEventLoop._accept_connection(). Close the transport on error. In debug mode, log errors using call_exception_handler()
* asyncio doc: document Protocol state machineVictor Stinner2015-01-291-0/+5
|
* asyncio: sync with TulipVictor Stinner2015-01-292-4/+24
| | | | | | | | | | * _SelectorTransport constructor: extra parameter is now optional * Fix _SelectorDatagramTransport constructor. Only start reading after connection_made() has been called. * Fix _SelectorSslTransport.close(). Don't call protocol.connection_lost() if protocol.connection_made() was not called yet: if the SSL handshake failed or is still in progress. The close() method can be called if the creation of the connection is cancelled, by a timeout for example.
* asyncio: BaseSubprocessTransport._kill_wait() now also call close()Victor Stinner2015-01-291-0/+3
| | | | close() closes pipes, which is not None yet by _kill_wait().
* asyncio: Fix _SelectorSocketTransport constructorVictor Stinner2015-01-282-6/+14
| | | | | Only start reading when connection_made() has been called: protocol.data_received() must not be called before protocol.connection_made().
* asyncio: SSL transports now clear their reference to the waiterVictor Stinner2015-01-284-21/+32
| | | | | | | * Rephrase also the comment explaining why the waiter is not awaken immediatly. * SSLProtocol.eof_received() doesn't instanciate ConnectionResetError exception directly, it will be done by Future.set_exception(). The exception is not used if the waiter was cancelled or if there is no waiter.
* asyncio: Fix SSLProtocol.eof_received()Victor Stinner2015-01-282-11/+33
| | | | Wake-up the waiter if it is not done yet.
* Update setuptools to 12.0.5 and pip to 6.0.7Donald Stufft2015-01-283-2/+2
|
* asyncio: sync with TulipVictor Stinner2015-01-273-2/+7
| | | | | | | | | | * Remove unused SSLProtocol._closing attribute * test_sslproto: skip test if ssl module is missing * Python issue #23208: Don't use the traceback of the current handle if we already know the traceback of the source. The handle may be more revelant, but having 3 tracebacks (handle, source, exception) becomes more difficult to read. The handle may be preferred later but it requires more work to make this choice.
* asyncio, Tulip issue 204: Fix IocpProactor.recv()Victor Stinner2015-01-261-7/+13
| | | | | | | | | If ReadFile() fails with ERROR_BROKEN_PIPE, the operation is not pending: don't register the overlapped. I don't know if WSARecv() can fail with ERROR_BROKEN_PIPE. Since Overlapped.WSARecv() already handled ERROR_BROKEN_PIPE, let me guess that it has the same behaviour than ReadFile().
* Issue #23095, asyncio: Fix _WaitHandleFuture.cancel()Victor Stinner2015-01-261-20/+17
| | | | | If UnregisterWaitEx() fais with ERROR_IO_PENDING, it doesn't mean that the wait is unregistered yet. We still have to wait until the wait is cancelled.
* Issue #23293, asyncio: Rewrite IocpProactor.connect_pipe() as a coroutineVictor Stinner2015-01-262-21/+31
| | | | | | | Use a coroutine with asyncio.sleep() instead of call_later() to ensure that the schedule call is cancelled. Add also a unit test cancelling connect_pipe().
* asyncio: PipeHandle.fileno() now raises an exception if the pipe is closedVictor Stinner2015-01-261-0/+2
|
* asyncio: Fix ProactorEventLoop.start_serving_pipe()Victor Stinner2015-01-261-1/+13
| | | | | If a client connected before the server was closed: drop the client (close the pipe) and exit.
* Issue #14099: Backout changeset e5bb3044402b (except adapted tests).Serhiy Storchaka2015-01-262-125/+94
|
* Merge headsSerhiy Storchaka2015-01-262-15/+41
|\
| * Issue #23208, asyncio: Add BaseEventLoop._current_handleVictor Stinner2015-01-261-6/+19
| | | | | | | | | | | | | | | | | | In debug mode, BaseEventLoop._run_once() now sets the BaseEventLoop._current_handle attribute to the handle currently executed. In release mode or when no handle is executed, the attribute is None. BaseEventLoop.default_exception_handler() displays the traceback of the current handle if available.
| * Issue #23293, asyncio: Cleanup IocpProactor.close()Victor Stinner2015-01-261-6/+1
| | | | | | | | | | The special case for connect_pipe() is not more needed. connect_pipe() doesn't use overlapped operations anymore.
| * asyncio: Close transports on errorVictor Stinner2015-01-261-3/+21
| | | | | | | | | | Fix create_datagram_endpoint(), connect_read_pipe() and connect_write_pipe(): close the transport if the task is cancelled or on error.
* | Issue #18518: timeit now rejects statements which can't be compiled outsideSerhiy Storchaka2015-01-262-0/+18
|/ | | | a function or a loop (e.g. "return" or "break").
* Issue #23094: Fixed readline with frames in Python implementation of pickle.Serhiy Storchaka2015-01-262-1/+9
|
* Issue #7665: Fixed tests test_ntpath and test_urllib2 when ran in theSerhiy Storchaka2015-01-262-4/+5
| | | | directory containing a backslash.
* Issue #23268: Fixed bugs in the comparison of ipaddress classes.Serhiy Storchaka2015-01-262-45/+49
|
* Issue #21408: The default __ne__() now returns NotImplemented if __eq__()Serhiy Storchaka2015-01-269-45/+63
| | | | returned NotImplemented. Removed incorrect implementations of __ne__().
* handle headers with no key (closes #19996)Benjamin Peterson2015-01-263-1/+26
| | | | Patch by Cory Benfield.
* Increase http.client.HTTPConnection test coverage.Senthil Kumaran2015-01-251-25/+42
| | | | | Added a new tunnel test to verify setting of _tunnel_host, _tunnel_port, _tunnel_headers attributes on HTTPConnection object.
* Issue #23207: logging.basicConfig() now does additional validation of its ↵Vinay Sajip2015-01-231-8/+11
| | | | arguments.
* revert 7b833bd1f509. I misread the side effect that the code was triggering.Gregory P. Smith2015-01-231-2/+4
| | | | | *any* kwarg supplied to _assert_python causes it to not append -E to the command line flags so without='-E' does effectively work.
* Remove the unimplemented but ignored without='-E' parameters being passed toGregory P. Smith2015-01-231-4/+2
| | | | | | script_helper.assert_python_failure(). No such feature has ever existed, thus it doesn't do what the comment claims. (It does add a 'without' variable to the environment of the child process but that was not intended)
* Only pass -E to the child interpreter if our interpreter was running in thatGregory P. Smith2015-01-231-7/+15
| | | | | | | | | | mode. Explicitly remove the PYTHONFAULTHANDLER environment variable before launching a child interpreter when its presence would impact the test (the reason -E was being used in the first place). This enables running the test in an environment where other Python environment variables must be set in order for things to run (such as using PYTHONHOME to tell an embedded interpreter where it should think it lives).
* asyncio, Tulip issue 204: Fix IocpProactor.accept_pipe()Victor Stinner2015-01-221-24/+17
| | | | | | | | Overlapped.ConnectNamedPipe() now returns a boolean: True if the pipe is connected (if ConnectNamedPipe() failed with ERROR_PIPE_CONNECTED), False if the connection is in progress. This change removes multiple hacks in IocpProactor.
* Break up TestCommandLine.test_env_var into four distinct tests.Gregory P. Smith2015-01-221-3/+5
|
* Issue #23293, asyncio: Rewrite IocpProactor.connect_pipe()Victor Stinner2015-01-221-17/+26
| | | | | | | | Add _overlapped.ConnectPipe() which tries to connect to the pipe for asynchronous I/O (overlapped): call CreateFile() in a loop until it doesn't fail with ERROR_PIPE_BUSY. Use an increasing delay between 1 ms and 100 ms. Remove Overlapped.WaitNamedPipeAndConnect() which is no more used.
* asyncio: IocpProactor.close() doesn't cancel anymore futures which are alreadyVictor Stinner2015-01-221-3/+7
| | | | cancelled
* Issue #23009: Add missing "import sys" in test_selectorsVictor Stinner2015-01-221-0/+1
|
* Issue #23009: Skip test_selectors.test_empty_select() on WindowsVictor Stinner2015-01-221-0/+4
|
* Issue #23095, asyncio: IocpProactor.close() must not cancel pendingVictor Stinner2015-01-211-0/+6
| | | | _WaitCancelFuture futures
* asyncio: BaseEventLoop._create_connection_transport() catchs any exception, notVictor Stinner2015-01-211-1/+1
| | | | only Exception
* Issue #23095, asyncio: Rewrite _WaitHandleFuture.cancel()Victor Stinner2015-01-211-34/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change fixes a race conditon related to _WaitHandleFuture.cancel() leading to Python crash or "GetQueuedCompletionStatus() returned an unexpected event" logs. Before, the overlapped object was destroyed too early, it was possible that the wait completed whereas the overlapped object was already destroyed. Sometimes, a different overlapped was allocated at the same address, leading to unexpected completition. _WaitHandleFuture.cancel() now waits until the wait is cancelled to clear its reference to the overlapped object. To wait until the cancellation is done, UnregisterWaitEx() is used with an event instead of UnregisterWait(). To wait for this event, a new _WaitCancelFuture class was added. It's a simplified version of _WaitCancelFuture. For example, its cancel() method calls UnregisterWait(), not UnregisterWaitEx(). _WaitCancelFuture should not be cancelled. The overlapped object is kept alive in _WaitHandleFuture until the wait is unregistered. Other changes: * Add _overlapped.UnregisterWaitEx() * Remove fast-path in IocpProactor.wait_for_handle() to immediatly set the result if the wait already completed. I'm not sure that it's safe to call immediatly UnregisterWaitEx() before the completion was signaled. * Add IocpProactor._unregistered() to forget an overlapped which may never be signaled, but may be signaled for the next loop iteration. It avoids to block forever IocpProactor.close() if a wait was cancelled, and it may also avoid some "... unexpected event ..." warnings.
* asyncio: pyflakes, remove unused importVictor Stinner2015-01-213-11/+2
| | | | tests: Remove unused function; inline another function
* asyncio: Enhance BaseProactorEventLoop._loop_self_reading()Victor Stinner2015-01-212-5/+12
| | | | | | | | * Handle correctly CancelledError: just exit * On error, log the exception and exit Don't try to close the event loop, it is probably running and so it cannot be closed.
* Add the command line to the AssertionError raised by test.script_helper'sGregory P. Smith2015-01-212-2/+38
| | | | | | | Python subprocess failure assertion error messages for easier debugging. Adds a unittest for test.script_helper to confirm that this code works as it is otherwise uncovered by an already passing test suite that uses it. :)
* Issue #23280: Fix docstrings for binascii.(un)hexlifyZachary Ware2015-01-201-1/+3
|