<commit_before>++++++++++
Change log
++++++++++

Version 2.0
===========

Major changes: on Python 3.5+ ProactorEventLoop now supports SSL, a lot of
bugfixes (random race conditions) in the ProactorEventLoop.

The Trollius project moved from Bitbucket to Github. The project is now a fork
of the Git repository of the asyncio project (previously called the "tulip"
project), the trollius source code lives in the trollius branch.

The new Trollius home page is now: https://github.com/haypo/trollius

The asyncio project moved to: https://github.com/python/asyncio

Note: the PEP 492 is not supported in trollius (yet?).

API changes:

* Issue #234: Drop JoinableQueue on Python 3.5+
* add the asyncio.ensure_future() function, previously called async().
  The async() function is now deprecated.
* New event loop methods: set_task_factory() and get_task_factory().
* Python issue #23347: Make BaseSubprocessTransport.wait() private.
* Python issue #23347: send_signal(), kill() and terminate() methods of
  BaseSubprocessTransport now check if the transport was closed and if the
  process exited.
* Python issue #23209, #23225: selectors.BaseSelector.get_key() now raises a
  RuntimeError if the selector is closed. And selectors.BaseSelector.close()
  now clears its internal reference to the selector mapping to break a
  reference cycle. Initial patch written by <NAME>.
* PipeHandle.fileno() of asyncio.windows_utils now raises an exception if the
  pipe is closed.
* Remove Overlapped.WaitNamedPipeAndConnect() of the _overlapped module,
  it is no more used and it had issues.
* Python issue #23537: Remove 2 unused private methods of
  BaseSubprocessTransport: _make_write_subprocess_pipe_proto,
  _make_read_subprocess_pipe_proto. Methods only raise NotImplementedError and
  are never used.
* Remove unused SSLProtocol._closing attribute

New SSL implementation:

* Python issue #22560: On Python 3.5 and newer, a new SSL implementation based
  on ssl.MemoryBIO instead of the legacy SSL implementation. Patch written by
  <NAME>, based on the work of <NAME>.
* If available, the new SSL implementation can be used by ProactorEventLoop to
  support SSL.

Enhance, fix and cleanup the IocpProactor:

* Python issue #23293: Rewrite IocpProactor.connect_pipe(). 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.
* Tulip issue #204: Fix IocpProactor.accept_pipe().
  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.
* Tulip issue #204: Fix IocpProactor.recv(). If ReadFile() fails with
  ERROR_BROKEN_PIPE, the operation is not pending: don't register the
  overlapped.
* Python issue #23095: Rewrite _WaitHandleFuture.cancel().
  _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().
* Python issue #23293: Rewrite IocpProactor.connect_pipe() as a coroutine. Use
  a coroutine with asyncio.sleep() instead of call_later() to ensure that the
  schedule call is cancelled.
* Fix ProactorEventLoop.start_serving_pipe(). If a client connected before the
  server was closed: drop the client (close the pipe) and exit
* Python issue #23293: Cleanup IocpProactor.close(). The special case for
  connect_pipe() is not more needed. connect_pipe() doesn't use overlapped
  operations anymore.
*  IocpProactor.close(): don't cancel futures which are already cancelled
* Enhance (fix) BaseProactorEventLoop._loop_self_reading(). Handle correctly
  CancelledError: just exit. On error, log the exception and exit; don't try to
  close the event loop (it doesn't work).

Bug fixes:

* Fix LifoQueue's and PriorityQueue's put() and task_done().
* Issue #222: Fix the @coroutine decorator for functions without __name__
  attribute like functools.partial(). Enhance also the representation of a
  CoroWrapper if the coroutine function is a functools.partial().
* Python issue #23879: SelectorEventLoop.sock_connect() must not call connect()
  again if the first call to connect() raises an InterruptedError. When the C
  function connect() fails with EINTR, the connection runs in background. We
  have to wait until the socket becomes writable to be notified when the<commit_msg>cleanup changelog<commit_after>++++++++++
Change log
++++++++++

Version 2.0
===========

Major changes: on Python 3.5+ ProactorEventLoop now supports SSL, a lot of
bugfixes (random race conditions) in the ProactorEventLoop.

The Trollius project moved from Bitbucket to Github. The project is now a fork
of the Git repository of the asyncio project (previously called the "tulip"
project), the trollius source code lives in the trollius branch.

The new Trollius home page is now: https://github.com/haypo/trollius

The asyncio project moved to: https://github.com/python/asyncio

Note: the PEP 492 is not supported in trollius (yet?).

API changes:

* Issue #234: Drop JoinableQueue on Python 3.5+
* add the asyncio.ensure_future() function, previously called async().
  The async() function is now deprecated.
* New event loop methods: set_task_factory() and get_task_factory().
* Python issue #23347: Make BaseSubprocessTransport.wait() private.
* Python issue #23347: send_signal(), kill() and terminate() methods of
  BaseSubprocessTransport now check if the transport was closed and if the
  process exited.
* Python issue #23209, #23225: selectors.BaseSelector.get_key() now raises a
  RuntimeError if the selector is closed. And selectors.BaseSelector.close()
  now clears its internal reference to the selector mapping to break a
  reference cycle. Initial patch written by <NAME>.
* PipeHandle.fileno() of asyncio.windows_utils now raises an exception if the
  pipe is closed.
* Remove Overlapped.WaitNamedPipeAndConnect() of the _overlapped module,
  it is no more used and it had issues.
* Python issue #23537: Remove 2 unused private methods of
  BaseSubprocessTransport: _make_write_subprocess_pipe_proto,
  _make_read_subprocess_pipe_proto. Methods only raise NotImplementedError and
  are never used.
* Remove unused SSLProtocol._closing attribute

New SSL implementation:

* Python issue #22560: On Python 3.5 and newer, use new SSL implementation
  based on ssl.MemoryBIO instead of the legacy SSL implementation. Patch
  written by <NAME>, based on the work of <NAME>.
* If available, the new SSL implementation can be used by ProactorEventLoop to
  support SSL.

Enhance, fix and cleanup the IocpProactor:

* Python issue #23293: Rewrite IocpProactor.connect_pipe(). 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.
* Tulip issue #204: Fix IocpProactor.accept_pipe().
  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.
* Tulip issue #204: Fix IocpProactor.recv(). If ReadFile() fails with
  ERROR_BROKEN_PIPE, the operation is not pending: don't register the
  overlapped.
* Python issue #23095: Rewrite _WaitHandleFuture.cancel().
  _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().
* Python issue #23293: Rewrite IocpProactor.connect_pipe() as a coroutine. Use
  a coroutine with asyncio.sleep() instead of call_later() to ensure that the
  scheduled call is cancelled.
* Fix ProactorEventLoop.start_serving_pipe(). If a client was connected before
  the server was closed: drop the client (close the pipe) and exit
* Python issue #23293: Cleanup IocpProactor.close(). The special case for
  connect_pipe() is no more needed. connect_pipe() doesn't use overlapped
  operations anymore.
* IocpProactor.close(): don't cancel futures which are already cancelled
* Enhance (fix) BaseProactorEventLoop._loop_self_reading(). Handle correctly
  CancelledError: just exit. On error, log the exception and exit; don't try to
  close the event loop (it doesn't work).

Bug fixes:

* Fix LifoQueue's and PriorityQueue's put() and task_done().
* Issue #222: Fix the @coroutine decorator for functions without __name__
  attribute like functools.partial(). Enhance also the representation of a
  CoroWrapper if the coroutine function is a functools.partial().
* Python issue #23879: SelectorEventLoop.sock_connect() must not call connect()
  again if the first call to connect() raises an InterruptedError. When the C
  function connect() fails with EINTR, the connection runs in background. We
  have to wait until the socket becomes writable to be notified when the
{'fraction_non_alphanumeric': 0.07163982911600394, 'fraction_numerical': 0.018183809836783877, 'mean_word_length': 4.845070422535211, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2593536', 'n_tokens_mistral': 2692, 'n_tokens_neox': 2504, 'n_words': 1163}