Twisted 8.0.0pre1 features
Новое
twisted.python.modules is a new system for representing and manipulating module paths (i.e. sys.path) (#1951)
Log files now include seconds in the timestamps (#867)
objgrep now knows how to search through deque objects (#2323)
It is now possible to limit the number of log files to create during log rotation (#1095)
twisted.python.lockfile contains a DeferredFilesystemLock which gives a Deferred interface to lock file acquisition (#2180)
twisted.python.log now contains a Twisted log observer which can forward messages to the Python logging system (#1351)
Trial reporting to core unittest TestResult objects has been improved (#2495)
There is now an example cred checker that uses a database via adbapi (#460)
twisted.internet.fdesc now contains a writeToFD function in twisted, along with other minor fixes (#2419)
The interface required by the log context system is now documented as ILoggingContext, and abstract.FileDescriptor now declares that it implements it (#1272)
The epoll reactor is now documented in the choosing-reactors howto (#2539)
twisted.python.usage now allows optional type enforcement (#739)
LoopingCall now allows you to specify the reactor to use to schedule new calls, allowing much better testing techniques (#2633, #2634)
Trial’s TestCase now has an addCleanup method which allows easy setup of tear-down code (#2610, #2899)
Int8Receiver was added (#2315)
Various refactorings to AMP introduced better testability and public interfaces (#2657, #2667, #2656, #2664, #2810)
TestCase now has an assertWarns method which allows testing that functions emit warnings (#2626, #2703)
The reactor now has a blockingCallFromThread method for non-reactor threads to use to wait for a reactor-scheduled call to return a result (#1042, #3030)
There were improvements to the client howto (#222)
twisted.protocol.policies.TrafficLoggingFactory now has a resetCounter method (#2757)
Exceptions raised inside of inlineCallbacks-using functions now have a better chance of coming with a meaningful traceback (#2639, #2803)
Trial’s TestCase now has an assertIsInstance method (#2749)
Trial’s memory footprint and speed are greatly improved (#2275)
The FTP client can be told which port range within which to bind passive transfer ports (#1904)
twisted.python.randbytes now contains code for generating secure random bytes (#2685)
At the end of trial runs, “PASSED” and “FAILED” messages are now colorized (#2856)
Tests which leave global state around in the reactor will now fail in trial. A new option, —unclean-warnings, will convert these errors back into warnings (#2091)
Trial now has a —without-module command line for testing code in an environment that lacks a particular Python module (#1795)
Error reporting of failed assertEquals assertions now has much nicer formatting (#2893)
Trial now has methods for monkey-patching (#2598)
twisted.protocols.memcache contains a new asynchronous memcache client (#2506, #2957)
The trial reporter API now has a ‘done’ method which is called at the end of a test run (#2883)
The classes in twisted.application.internet now accept a reactor parameter for specifying the reactor to use for underlying calls to allow for better testability (#2937)
There are now no string exceptions in the entire Twisted code base (#2063)
There is now a system for specifying credentials checkers with a string (#2570)
twisted.spread.jelly now supports decimal objects (#2920)
twisted.spread.jelly now supports all forms of sets (#2958)
twisted.internet.task.deferLater is a new API for scheduling calls and getting deferreds which are fired with their results (#1875)
twistd can now profile with cProfile (#2469)
There is now an interface describing the API that process protocols must provide (#3020)
Исправления
- Some tests which were asserting the value of stderr have been changed because Python uncontrollably writes bytes to stderr (#2405)
- Log files handle time zones with DST better (#2404)
- Subprocesses using PTYs on OS X that are handled by Twisted will now be able to more reliably write the final bytes before they exit, allowing Twisted code to more reliably receive them (#2371, #2858)
- Trial unit test reporting has been improved (#1901)
- The kqueue reactor handles connection failures better (#2172)
- It’s now possible to run “trial foo/bar/” without an exception: trailing slashes no longer cause problems (#2005)
- cred portals now better deal with implementations of inherited interfaces (#2523)
- FTP error handling has been improved (#1160, 1107)
- Trial behaves better with respect to file locking on Windows (#2482)
- The FTP server now gives a better error when STOR is attempted during an anonymous session (#1575)
- Trial now behaves better with tests that use the reactor’s threadpool (#1832)
- twisted.python.reload now behaves better with new-style objects (#2297)
- LogFile’s defaultMode parameter is now better implemented, preventing potential security exploits (#2586)
- twisted.internet.abstract.isIPAddress no longer egregiously returns False for IP addresses with fewer than four parts (#2654)
- A minor obscure leak in thread pools was corrected (#1134)
- twisted.internet.task.Clock now returns the correct DelayedCall from callLater, instead of returning the one scheduled for the furthest in the future (#2691)
- twisted.spread.util.FilePager no longer unnecessarily buffers data in memory (#1843, 2321)
- Asking for twistd or trial to use an unavailable reactor no longer prints a traceback (#2457)
- System event triggers have fewer obscure bugs (#2509)
- Plugin discovery code is much better behaved, allowing multiple installations of a package with plugins (#2339, #2769)
- Process and PTYProcess have been merged and some minor bugs have been fixed (#2341)
- The reactor has less global state (#2545)
- Failure can now correctly represent and format errors caused by string exceptions (#2830)
- The epoll reactor now has better error handling which now avoids the bug causing 100% CPU usage in some cases (#2809)
- Errors raised during trial setUp or tearDown methods are now handled better (#2837)
- A problem when deferred callbacks add new callbacks to the deferred that they are a callback of was fixed (#2849)
- Log messages that are emitted during connectionMade now have the protocol prefix correctly set (#2813)
- The string representation of a TCP Server connection now contains the actual port that it’s bound to when it was configured to listen on port 0 (#2826)
- There is better reporting of error codes for TCP failures on Windows (#2425)
- Process spawning has been made slightly more robust by disabling garbage collection temporarily immediately after forking so that finalizers cannot be executed in an unexpected environment (#2483)
- namedAny now detects import errors better (#698)
- Many fixes and improvements to the twisted.python.zipstream module have been made (#2996)
- FilePager no longer blows up on empty files (#3023)
- twisted.python.util.FancyEqMixin has been improved to cooperate with objects of other types (#2944)
- twisted.python.FilePath.exists now restats to prevent incorrect result (#2896)
- twisted.python.util.mergeFunctionMetadata now also merges the module attribute (#3049)
- It is now possible to call transport.pauseProducing within connectionMade on TCP transports without it being ignored (#1780)
- twisted.python.versions now understands new SVN metadata format for fetching the SVN revision number (#3058)
- It’s now possible to use reactor.callWhenRunning(reactor.stop) on gtk2 and glib2 reactors (#3011)
- twisted.python.timeoutqueue is now deprecated (#2536) - twisted.enterprise.row and twisted.enterprise.reflector are now deprecated (#2387) - twisted.enterprise.util is now deprecated (#3022) - The dispatch and dispatchWithCallback methods of ThreadPool are now deprecated (#2684) - Starting the same reactor multiple times is now deprecated (#1785) - The visit method of various test classes in trial has been deprecated (#2897) - The —report-profile option to twistd and twisted.python.dxprofile are deprecated (#2908) - The upDownError method of Trial reporters is deprecated (#2883)
Прочее
- #2396, #2211, #1921, #2378, #2247, #1603, #2463, #2530, #2426, #2356, #2574,
- #1844, #2575, #2655, #2640, #2670, #2688, #2543, #2743, #2744, #2745, #2746,
- #2742, #2741, #1730, #2831, #2216, #1192, #2848, #2767, #1220, #2727, #2643,
- #2669, #2866, #2867, #1879, #2766, #2855, #2547, #2857, #2862, #1264, #2735,
- #942, #2885, #2739, #2901, #2928, #2954, #2906, #2925, #2942, #2894, #2793,
- #2761, #2977, #2968, #2895, #3000, #2990, #2919, #2969, #2921, #3005, #421,
- #3031, #2940, #1181, #2783, #1049, #3053, #2847, #2941, #2876, #2886, #3086



















Comments
Nice site
Thanks, webmaster.