|
Upgrade to release 21.2.0:
- The enableSessions argument to twisted.internet.ssl.CertificateOptions
now actually enables/disables OpenSSL's session cache. Also, due
to session-related bugs, it defaults to False.
- twisted.internet.defer.inlineCallbacks and ensureDeferred will
now associate a contextvars.Context with the coroutines they run,
meaning that ContextVar objects will maintain their value within
the same coroutine, similarly to asyncio Tasks. This functionality
requires Python 3.7+, or the contextvars PyPI backport to be
installed for Python 3.5-3.6.
- twisted.internet.defer.Deferred.fromCoroutine has been added.
This is similar to the existing ensureDeferred function, but is
named more consistently inside Twisted and does not pass through
Deferreds.
- trial now allows the @unittest.skipIf decorator to specify that
an entire test class should be skipped.
- The twisted.python.deprecate.deprecatedKeywordParameter decorator
can be used to mark a keyword paramater of a function or method
as deprecated.
- Projects using Twisted can now perform type checking against a
Twisted installation, for example using mypy.
- twisted.python.util.InsensitiveDict now fully implements
MutableMapping.
- Python 3.8 is now tested and supported.
- Support a coroutine function in twisted.internet.task.react.
- PyPy 3.7 is now tested and supported.
- twisted.web.twcgi.CGIProcessProtocol.processEnded(...) now
handles an already-finished request, for example when
request.connectionLost(...) was called previously.
- Twisted's dependency on PyHamcrest has been moved from the base
package to the new "test" extra. Consequently the test extra
must be installed for Twisted's test suite to pass.
- Fixed serialization of timedelta, date, and time objects in
twisted.spread.
- twisted.internet.asyncioreactor.AsyncioSelectorReactor now raises
an exception if instantiated with an event loop which is not
compatible with asyncio.SelectorEventLoop. This fixes the
AsyncioSelectorReactor in Python 3.8+ on Windows, where in bp-34687
the default Windows asyncio event loop was changed to
ProactorEventLoop. Applications that use AsyncioSelectorReactor
on Windows with Python 3.8+ must call
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
before instantiating and running AsyncioSelectorReactor.
- twisted.internet.process.registerReapProcessHandler and
._BaseProcess.reapProcess will no longer raise a TypeError when
processing a None PID
- INotify will close its file descriptor if a directory is
automatically removed by twisted from the watchlist because it's
deleted, avoiding orphaned filedescriptors.
- DelayedCall.reset() is now working properly with asyncioreactor.
- AsyncioSelectorReactor.seconds() now correctly returns an epoch
time.
- The _connDone parameter has been removed from
twisted.internet.abstract.FileDescriptor.loseConnection()'s
signature in order to match the signature in the base class
twisted.internet._newtls.ConnectionMixin loseConnection().
- The Gtk3 reactor now runs on Wayland-only sessions
- Descriptive error messages from twisted.internet.error are now
present when running with 'python -OO'.
- Comparator methods such as eq() now always return NotImplemented
for uncomparable types.
- When installing Twisted it now requires a minimum Python 3.5.4
version to match the version used with automated testing. This
is the minimum Python version that we know that Twisted works
with.
License-Update: Add contributors and update year.
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Acked-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|