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 platform
module. 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_CTYPE
locale 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 upload
is 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 sock
attribute 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.getpwnam
and 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 MutableSequence
subclasses.
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_SSL
classes 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.FileWrapper
and fileinput.FileInput
.
bpo-33613: Fix a race condition in multiprocessing.semaphore_tracker
when 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 distutils
’ bdist_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 bool
instances 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-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.getpwnam
and 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 DeprecationWarning
instead 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 -m
switch. (The regression was introduced in 3.7.0b3 by the resolution ofbpo-33053)
This fix also changed pydoc to add os.getcwd()
to sys.path
when 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_cache
when 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 *args
and 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
, wave
and 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 dup3
syscall 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