Python 3.11

  • bpo-35845: Add ‘order’ parameter to memoryview.tobytes().

  • bpo-35864: The _asdict() method for collections.namedtuple now returns aregular dict instead of an OrderedDict.

  • bpo-35537: An ExitStack is now used internally within subprocess.Popen toclean up pipe file handles. No behavior change in normal operation. But ifclosing one handle were ever to cause an exception, the others will now beclosed instead of leaked. (patch by Giampaolo Rodola)

  • bpo-35847: RISC-V needed the CTYPES_PASS_BY_REF_HACK. Fixes ctypesStructure test_pass_by_value.

  • bpo-35813: Shared memory submodule added to multiprocessing to avoid needfor serialization between processes

  • bpo-35780: Fix lru_cache() errors arising in recursive, reentrant, ormulti-threaded code. These errors could result in orphan links and in thecache being trapped in a state with fewer than the specified maximumnumber of links. Fix handling of negative maxsize which should have beentreated as zero. Fix errors in toggling the “full” status flag. Fixmisordering of links when errors are encountered. Sync-up the C code andpure Python code for the space saving path in functions with a singlepositional argument. In this common case, the space overhead of an lrucache entry is reduced by almost half. Fix counting of cache misses. Inerror cases, the miss count was out of sync with the actual number oftimes the underlying user function was called.

  • bpo-35537: os.posix_spawn() and os.posix_spawnp() now have asetsid parameter.

  • bpo-23846: asyncio.ProactorEventLoop now catches and logs senderrors when the self-pipe is full.

  • bpo-34323: asyncio: Enhance IocpProactor.close() log: wait 1second before the first log, then log every second. Log also the number ofseconds since close() was called.

  • bpo-35674: Add a new os.posix_spawnp() function. Patch by JoannahNanjekye.

  • bpo-35733: ast.Constant(boolean) no longer an instance ofast.Num. Patch by Anthony Sottile.

  • bpo-35726: QueueHandler.prepare() now makes a copy of the record beforemodifying and enqueueing it, to avoid affecting other handlers in thechain.

  • bpo-35719: Sped up multi-argument math functions atan2(),copysign(), remainder() and hypot() by 1.3–2.5 times.

  • bpo-35717: Fix KeyError exception raised when using enums and compile.Patch contributed by Rémi Lapeyre.

  • bpo-35699: Fixed detection of Visual Studio Build Tools 2017 in distutils

  • bpo-32710: Fix memory leaks in asyncio ProactorEventLoop on overlappedoperation failure.

  • bpo-35702: The time.CLOCK_UPTIME_RAW constant is now available formacOS 10.12.

  • bpo-32710: Fix a memory leak in asyncio in the ProactorEventLoop whenReadFile() or WSASend() overlapped operation fail immediately:release the internal buffer.

  • bpo-35682: Fix asyncio.ProactorEventLoop.sendfile(): don’t attempt toset the result of an internal future if it’s already done.

  • bpo-35283: Add a deprecated warning for thethreading.Thread.isAlive() method. Patch by Dong-hee Na.

  • bpo-35664: Improve operator.itemgetter() performance by 33% with optimizedargument handling and with adding a fast path for the common case of asingle non-negative integer index into a tuple (which is the typical usecase in the standard library).

  • bpo-35643: Fixed a SyntaxWarning: invalid escape sequence inModules/_sha3/cleanup.py. Patch by Mickaël Schoentgen.

  • bpo-35619: Improved support of custom data descriptors in help() andpydoc.

  • bpo-28503: The crypt module now internally uses the crypt_r() libraryfunction instead of crypt() when available.

  • bpo-35614: Fixed help() on metaclasses. Patch by Sanyam Khurana.

  • bpo-35568: Expose raise(signum) as raise_signal

  • bpo-35588: The floor division and modulo operations and the divmod()function on fractions.Fraction types are 2–4x faster. Patch byStefan Behnel.

  • bpo-35585: Speed-up building enums by value, e.g. http.HTTPStatus(200).

  • bpo-30561: random.gammavariate(1.0, beta) now computes the same result asrandom.expovariate(1.0 / beta). This synchronizes the two algorithms andeliminates some idiosyncrasies in the old implementation. It does howeverproduce a difference stream of random variables than it used to.

  • bpo-35537: The subprocess module can now use theos.posix_spawn() function in some cases for better performance.

  • bpo-35526: Delaying the ‘joke’ of barry_as_FLUFL.mandatory to Pythonversion 4.0

  • bpo-35523: Remove ctypes callback workaround: no longer create acallback at startup. Avoid SELinux alert on import ctypes and importuuid.

  • bpo-31784: uuid.uuid1() now calls time.time_ns() rather thanint(time.time() * 1e9).

  • bpo-35513: TextTestRunner ofunittest.runner now uses time.perf_counter() rather thantime.time() to measure the execution time of a test:time.time() can go backwards, whereas time.perf_counter() ismonotonic.

  • bpo-35502: Fixed reference leaks inxml.etree.ElementTree.TreeBuilder in case of unfinished buildingof the tree (in particular when an error was raised during parsing XML).

  • bpo-35348: Make platform.architecture() parsing of file commandoutput more reliable: add the -b option to the file command toomit the filename, force the usage of the C locale, and search also the“shared object” pattern.

  • bpo-35491: multiprocessing: Add Pool.__repr__() and enhanceBaseProcess.__repr__() (add pid and parent pid) to ease debugging.Poo l state constant values are now strings instead of integers, forexample RUN value becomes 'RUN' instead of 0.

  • bpo-35477: multiprocessing.Pool.__enter__() now fails if the pool isnot running: with pool: fails if used more than once.

  • bpo-31446: Copy command line that was passed to CreateProcessW since thisfunction can change the content of the input buffer.

  • bpo-35471: Python 2.4 dropped MacOS 9 support. The macpath module wasdeprecated in Python 3.7. The module is now removed.

  • bpo-23057: Unblock Proactor event loop when keyboard interrupt is receivedon Windows

  • bpo-35052: Fix xml.dom.minidom cloneNode() on a document with an entity:pass the correct arguments to the user data handler of an entity.

  • bpo-20239: Allow repeated assignment deletion ofunittest.mock.Mock attributes. Patch by Pablo Galindo.

  • bpo-17185: Set __signature__ on mock for inspect to getsignature. Patch by Karthikeyan Singaravelan.

  • bpo-35445: Memory errors during creating posix.environ no longer ignored.

  • bpo-35415: Validate fileno=argument to socket.socket().

  • bpo-35424: multiprocessing.Pool destructor now emitsResourceWarning if the pool is still running.

  • bpo-35330: When a Mock instance was used to wrap an object, ifside_effect is used in one of the mocks of it methods, don’t call theoriginal implementation and return the result of using the side effect thesame way that it is done with return_value.

  • bpo-35346: Drop Mac OS 9 and Rhapsody support from the platformmodule. Rhapsody last release was in 2000. Mac OS 9 last release was in2001.

  • bpo-10496: check_environ() ofdistutils.utils now catches KeyError on callingpwd.getpwuid(): don’t create the HOME environment variable inthis case.

  • bpo-10496: posixpath.expanduser() now returns the input pathunchanged if the HOME environment variable is not set and the currentuser has no home directory (if the current user identifier doesn’t existin the password database). This change fix the site module if thecurrent user doesn’t exist in the password database (if the user has nohome directory).

  • bpo-35389: platform.libc_ver() now usesos.confstr('CS_GNU_LIBC_VERSION') if available and the executableparameter is not set.

  • bpo-35394: Add empty slots to asyncio abstract protocols.

  • bpo-35310: Fix a bug in select.select() where, in some cases, thefile descriptor sequences were returned unmodified after a signalinterruption, even though the file descriptors might not be ready yet.select.select() will now always return empty lists if a timeout hasoccurred. Patch by Oran Avraham.

  • bpo-35380: Enable TCP_NODELAY on Windows for proactor asyncio event loop.

  • bpo-35341: Add generic version of collections.OrderedDict to thetyping module. Patch by Ismo Toijala.

  • bpo-35371: Fixed possible crash in os.utime() on Windows when passincorrect arguments.

  • bpo-35346: platform.uname() now redirects stderr toos.devnull when running external programs like cmd /c ver.

  • bpo-35066: Previously, calling the strftime() method on a datetime objectwith a trailing ‘%’ in the format string would result in an exception.However, this only occurred when the datetime C module was being used; thepython implementation did not match this behavior. Datetime is now PEP-399compliant, and will not throw an exception on a trailing ‘%’.

  • bpo-35345: The function platform.popen has been removed, it wasdeprecated since Python 3.3: use os.popen() instead.

  • bpo-35344: On macOS, platform.platform() now usesplatform.mac_ver(), if it returns a non-empty release string, to getthe macOS version rather than the darwin version.

  • bpo-35312: Make lib2to3.pgen2.parse.ParseError round-trip pickle-able.Patch by Anthony Sottile.

  • bpo-35308: Fix regression in webbrowser where default browsers may bepreferred over browsers in the BROWSER environment variable.

  • bpo-24746: Avoid stripping trailing whitespace in doctest fancy diff.Original patch by R. David Murray & Jairo Trad. Enhanced by SanyamKhurana.

  • bpo-28604: locale.localeconv() now sets temporarily the LC_CTYPElocale to the LC_MONETARY locale if the two locales are different andmonetary strings are non-ASCII. This temporary change affects otherthreads.

  • bpo-35277: Update ensurepip to install pip 18.1 and setuptools 40.6.2.

  • bpo-24209: Ad ds IPv6 support when invoking http.server directly.

  • bpo-35226: Recursively check arguments when testing for equality ofunittest.mock.call objects and add note that tracking ofparameters used to create ancestors of mocks in mock_calls is notpossible.

  • bpo-29564: The warnings module now suggests to enable tracemalloc if thesource is specified, the tracemalloc module is available, but tracemallocis not tracing memory allocations.

  • bpo-35189: Modify the following fnctl function to retry if interrupted bya signal (EINTR): flock, lockf, fnctl

  • bpo-30064: Use add_done_callback() in sock_asyncio API to unsubscribereader/writer early on calcellation.

  • bpo-35186: Removed the “built with” comment added when setup.py uploadis used with either bdist_rpm or bdist_dumb.

  • bpo-35152: Allow sending more than 2 GB at once on a multiprocessingconnection on non-Windows systems.

  • bpo-35062: Fix incorrect parsing of_io.IncrementalNewlineDecoder’s translate argument.

  • bpo-35065: Remove StreamReaderProtocol._untrack_reader. The call to_untrack_reader is currently performed too soon, causing the protocol toforget about the reader before connection_lost can run and feed the EOFto the reader.

  • bpo-34160: ElementTree and minidom now preserve the attribute orderspecified by the user.

  • bpo-35079: Improve difflib.SequenceManager.get_matching_blocks doc byadding ‘non-overlapping’ and changing ‘!=’ to ‘

  • bpo-33710: Deprecated l*gettext() functions and methods in thegettext module. They return encoded bytes instead of Unicodestrings and are artifacts from Python 2 times. Also deprecated functionsand methods related to setting the charset for l*gettext() functionsand methods.

  • bpo-35017: socketserver.BaseServer.serve_forever() now exitsimmediately if it’s shutdown() method iscalled while it is polling for new events.

  • bpo-35024: importlib no longer logs wrote redundantlyafter (created|could not create) is already logged.Patch by Quentin Agren.

  • bpo-35047: unittest.mock now includes mock calls in exception messagesif assert_not_called, assert_called_once, orassert_called_once_with fails. Patch by Petter Strandmark.

  • bpo-31047: Fix ntpath.abspath regression where it didn’t remove atrailing separator on Windows. Patch by Tim Graham.

  • bpo-35053: tracemalloc now tries to update the traceback when an object isreused from a “free list” (optimization for faster object creation, usedby the builtin list type for example).

  • bpo-31553: Add the –json-lines option to json.tool. Patch by hongweipeng.

  • bpo-34794: Fixed a leak in Tkinter when pass the Python wrapper aroundTcl_Obj back to Tcl/Tk.

  • bpo-34909: Enum: fix grandchildren subclassing when parent mixed withconcrete data types.

  • bpo-35022: unittest.mock.MagicMock now supports the__fspath__ method (from os.PathLike).

  • bpo-35008: Fixed references leaks when call the __setstate__() methodof xml.etree.ElementTree.Element in the C implementation foralready initialized element.

  • bpo-23420: Verify the value for the parameter ‘-s’ of the cProfile CLI.Patch by Robert Kuska

  • bpo-33947: dataclasses now handle recursive reprs without raisingRecursionError.

  • bpo-34890: Make inspect.iscoroutinefunction(),inspect.isgeneratorfunction() and inspect.isasyncgenfunction()work with functools.partial(). Patch by Pablo Galindo.

  • bpo-34521: Use socket.CMSG_SPACE() to calculate ancillary data sizeinstead of socket.CMSG_LEN() inmultiprocessing.reduction.recvfds() as RFC 3542 requires the useof the former for portable applications.

  • bpo-31522: The mailbox.mbox.get_string function from_ parameter cannow successfully be set to a non-default value.

  • bpo-34970: Protect tasks weak set manipulation in asyncio.all_tasks()

  • bpo-34969: gzip: Add –fast, –best on the gzip CLI, these parameters willbe used for the fast compression method (quick) or the best methodcompress (slower, but smaller file). Also, change the default compressionlevel to 6 (tradeoff).

  • bpo-16965: The 2to3 execfile fixer now opens the filewith mode 'rb'. Patch by Zackery Spytz.

  • bpo-34966: pydoc now supports aliases not only to methods definedin the end class, but also to inherited methods. The docstring is notduplicated for aliases.

  • bpo-34926: mimetypes.MimeTypes.guess_type() now acceptspath-like object in addition to url strings. Patch by MayankAsthana.

  • bpo-23831: Add moveto() method to the tkinter.Canvas widget. Patchby Juliette Monsel.

  • bpo-34941: Methods find(), findtext() and findall() of theElement class in the xml.etree.ElementTree module are now ableto find children which are instances of Element subclasses.

  • bpo-32680: smtplib.SMTP objects now always have a sockattribute present

  • bpo-34769: Fix for async generators not finalizing when event loop is indebug mode and garbage collector runs in another thread.

  • bpo-34936: Fix TclError in tkinter.Spinbox.selection_element().Patch by Juliette Monsel.

  • bpo-34829: Add methods selection_from, selection_range,selection_present and selection_to to the tkinter.Spinbox forconsistency with the tkinter.Entry widget. Patch by Juliette Monsel.

  • bpo-34911: Added secure_protocols argument tohttp.cookiejar.DefaultCookiePolicy to allow for tweaking of protocolsand also to add support by default for wss, the secure websocketprotocol.

  • bpo-34922: Fixed integer overflow in the digest()and hexdigest() methods for the SHAKE algorithm inthe hashlib module.

  • bpo-34925: 25% speedup in argument parsing for the functions in the bisectmodule.

  • bpo-34900: Fixed unittest.TestCase.debug() when used to call testmethods with subtests. Patch by Bruno Oliveira.

  • bpo-34844: logging.Formatter enhancement – Ensure styles and fmt matchesin logging.Formatter – Added validate method in each format style class:StrFormatStyle, PercentStyle, StringTemplateStyle. – This method is calledin the constructor of logging.Formatter class – Also re-raise the KeyErrorin the format method of each style class, so it would a bit clear thatit’s an error with the invalid format fields.

  • bpo-34897: Adjust test.support.missing_compiler_executable check so that anominal command name of “” is ignored. Patch by Michael Felt.

  • bpo-34871: Fix inspect module polluted sys.modules when parsing__text_signature__ of callable.

  • bpo-34898: Add mtime argument to gzip.compress for reproducibleoutput. Patch by Guo Ci Teo.

  • bpo-28441: On Cygwin and MinGW, ensure that sys.executable alwaysincludes the full filename in the path, including the .exe suffix(unless it is a symbolic link).

  • bpo-34866: Adding max_num_fields to cgi.FieldStorage to make DOSattacks harder by limiting the number of MiniFieldStorage objectscreated by FieldStorage.

  • bpo-34711: http.server ensures it reports HTTPStatus.NOT_FOUND when thelocal path ends with “/” and is not a directory, even if the underlying OS(e.g. AIX) accepts such paths as a valid file reference. Patch by MichaelFelt.

  • bpo-34872: Fix self-cancellation in C implementation of asyncio.Task

  • bpo-34849: Don’t log waiting for selector.select in asyncio loopiteration. The waiting is pretty normal for any asyncio program, loggingits time just adds a noise to logs without any useful informationprovided.

  • bpo-34022: The SOURCE_DATE_EPOCH environment variable no longeroverrides the value of the invalidation_mode argument topy_compile.compile(), and determines its default value instead.

  • bpo-34819: Use a monotonic clock to compute timeouts inExecutor.map() and as_completed(), in order to preventtimeouts from deviating when the system clock is adjusted.

  • bpo-34758: Add .wasm -> application/wasm to list of recognized file typesand content type headers

  • bpo-34789: xml.sax.make_parser() now accepts any iterable as itsparser_list argument. Patch by Andrés Delfino.

  • bpo-34334: In QueueHandler, clear exc_text fromLogRecord to prevent traceback from being written twice.

  • bpo-34687: On Windows, asyncio now uses ProactorEventLoop, instead ofSelectorEventLoop, by default.

  • bpo-5950: Support reading zip files with archive comments inzipimport.

  • bpo-32892: The parser now represents all constants asast.Constant instead of using specific constant AST types(Num, Str, Bytes, NameConstant and Ellipsis). Theseclasses are considered deprecated and will be removed in future Pythonversions.

  • bpo-34728: Add deprecation warning when loop is used in methods:asyncio.sleep, asyncio.wait and asyncio.wait_for.

  • bpo-34738: ZIP files created by distutils will now include entriesfor directories.

  • bpo-34659: Add an optional initial argument to itertools.accumulate().

  • bpo-29577: Support multiple mixin classes when creating Enums.

  • bpo-34670: Add SSLContext.post_handshake_auth andSSLSocket.verify_client_post_handshake for TLS 1.3’s post handshakeauthentication feature.

  • bpo-32718: The Activate.ps1 script from venv works with PowerShell Core6.1 and is now available under all operating systems.

  • bpo-31177: Fix bug that prevented using reset_mock on mock instances with deleted attributes

  • bpo-34672: Add a workaround, so the 'Z' time.strftime()specifier on the musl C library can work in some cases.

  • bpo-34666: Implement asyncio.StreamWriter.awrite andasyncio.StreamWriter.aclose() coroutines. Methods are needed forproviding a consistent stream API with control flow switched on bydefault.

  • bpo-6721: Acquire the logging module’s commonly used internal locks whilefork()ing to avoid deadlocks in the child process.

  • bpo-34658: Fix a rare interpreter unhandled exception state SystemErroronly seen when using subprocess with a preexec_fn while an after_parenthandler has been registered with os.register_at_fork and the fork systemcall fails.

  • bpo-34652: Ensure os.lchmod() is never defined on Linux.

  • bpo-34638: Store a weak reference to stream reader to break strongreferences loop between reader and protocol. It allows to detect andclose the socket if the stream is deleted (garbage collected) withoutclose() call.

  • bpo-34536: Enum._missing_: raise ValueError if None returned andTypeError if non-member is returned.

  • bpo-34636: Speed up re scanning of many non-matching characters for s wand d within bytes objects. (microoptimization)

  • bpo-24412: Add addModuleCleanup() andaddClassCleanup() to unittest to supportcleanups for setUpModule() andsetUpClass(). Patch by Lisa Roach.

  • bpo-34630: Don’t log SSL certificate errors in asyncio code (connectionerror logging is skipped already).

  • bpo-32490: Prevent filename duplication in subprocess exceptionmessages. Patch by Zackery Spytz.

  • bpo-34363: dataclasses.asdict() and .astuple() now handle namedtuplescorrectly.

  • bpo-34625: Update vendorized expat library version to 2.2.6.

  • bpo-32270: The subprocess module no longer mistakenly closes redirectedfds even when they were in pass_fds when outside of the default {0, 1, 2}set.

  • bpo-34622: Create a dedicated asyncio.CancelledError,asyncio.InvalidStateError and asyncio.TimeoutError exceptionclasses. Inherit them from corresponding exceptions fromconcurrent.futures package. Extract asyncio exceptions into aseparate file.

  • bpo-34610: Fixed iterator of multiprocessing.managers.DictProxy.

  • bpo-34421: Fix distutils logging for non-ASCII strings. This causedinstallation issues on Windows.

  • bpo-34604: Fix possible mojibake in the error message of pwd.getpwnamand grp.getgrnam using string representation because of invisiblecharacters or trailing whitespaces. Patch by William Grzybowski.

  • bpo-30977: Make uuid.UUID use __slots__ to reduce its memoryfootprint. Based on original patch by Wouter Bolsterlee.

  • bpo-34574: OrderedDict iterators are not exhausted during picklinganymore. Patch by Sergey Fedoseev.

  • bpo-8110: Refactored subprocess to check for Windows-specificmodules rather than sys.platform == 'win32'.

  • bpo-34530: distutils.spawn.find_executable() now falls back onos.defpath if the PATH environment variable is not set.

  • bpo-34563: On Windows, fix multiprocessing.Connection for very large read:fix _winapi.PeekNamedPipe() and _winapi.ReadFile() for read larger thanINT_MAX (usually 231-1).

  • bpo-34558: Correct typo in Lib/ctypes/_aix.py

  • bpo-34282: Move Enum._convert to EnumMeta._convert_ and fix enummembers getting shadowed by parent attributes.

  • bpo-22872: When the queue is closed, ValueError is now raised bymultiprocessing.Queue.put() and multiprocessing.Queue.get()instead of AssertionError and OSError, respectively. Patchby Zackery Spytz.

  • bpo-34515: Fix parsing non-ASCII identifiers inlib2to3.pgen2.tokenize (PEP 3131).

  • bpo-13312: Avoids a possible integer underflow (undefined behavior) in thetime module’s year handling code when passed a very low negative yearvalue.

  • bpo-34472: Improved compatibility for streamed files in zipfile.Previously an optional signature was not being written and certain ZIPapplications were not supported. Patch by Silas Sewell.

  • bpo-34454: Fix the .fromisoformat() methods of datetime types crashingwhen given unicode with non-UTF-8-encodable code points. Specifically,datetime.fromisoformat() now accepts surrogate unicode code points used asthe separator. Report and tests by Alexey Izbyshev, patch by Paul Ganssle.

  • bpo-6700: Fix inspect.getsourcelines for module level frames/tracebacks.Patch by Vladimir Matveev.

  • bpo-34171: Running the trace module no longer creates thetrace.cover file.

  • bpo-34441: Fix crash when an ABC-derived class with invalid__subclasses__ is passed as the second argument toissubclass(). Patch by Alexey Izbyshev.

  • bpo-34427: Fix infinite loop in a.extend(a) for MutableSequencesubclasses.

  • bpo-34412: Make signal.strsignal() work on HP-UX. Patch by MichaelOsipov.

  • bpo-20849: shutil.copytree now accepts a new dirs_exist_ok keywordargument. Patch by Josh Bronson.

  • bpo-31715: Associate .mjs file extension withapplication/javascript MIME Type.

  • bpo-34384: os.readlink() now accepts path-like and bytes objects on Windows.

  • bpo-22602: The UTF-7 decoder now raises UnicodeDecodeError forill-formed sequences starting with “+” (as specified in RFC 2152). Patchby Zackery Spytz.

  • bpo-2122: The mmap.flush() method now returnsNone on success, raises an exception on error under all platforms.

  • bpo-34341: Appending to the ZIP archive with the ZIP64 extension no longergrows the size of extra fields of existing entries.

  • bpo-34333: Fix %-formatting in pathlib.PurePath.with_suffix() whenformatting an error message.

  • bpo-18540: The imaplib.IMAP4 and imaplib.IMAP4_SSLclasses now resolve to the local host IP correctly when the default valueof host parameter ('') is used.

  • bpo-26502: Implement traceback.FrameSummary.__len__() method topreserve compatibility with the old tuple API.

  • bpo-34318: assertRaises(),assertRaisesRegex(),assertWarns() andassertWarnsRegex() no longer success if thepassed callable is None. They no longer ignore unknown keyword argumentsin the context manager mode. A DeprecationWarning was raised in thesecases since Python 3.5.

  • bpo-9372: Deprecate __getitem__() methods ofxml.dom.pulldom.DOMEventStream, wsgiref.util.FileWrapperand fileinput.FileInput.

  • bpo-33613: Fix a race condition in multiprocessing.semaphore_trackerwhen the tracker receives SIGINT before it can register signal handlersfor ignoring it.

  • bpo-34248: Report filename in the exception raised when the database filecannot be opened by dbm.gnu.open() and dbm.ndbm.open() due toOS-related error. Patch by Zsolt Cserna.

  • bpo-33089: Add math.dist() to compute the Euclidean distance between twopoints.

  • bpo-34246: smtplib.SMTP.send_message() no longer modifies thecontent of the mail_options argument. Patch by Pablo S. Blum de Aguiar.

  • bpo-31047: Fix ntpath.abspath for invalid paths on windows. Patch byFranz Woellert.

  • bpo-32321: Add pure Python fallback for functools.reduce. Patch by RobertWright.

  • bpo-34270: The default asyncio task class now always has a name which canbe get or set using two new methods (get_name() andset_name()) and is visible in the repr() output.An initial name can also be set using the new name keyword argument toasyncio.create_task() or thecreate_task() method of the event loop.If no initial name is set, the default Task implementation generates aname like Task-1 using a monotonic counter.

  • bpo-34263: asyncio’s event loop will not pass timeouts longer than one dayto epoll/select etc.

  • bpo-34035: Fix several AttributeError in zipfile seek() methods. Patch byMickaël Schoentgen.

  • bpo-32215: Fix performance regression in sqlite3 when a DMLstatement appeared in a different line than the rest of the SQL query.

  • bpo-34075: Deprecate passing non-ThreadPoolExecutor instances toAbstractEventLoop.set_default_executor().

  • bpo-34251: Restore msilib.Win64 to preserve backwards compatibilitysince it’s already used by distutilsbdist_msi command.

  • bpo-19891: Ignore errors caused by missing / non-writable homedir whilewriting history during exit of an interactive session. Patch by AnthonySottile.

  • bpo-33089: Enhanced math.hypot() to support more than two dimensions.

  • bpo-34228: tracemalloc: PYTHONTRACEMALLOC=0 environment variable and -Xtracemalloc=0 command line option are now allowed to disable explicitlytracemalloc at startup.

  • bpo-13041: Use shutil.get_terminal_size() to calculate the terminalwidth correctly in the argparse.HelpFormatter class. Initial patch byZbyszek Jędrzejewski-Szmek.

  • bpo-34213: Allow frozen dataclasses to have a field named “object”.Previously this conflicted with an internal use of “object”.

  • bpo-34052: sqlite3.Connection.create_aggregate(),sqlite3.Connection.create_function(),sqlite3.Connection.set_authorizer(),sqlite3.Connection.set_progress_handler() methods raises TypeErrorwhen unhashable objects are passed as callable. These methods now don’tpass such objects to SQLite API. Previous behavior could lead tosegfaults. Patch by Sergey Fedoseev.

  • bpo-34197: Attributes skipinitialspace, doublequote and strict ofthe dialect attribute of the csv reader are now boolinstances instead of integers 0 or 1.

  • bpo-32788: Errors other than TypeError raised in methods__adapt__() and __conform__() in the sqlite3 module are nowpropagated to the user.

  • bpo-21446: The reload fixer now uses importlib.reload()instead of deprecated imp.reload().

  • bpo-940286: pydoc’s Helper.showtopic() method now prints the crossreferences of a topic correctly.

  • bpo-34164: base64.b32decode() could raise UnboundLocalError orOverflowError for incorrect padding. Now it always raisesbase64.E rror in these cases.

  • bpo-33729: Fixed issues with arguments parsing in hashlib.

  • bpo-34097: ZipFile can zip files older than 1980-01-01 and newer than2107-12-31 using a new strict_timestamps parameter at the cost ofsetting the timestamp to the limit.

  • bpo-34108: Remove extraneous CR in 2to3 refactor.

  • bpo-34070: Make sure to only check if the handle is a tty, when opening afile with buffering=-1.

  • bpo-27494: Reverted bpo-27494. 2to3 rejects now a trailing comma ingenerator expressions.

  • bpo-33967: functools.singledispatch now raises TypeError instead ofIndexError when no positional arguments are passed.

  • bpo-34041: Add the parameter deterministic to thesqlite3.Connection.create_function() method. Patch by SergeyFedoseev.

  • bpo-34056: Ensure the loader shim created by imp.load_module alwaysreturns bytes from its get_data() function. This fixes usingimp.load_module with PEP 552 hash-based pycs.

  • bpo-34054: The multiprocessing module now uses the monotonic clocktime.monotonic() instead of the system clock time.time() toimplement timeout.

  • bpo-34043: Optimize tarfile uncompress performance about 15% when gzip isused.

  • bpo-34044: subprocess.Popen now copies the startupinfo argument toleave it unchanged: it will modify the copy, so that the sameSTARTUPINFO object can be used multiple times.

  • bpo-34010: Fixed a performance regression for reading streams withtarfile. The buffered read should use a list, instead of appending to abytes object.

  • bpo-34019: webbrowser: Correct the arguments passed to Opera Browser whenopening a new URL using the webbrowser module. Patch by Bumsik Kim.

  • bpo-34003: csv.DictReader now creates dicts instead of OrderedDicts. Patchby Michael Selik.

  • bpo-33978: Closed existing logging handlers before reconfiguration viafileConfig and dictConfig. Patch by Karthikeyan Singaravelan.

  • bpo-14117: Make minor tweaks to turtledemo. The ‘wikipedia’ example is now‘rosette’, describing what it draws. The ‘penrose’ print output isreduced. The’1024’ output of ‘tree’ is eliminated.

  • bpo-33974: Fixed passing lists and tuples of strings containing specialcharacters ", , {, } and n as options tottk widgets.

  • bpo-27500: Fix getaddrinfo to resolve IPv6 addresses correctly.

  • bpo-24567: Improve random.choices() to handle subnormal input weights thatcould occasionally trigger an IndexError.

  • bpo-33871: Fixed integer overflow in os.readv(), os.writev(),os.preadv() and os.pwritev() and in os.sendfile() withheaders or trailers arguments (on BSD-based OSes and macOS).

  • bpo-25007: Add copy.copy() and copy.deepcopy() support to zlibcompressors and decompressors. Patch by Zackery Spytz.

  • bpo-33929: multiprocessing: Fix a race condition in Popen ofmultiprocessing.popen_spawn_win32. The child process now duplicates theread end of pipe instead of “stealing” it. Previously, the read end ofpipe was “stolen” by the child process, but it leaked a handle if thechild process had been terminated before it could steal the handle fromthe parent process.

  • bpo-33899: Tokenize module now implicitly emits a NEWLINE when providedwith input that does not have a trailing new line. This behavior nowmatches what the C tokenizer does internally. Contributed by Ammar Askar.

  • bpo-33897: Added a ‘force’ keyword argument to logging.basicConfig().

  • bpo-33695: shutil.copytree() uses os.scandir() function andall copy functions depending from it use cached os.stat() values.The speedup for copying a directory with 8000 files is around +9% onLinux, +20% on Windows and + 30% on a Windows SMB share. Also the numberof os.stat() syscalls is reduced by 38% makingshutil.copytree() especially faster on network filesystems.(Contributed by Giampaolo Rodola’ in bpo-33695.)

  • bpo-33916: bz2 and lzma: When Decompressor.__init__() is called twice,free the old lock to not leak memory.

  • bpo-32568: Make select.epoll() and its documentation consistent regardingsizehint and flags.

  • bpo-33833: Fixed bug in asyncio where ProactorSocketTransport logsAssertionError if force closed during write.

  • bpo-33663: Convert content length to string before putting to header.

  • bpo-33721: os.path functions that return a boolean result likeexists(), lexists(), isdir(),isfile(), islink(), andismount(), and pathlib.Path methods that return aboolean result like exists(),is_dir(), is_file(),is_mount(), is_symlink(),is_block_device(),is_char_device(), is_fifo(),is_socket() now return False instead of raisingValueError or its subclasses UnicodeEncodeError andUnicodeDecodeError for paths that contain characters or bytesunrepresentable at the OS level.

  • bpo-26544: Fixed implementation of platform.libc_ver(). It almostalways returned version ‘2.9’ for glibc.

  • bpo-33843: Remove deprecated cgi.escape, cgi.parse_qs andcgi.parse_qsl.

  • bpo-33842: Remove tarfile.filemode which is deprecated since Python3.3.

  • bpo-30167: Prevent site.main() exception if PYTHONSTARTUP is set. Patch bySteve Weber.

  • bpo-33805: Improve error message of dataclasses.replace() when an InitVaris not specified

  • bpo-33687: Fix the call to os.chmod() for uu.decode() if a mode isgiven or decoded. Patch by Timo Furrer.

  • bpo-33812: Datetime instance d with non-None tzinfo, but withd.tzinfo.utcoffset(d) returning None is now treated as naive by theastimezone() method.

  • bpo-32108: In configparser, don’t clear section when it is assigned toitself.

  • bpo-27397: Make email module properly handle invalid-length base64strings.

  • bpo-33578: Implement multibyte encoder/decoder state methods

  • bpo-30805: Avoid race condition with debug logging

  • bpo-33476: Fix _header_value_parser.py when address group is missing final‘;’. Contributed by Enrique Perez-Terron

  • bpo-33694: asyncio: Fix a race condition causing data loss onpause_reading()/resume_reading() when using the ProactorEventLoop.

  • bpo-32493: Correct test for uuid_enc_be availability inconfigure.ac. Patch by Michael Felt.

  • bpo-33792: Add asyncio.WindowsSelectorEventLoopPolicy andasyncio.WindowsProactorEventLoopPolicy.

  • bpo-33274: W3C DOM Level 1 specifies return value ofElement.removeAttributeNode() as “The Attr node that was removed.”xml.dom.minidom now complies with this requirement.

  • bpo-33778: Update unicodedata’s database to Unicode version 11.0.0.

  • bpo-33165: Added a stacklevel parameter to logging calls to allow use ofwrapper/helper functions for logging APIs.

  • bpo-33770: improve base64 exception message for encoded inputs of invalidlength

  • bpo-33769: asyncio/start_tls: Fix error message; cancel callbacks in caseof an unhandled error; mark SSLTransport as closed if it is aborted.

  • bpo-33767: The concatenation (+) and repetition (*) sequenceoperations now raise TypeError instead of SystemError whenperformed on mmap.mmap objects. Patch by Zackery Spytz.

  • bpo-33734: asyncio/ssl: Fix AttributeError, increase default handshaketimeout

  • bpo-31014: Fixed creating a controller for webbrowser when a userspecifies a path to an entry in the BROWSER environment variable. Basedon patch by John Still.

  • bpo-2504: Add gettext.pgettext() and variants.

  • bpo-33197: Add description property for _ParameterKind

  • bpo-32751: When cancelling the task due to a timeout,asyncio.wait_for() will now wait until the cancellation is complete.

  • bpo-32684: Fix gather to propagate cancellation of itself even withreturn_exceptions.

  • bpo-33654: Support protocol type switching in SSLTransport.set_protocol().

  • bpo-33674: Pause the transport as early as possible to further reduce therisk of data_received() being called before connection_made().

  • bpo-33671: shutil.copyfile(), shutil.copy(),shutil.copy2(), shutil.copytree() and shutil.move() useplatform-specific fast-copy syscalls on Linux and macOS in order to copythe file more efficiently. On Windows shutil.copyfile() uses abigger default buffer size (1 MiB instead of 16 KiB) and amemoryview()-based variant of shutil.copyfileobj() is used.The speedup for copying a 512MiB file is about +26% on Linux, +50% onmacOS and +40% on Windows. Also, much less CPU cycles are consumed.(Contributed by Giampaolo Rodola’ in bpo-25427.)

  • bpo-33674: Fix a race condition in SSLProtocol.connection_made() ofasyncio.sslproto: start immediately the handshake instead of usingcall_soon(). Previously, data_received() could be called before thehandshake started, causing the handshake to hang or fail.

  • bpo-31647: Fixed bug where calling write_eof() on a_SelectorSocketTransport after it’s already closed raises AttributeError.

  • bpo-32610: Make asyncio.all_tasks() return only pending tasks.

  • bpo-32410: Avoid blocking on file IO in sendfile fallback code

  • bpo-33469: Fix RuntimeError after closing loop that used run_in_executor

  • bpo-33672: Fix Task.__repr__ crash with Cython’s bogus coroutines

  • bpo-33654: Fix transport.set_protocol() to support switching betweenasyncio.Protocol and asyncio.BufferedProtocol. Fix loop.start_tls() towork with asyncio.BufferedProtocols.

  • bpo-33652: Pickles of type variables and subscripted generics are nowfuture-proof and compatible with older Python versions.

  • bpo-32493: Fixed uuid.uuid1() on FreeBSD.

  • bpo-33238: Add InvalidStateError to concurrent.futures.Future.set_result and Future.set_exception now raiseInvalidStateError if the futures are not pending or running. Patch byJason Haydaman.

  • bpo-33618: Finalize and document preliminary and experimental TLS 1.3support with OpenSSL 1.1.1

  • bpo-33625: Release GIL on grp.getgrnam, grp.getgrgid, pwd.getpwnamand pwd.getpwuid if reentrant variants of these functions are available.Patch by William Grzybowski.

  • bpo-33623: Fix possible SIGSGV when asyncio.Future is created in __del__

  • bpo-11874: Use a better regex when breaking usage into wrappable parts.Avoids bogus assertion errors from custom metavar strings.

  • bpo-30877: Fixed a bug in the Python implementation of the JSON decoderthat prevented the cache of parsed strings from clearing after finishingthe decoding. Based on patch by c-fos.

  • bpo-33604: Remove HMAC default to md5 marked for removal in 3.8 (removaloriginally planned in 3.6, bump to 3.8 in gh-7062).

  • bpo-33582: Emit a deprecation warning for inspect.formatargspec

  • bpo-21145: Add functools.cached_property decorator, for computedproperties cached for the life of the instance.

  • bpo-33570: Change TLS 1.3 cipher suite settings for compatibility withOpenSSL 1.1.1-pre6 and newer. OpenSSL 1.1.1 will have TLS 1.3 ciphersenabled by default.

  • bpo-28556: Do not simplify arguments to typing.Union. NowUnion is not simplified to Employee at runtime.Such simplification previously caused several bugs and limitedpossibilities for introspection.

  • bpo-12486: tokenize.generate_tokens() is now documented as a publicAPI to tokenize unicode strings. It was previously present butundocumented.

  • bpo-33540: Add a new block_on_close class attribute toForkingMixIn and ThreadingMixIn classes of socketserver.

  • bpo-33548: tempfile._candidate_tempdir_list should consider common TEMPlocations

  • bpo-33109: argparse subparsers are once again not required by default,reverting the change in behavior introduced by bpo-26510 in 3.7.0a2.

  • bpo-33541: Remove unused private method _strptime.LocaleTime.__pad(a.k.a. _LocaleTime__pad).

  • bpo-33536: dataclasses.make_dataclass now checks for invalid field namesand duplicate fields. Also, added a check for invalid fieldspecifications.

  • bpo-33542: Prevent uuid.get_node from using a DUID instead of a MAC onWindows. Patch by Zvi Effron

  • bpo-26819: Fix race condition with ReadTransport.resume_reading inWindows proactor event loop.

  • Fix failure in typing.get_type_hints() when ClassVar was provided as astring forward reference.

  • bpo-33516: unittest.mock.MagicMock now supports the __round__magic method.

  • bpo-28612: Added support for Site Maps to urllib’s RobotFileParser asRobotFileParser.site_maps(). Patch by Lady Red, basedon patch by Peter Wirtz.

  • bpo-28167: Remove platform.linux_distribution, which was deprecated since3.5.

  • bpo-33504: Switch the default dictionary implementation forconfigparser from collections.OrderedDict to the standarddict type.

  • bpo-33505: Optimize asyncio.ensure_future() by reordering if checks: 1.17xfaster.

  • bpo-33497: Add errors param to cgi.parse_multipart and make an encoding inFieldStorage use the given errors (needed for Twisted). Patch by AmberBrown.

  • bpo-29235: The cProfile.Profile class can now be used as acontext manager. Patch by Scott Sanderson.

  • bpo-33495: Change dataclasses.Fields repr to use the repr of each of itsmembers, instead of str. This makes it more clear what each fieldactually represents. This is especially true for the ‘type’ member.

  • bpo-26103: Correct inspect.isdatadescriptor to look for __set__ or__delete__. Patch by Aaron Hall.

  • bpo-29209: Removed the doctype() method and the html parameter ofthe constructor of XMLParser. Thedoctype() method defined in a subclass will no longer be called.Deprecated methods getchildren() and getiterator() in theElementTree module emit now a DeprecationWarninginstead of PendingDeprecationWarning.

  • bpo-33453: Fix dataclasses to work if using literal string typeannotations or if using PEP 563 “Postponed Evaluation of Annotations”.Only specific string prefixes are detected for both ClassVar (“ClassVar”and “typing.ClassVar”) and InitVar (“InitVar” and “dataclasses.InitVar”).

  • bpo-28556: Minor fixes in typing module: add annotations toNamedTuple.__new__, pass *args and kwds inGeneric.__new__. Original PRs by Paulius Šarka and Chad Dombrova.

  • bpo-33365: Print the header values besides the header keys instead justthe header keys if debuglevel is set to>0 in http.client. Patchby Marco Strigl.

  • bpo-20087: Updated alias mapping with glibc 2.27 supported locales.

  • bpo-33422: Fix trailing quotation marks getting deleted when looking upbyte/string literals on pydoc. Patch by Andrés Delfino.

  • bpo-28167: The function platform.linux_distribution andplatform.dist now trigger a DeprecationWarning and have beenmarked for removal in Python 3.8

  • bpo-33281: Fix ctypes.util.find_library regression on macOS.

  • bpo-33311: Text and html output generated by cgitb does not displayparentheses if the current call is done directly in the module. Patch byStéphane Blondon.

  • bpo-27300: The file classes in tempfile now accept an errors parameterthat complements the already existing encoding. Patch by Stephan Hohe.

  • bpo-32933: unittest.mock.mock_open() now supports iteration over thefile contents. Patch by Tony Flury.

  • bpo-33217: Raise TypeError when looking up non-Enum objects in Enumclasses and Enum members.

  • bpo-33197: Update error message when constructing invalidinspect.Parameters Patch by Dong-hee Na.

  • bpo-33383: Fixed crash in the get() method of the dbm.ndbm databaseobject when it is called with a single argument.

  • bpo-33375: The warnings module now finds the Python file associated with awarning from the code object, rather than the frame’s global namespace.This is consistent with how tracebacks and pdb find filenames, and shouldwork better for dynamically executed code.

  • bpo-33336: imaplib now allows MOVE command in IMAP4.uid() (RFC6851: IMAP MOVE Extension) and potentially as a name of supported methodof IMAP4 object.

  • bpo-32455: Added jump parameter to dis.stack_effect().

  • bpo-27485: Rename and deprecate undocumented functions inurllib.parse().

  • bpo-33332: Add signal.valid_signals() to expose the POSIX sigfillset()functionality.

  • bpo-33251: ConfigParser.items() was fixed so that key-value pairs passedin via vars are not included in the resulting output.

  • bpo-33329: Fix multiprocessing regression on newer glibcs

  • bpo-33334: dis.stack_effect() now supports all defined opcodesincluding NOP and EXTENDED_ARG.

  • bpo-991266: Fix quoting of the Comment attribute ofhttp.cookies.SimpleCookie.

  • bpo-33131: Upgrade bundled version of pip to 10.0.1.

  • bpo-33308: Fixed a crash in the parser module when converting an STobject to a tree of tuples or lists with line_info=False andcol_info=True.

  • bpo-23403: lib2to3 now uses pickle protocol 4 for pre-computed grammars.

  • bpo-33266: lib2to3 now recognizes rf'...' strings.

  • bpo-11594: Ensure line-endings are respected when using lib2to3.

  • bpo-33254: Have importlib.resources.contents() andimportlib.abc.ResourceReader.contents() return an iterableinstead of an iterator.

  • bpo-33265: contextlib.ExitStack and contextlib.AsyncExitStack nowuse a method instead of a wrapper function for exit callbacks.

  • bpo-33263: Fix FD leak in _SelectorSocketTransport Patch by VladStarostin.

  • bpo-33256: Fix display of call in the html produced bycgitb.html(). Patch by Stéphane Blondon.

  • bpo-33144: random.Random() and its subclassing mechanism got optimizedto check only once at class/subclass instantiation time whether itsgetrandbits() method can be relied on by other methods, includingrandrange(), for the generation of arbitrarily large random integers.Patch by Wolfgang Maier.

  • bpo-33185: Fixed regression when running pydoc with the -mswitch. (The regression was introduced in 3.7.0b3 by the resolution ofbpo-33053)

    This fix also changed pydoc to add os.getcwd() to sys.pathwhen necessary, rather than adding ".".

  • bpo-29613: Added support for the SameSite cookie flag to thehttp.cookies module.

  • bpo-33169: Delete entries of None in sys.path_importer_cachewhen importlib.machinery.invalidate_caches() is called.

  • bpo-33203: random.Random.choice() now raises IndexError for emptysequences consistently even when called from subclasses without agetrandbits() implementation.

  • bpo-33224: Update difflib.mdiff() for PEP 479. Convert an uncaughtStopIteration in a generator into a return-statement.

  • bpo-33209: End framing at the end of C implementation ofpickle.Pickler.dump().

  • bpo-32861: The urllib.robotparser’s __str__ representation nowincludes wildcard entries and the “Crawl-delay” and “Request-rate” fields.Also removes extra newlines that were being appended to the end of thestring. Patch by Michael Lazar.

  • bpo-23403: DEFAULT_PROTOCOL in pickle was bumped to 4. Protocol4 is described in PEP 3154 and available since Python 3.4. It offersbetter performance and smaller size compared to protocol 3 introduced inPython 3.0.

  • bpo-20104: Improved error handling and fixed a reference leak inos.posix_spawn().

  • bpo-33106: Deleting a key from a read-only dbm database raises modulespecific error instead of KeyError.

  • bpo-33175: In dataclasses, Field.__set_name__ now looks up the__set_name__ special method on the class, not the instance, of the defaultvalue.

  • bpo-32380: Create functools.singledispatchmethod to support generic singledispatch on descriptors and methods.

  • bpo-33141: Have Field objects pass through __set_name__ to their defaultvalues, if they have their own __set_name__.

  • bpo-33096: Allow ttk.Treeview.insert to insert iid that has a falseboolean value. Note iid=0 and iid=False would be same. Patch by GarvitKhatri.

  • bpo-32873: Treat type variables and special typing forms as immutable bycopy and pickle. This fixes several minor issues and inconsistencies, andimproves backwards compatibility with Python 3.6.

  • bpo-33134: When computing dataclass’s __hash__, use the lookup table tocontain the function which returns the __hash__ value. This is animprovement over looking up a string, and then testing that string to seewhat to do.

  • bpo-33127: The ssl module now compiles with LibreSSL 2.7.1.

  • bpo-32505: Raise TypeError if a member variable of a dataclass is of typeField, but doesn’t have a type annotation.

  • bpo-33078: Fix the failure on OSX caused by the tests relying onsem_getvalue

  • bpo-33116: Add ‘Field’ to dataclasses.__all__.

  • bpo-32896: Fix an error where subclassing a dataclass with a field thatuses a default_factory would generate an incorrect class.

  • bpo-33100: Dataclasses: If a field has a default value that’s aMemberDescriptorType, then it’s from that field being in __slots__, not anactual default value.

  • bpo-32953: If a non-dataclass inherits from a frozen dataclass, allowattributes to be added to the derived class. Only attributes from thefrozen dataclass cannot be assigned to. Require all dataclasses in ahierarchy to be either all frozen or all non-frozen.

  • bpo-33097: Raise RuntimeError when executor.submit is called duringinterpreter shutdown.

  • bpo-32968: Modulo and floor division involving Fraction and float shouldreturn float.

  • bpo-33061: Add missing NoReturn to __all__ in typing.py

  • bpo-33078: Fix the size handling in multiprocessing.Queue when a picklingerror occurs.

  • bpo-33064: lib2to3 now properly supports trailing commas after *argsand kwargs in function signatures.

  • bpo-33056: FIX properly close leaking fds inconcurrent.futures.ProcessPoolExecutor.

  • bpo-33021: Release the GIL during fstat() calls, avoiding hang of allthreads when calling mmap.mmap(), os.urandom(), and random.seed(). Patchby Nir Soffer.

  • bpo-31804: Avoid failing in multiprocessing.Process if the standardstreams are closed or None at exit.

  • bpo-33034: Providing an explicit error message when casting the portproperty to anything that is not an integer value using urlparse() andurlsplit(). Patch by Matt Eaton.

  • bpo-30249: Improve struct.unpack_from() exception messages for problemswith the buffer size and offset.

  • bpo-33037: Skip sending/receiving data after SSL transport closing.

  • bpo-27683: Fix a regression in ipaddress that result ofhosts() is empty when the network is constructed by a tuplecontaining an integer mask and only 1 bit left for addresses.

  • bpo-22674: Add the strsignal() function in the signal module that returnsthe system description of the given signal, as returned by strsignal(3).

  • bpo-32999: Fix C implementation of ABC.__subclasscheck__(cls,subclass) crashed when subclass is not a type object.

  • bpo-33009: Fix inspect.signature() for single-parameter partialmethods.

  • bpo-32969: Expose several missing constants in zlib and fix correspondingdocumentation.

  • bpo-32056: Improved exceptions raised for invalid number of channels andsample width when read an audio file in modules aifc, waveand sunau.

  • bpo-32970: Improved disassembly of the MAKE_FUNCTION instruction.

  • bpo-32844: Fix wrong redirection of a low descriptor (0 or 1) to stderr insubprocess if another low descriptor is closed.

  • bpo-32960: For dataclasses, disallow inheriting frozen from non-frozenclasses, and also disallow inheriting non-frozen from frozen classes. Thisrestriction will be relaxed at a future date.

  • bpo-32713: Fixed tarfile.itn handling of out-of-bounds float values. Patchby Joffrey Fuhrer.

  • bpo-32257: The ssl module now contains OP_NO_RENEGOTIATION constant,available with OpenSSL 1.1.0h or 1.1.1.

  • bpo-32951: Direct instantiation of SSLSocket and SSLObject objects is nowprohibited. The constructors were never documented, tested, or designed aspublic constructors. Users were suppose to use ssl.wrap_socket() orSSLContext.

  • bpo-32929: Remove the tri-state parameter “hash”, and add the boolean“unsafe_hash”. If unsafe_hash is True, add a __hash__ function, but if a__hash__ exists, raise TypeError. If unsafe_hash is False, add a __hash__based on the values of eq=and frozen=. The unsafe_hash=False behavior isthe same as the old hash=None behavior. unsafe_hash=False is the default,just as hash=None used to be.

  • bpo-32947: Add OP_ENABLE_MIDDLEBOX_COMPAT and test workaround for TLSv1.3for future compatibility with OpenSSL 1.1.1.

  • bpo-32146: Document the interaction between frozen executables and thespawn and forkserver start methods in multiprocessing.

  • bpo-30622: The ssl module now detects missing NPN support in LibreSSL.

  • bpo-32922: dbm.open() now encodes filename with the filesystem encodingrather than default encoding.

  • bpo-32759: Free unused arenas in multiprocessing.heap.

  • bpo-32859: In os.dup2, don’t check every call whether the dup3syscall exists or not.

  • bpo-32556: nt._getfinalpathname, nt._getvolumepathname andnt._getdiskusage now correctly convert from bytes.

  • bpo-21060: Rewrite confusing message from setup.py upload from “No distfile created in earlier command” to the more helpful “Must create andupload files in one command”.

  • bpo-32857: In tkinter, after_cancel(None) now raises aValueError instead of canceling the first scheduled function.Patch by Cheryl Sabella.

  • bpo-32852: Make sure sys.argv remains as a list when running trace.

  • bpo-31333: _abc module is added. It is a speedup module with Cimplementations for various functions and methods in abc. Creating anABC subclass and calling isinstance or issubclass with an ABCsubclass are up to 1.5x faster. In addition, this makes Python start-up upto 10% faster.

    Note that the new implementation hides internal registry and caches,previously accessible via private attributes _abc_registry,_abc_cache, and _abc_negative_cache. There are three debugginghelper methods that can be used instead _dump_registry,_abc_registry_clear, and _abc_caches_clear.

  • bpo-32841: Fixed asyncio.Condition issue which silently ignoredcancellation after notifying and cancelling a conditional lock. Patch byBar Harel.

  • bpo-32819: ssl.match_hostname() has been simplified and no longer dependson re and ipaddress module for wildcard and IP addresses. Error reportingfor invalid wildcards has been improved.

  • bpo-19675: multiprocessing.Pool no longer leaks processes if itsinitialization fails.

  • bpo-32394: socket: RemoveTCP_FASTOPEN,TCP_KEEPCNT,TCP_KEEPIDLE,TCP_KEEPINTVL flags on older versionWindows during run-time.

  • bpo-31787: Fixed refleaks of __init__() methods in various modules.(Contributed by Oren Milman)

  • bpo-30157: Fixed guessing quote and delimiter in csv.Sniffer.sniff() whenonly the last field is quoted. Patch by Jake Davis.

  • bpo-30688: Added support of N{name} escapes in regular expressions.Based on patch by Jonathan Eunice.

  • bpo-32792: collections.ChainMap() preserves the order of the underlyingmappings.

  • bpo-32775: fnmatch.translate() no longer produces patterns whichcontain set operations. Sets starting with ‘[‘ or containing ‘–’, ‘&&’,‘~~’ or ‘||’ will be interpreted differently in regular expressions infuture versions. Currently they emit warnings. fnmatch.translate() nowavoids producing patterns containing such sets by accident.

  • bpo-32622: Implement native fast sendfile for Windows proactor event loop.

  • bpo-32777: Fix a rare but potential pre-exec child process deadlock insubprocess on POSIX systems when marking file descriptors inheritable onexec in the child process. This bug appears to have been introduced in3.4.

  • bpo-32647: The ctypes module used to depend on indirect linking fordlopen. The shared extension is now explicitly linked against libdl onplatforms with dl.

  • bpo-32749: A dbm.dumb database opened with flags ‘r’ is nowread-only. dbm.dumb.open() with flags ‘r’ and ‘w’ no longer createsa database if it does not exist.

  • bpo-32741: Implement asyncio.TimerHandle.when() method.

  • bpo-32691: Use mod_spec.parent when running modules with pdb

  • bpo-32734: Fixed asyncio.Lock() safety issue which allowed acquiringand locking the same lock multiple times, without it being free. Patch byBar Harel.

  • bpo-32727: Do not include name field in SMTP envelope from address. Patchby Stéphane Wirtel

  • bpo-31453: Add TLSVersion constants and SSLContext.maximum_version /minimum_version attributes. The new API wraps OpenSSL 1.1https://www.openssl.org/docs/man1.1.0/ssl/SSL_CTX_set_min_proto_version.htmlfeature.

  • bpo-24334: Internal implementation details of ssl module were cleaned up.The SSLSocket has one less layer of indirection. Owner and sessioninformation are now handled by the SSLSocket and SSLObject constructor.Channel binding implementation has been simplified.

  • bpo-31848: Fix the error handling in Aifc_read.initfp() when the SSNDchunk is not found. Patch by Zackery Spytz.

  • bpo-32585: Add Ttk spinbox widget to tkinter.ttk. Patch by Alan DMoore.

  • bpo-32512: profile CLI accepts -m module_name as an alternativeto script path.

  • bpo-8525: help() on a type now displays builtin subclasses. This isintended primarily to help with notification of more specific exceptionsubclasses.

    Patch by Sanyam Khurana.

  • bpo-31639: http.server now exposes a ThreadingHTTPServer class and uses itwhen the module is run with -m to cope with web browsers pre-openingsockets.

  • bpo-29877: compileall: import ProcessPoolExecutor only when needed,preventing hangs on low resource platforms

  • bpo-32221: Various functions returning tuple containing IPv6 addresses nowomit %scope part since the same information is already encoded inscopeid tuple item. Especially this speeds up socket.recvfrom()when it receives multicast packet since useless resolving of networkinterface name is omitted.

  • bpo-32147: binascii.unhexlify() is now up to 2 times faster. Patchby Sergey Fedoseev.

  • bpo-30693: The TarFile class now recurses directories in a reproducibleway.

  • bpo-30693: The ZipFile class now recurses directories in a reproducibleway.

  • bpo-31680: Added curses.ncurses_version.

  • bpo-31908: Fix output of cover files for trace module command-linetool. Previously emitted cover files only when --missing option wasused. Patch by Michael Selik.

  • bpo-31608: Raise a TypeError instead of crashing if acollections.deque subclass returns a non-deque from __new__. Patchby Oren Milman.

  • bpo-31425: Add support for sockets of the AF_QIPCRTR address family,supported by the Linux kernel. This is used to communicate with services,such as GPS or radio, running on Qualcomm devices. Patch by BjornAndersson.

  • bpo-22005: Implemented unpickling instances ofdatetime, date andtime pickled by Python 2. encoding='latin1' shouldbe used for successful decoding.

  • bpo-27645: sqlite3.Connection now exposes abackup method, if the underlying SQLitelibrary is at version 3.6.11 or higher. Patch by Lele Gaifax.

  • bpo-16865: Support arrays>=2GiB in ctypes. Patch by Segev Finer.

  • bpo-31508: Removed support of arguments intkinter.ttk.Treeview.selection. It was deprecated in 3.6. Usespecialized methods like selection_set for changing the selection.

  • bpo-29456: Fix bugs in hangul normalization: u1176, u11a7 and u11c3

  • Note: This article have been indexed to our site. We do not claim legitimacy, ownership or copyright of any of the content above. To see the article at original source Click Here

    Related Posts
    How AI Will Shape the Post-Pandemic Office Experience thumbnail

    How AI Will Shape the Post-Pandemic Office Experience

    One of the most remarkable changes in the COVID-19 era has been how quickly work transformed from somewhere you go, to something you do. Almost overnight, workers and their employers have adapted to new ways of working and collaborating. With this new hybrid work paradigm, however, comes new challenges for employers. As workers gain the…
    Read More
    Nubia confirms that the Z40 Pro is on the way, potentially upgraded camera and cooling technology in tow thumbnail

    Nubia confirms that the Z40 Pro is on the way, potentially upgraded camera and cooling technology in tow

    Reviews, News, CPU, GPU, Articles, Columns, Other "or" search relation.3D Printing, 5G, Accessory, AI, Alder Lake, AMD, Android, Apple, ARM, Audio, Biotech, Business, Camera, Cannon Lake, Cezanne (Zen 3), Charts, Chinese Tech, Chromebook, Coffee Lake, Comet Lake, Console, Convertible / 2-in-1, Cryptocurrency, Cyberlaw, Deal, Desktop, E-Mobility, Education, Exclusive, Fail, Foldable, Gadget, Galaxy Note, Galaxy S,…
    Read More
    More democratization of advanced technology is inevitable thumbnail

    More democratization of advanced technology is inevitable

    If a sales or other line-of-business executive in your enterprise isn't talking about artificial intelligence these days, it's time to ask why -- and get them on board. We're running out of excuses when it pertains to moving to advanced transformative technologies. Solutions such as AI are now readily available, and businesses no longer need…
    Read More
    Index Of News
    Total
    0
    Share