From: Serhiy Storchaka Date: Tue, 27 Dec 2016 10:13:05 +0000 (+0200) Subject: Issue #23903: Added missed names to PC/python3.def. X-Git-Tag: v3.6.1rc1~255 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c70081cfc15f972543a8cd30f5c6d5b5850160b4;p=python Issue #23903: Added missed names to PC/python3.def. --- c70081cfc15f972543a8cd30f5c6d5b5850160b4 diff --cc Misc/NEWS index 544c8e593c,65d2aee36d..1a6af49c5a --- a/Misc/NEWS +++ b/Misc/NEWS @@@ -18,1963 -21,2011 +18,1965 @@@ Core and Builtin - Issue #29000: Fixed bytes formatting of octals with zero padding in alternate form. -- Issue #28512: Fixed setting the offset attribute of SyntaxError by - PyErr_SyntaxLocationEx() and PyErr_SyntaxLocationObject(). +- Issue #26919: On Android, operating system data is now always encoded/decoded + to/from UTF-8, instead of the locale encoding to avoid inconsistencies with + os.fsencode() and os.fsdecode() which are already using UTF-8. - Issue #28991: functools.lru_cache() was susceptible to an obscure reentrancy - bug caused by a monkey-patched len() function. + bug triggerable by a monkey-patched len() function. -- Issue #28648: Fixed crash in Py_DecodeLocale() in debug build on Mac OS X - when decode astral characters. Patch by Xiang Zhang. +- Issue #28739: f-string expressions are no longer accepted as docstrings and + by ast.literal_eval() even if they do not include expressions. -- Issue #19398: Extra slash no longer added to sys.path components in case of - empty compile-time PYTHONPATH components. +- Issue #28512: Fixed setting the offset attribute of SyntaxError by + PyErr_SyntaxLocationEx() and PyErr_SyntaxLocationObject(). -- Issue #28426: Fixed potential crash in PyUnicode_AsDecodedObject() in debug - build. +- Issue #28918: Fix the cross compilation of xxlimited when Python has been + built with Py_DEBUG defined. -- Issue #23782: Fixed possible memory leak in _PyTraceback_Add() and exception - loss in PyTraceBack_Here(). +- Issue #28731: Optimize _PyDict_NewPresized() to create correct size dict. + Improve speed of dict literal with constant keys up to 30%. -- Issue #28379: Added sanity checks and tests for PyUnicode_CopyCharacters(). - Patch by Xiang Zhang. +Library +------- -- Issue #28376: The type of long range iterator is now registered as Iterator. - Patch by Oren Milman. +- Issue 28923: Remove editor artifacts from Tix.py. -- Issue #28376: The constructor of range_iterator now checks that step is not 0. - Patch by Oren Milman. +- Issue #29055: Neaten-up empty population error on random.choice() + by suppressing the upstream exception. -- Issue #26906: Resolving special methods of uninitialized type now causes - implicit initialization of the type instead of a fail. +- Issue #28871: Fixed a crash when deallocate deep ElementTree. -- Issue #18287: PyType_Ready() now checks that tp_name is not NULL. - Original patch by Niklas Koep. +- Issue #19542: Fix bugs in WeakValueDictionary.setdefault() and + WeakValueDictionary.pop() when a GC collection happens in another + thread. -- Issue #24098: Fixed possible crash when AST is changed in process of - compiling it. +- Issue #20191: Fixed a crash in resource.prlimit() when pass a sequence that + doesn't own its elements as limits. -- Issue #28350: String constants with null character no longer interned. +- Issue #28779: multiprocessing.set_forkserver_preload() would crash the + forkserver process if a preloaded module instantiated some + multiprocessing objects such as locks. -- Issue #26617: Fix crash when GC runs during weakref callbacks. +- Issue #28847: dbm.dumb now supports reading read-only files and no longer + writes the index file when it is not changed. -- Issue #27942: String constants now interned recursively in tuples and frozensets. +- Issue #26937: The chown() method of the tarfile.TarFile class does not fail + now when the grp module cannot be imported, as for example on Android + platforms. -- Issue #21578: Fixed misleading error message when ImportError called with - invalid keyword args. +Windows +------- -- Issue #28203: Fix incorrect type in error message from - ``complex(1.0, {2:3})``. Patch by Soumya Sharma. +- Issue #25778: winreg does not truncate string correctly (Patch by Eryk Sun) -- Issue #27955: Fallback on reading /dev/urandom device when the getrandom() - syscall fails with EPERM, for example when blocked by SECCOMP. +- Issue #28896: Deprecate WindowsRegistryFinder and disable it by default. -- Issue #28131: Fix a regression in zipimport's compile_source(). zipimport - should use the same optimization level as the interpreter. +Tests +----- -- Issue #25221: Fix corrupted result from PyLong_FromLong(0) when - Python is compiled with NSMALLPOSINTS = 0. +- Issue #28950: Disallow -j0 to be combined with -T/-l in regrtest + command line arguments. -- Issue #25758: Prevents zipimport from unnecessarily encoding a filename - (patch by Eryk Sun) +- Issue #28683: Fix the tests that bind() a unix socket and raise + PermissionError on Android for a non-root user. -- Issue #28189: dictitems_contains no longer swallows compare errors. - (Patch by Xiang Zhang) +- Issue #26939: Add the support.setswitchinterval() function to fix + test_functools hanging on the Android armv7 qemu emulator. -- Issue #27812: Properly clear out a generator's frame's backreference to the - generator to prevent crashes in frame.clear(). +Build +----- -- Issue #27811: Fix a crash when a coroutine that has not been awaited is - finalized with warnings-as-errors enabled. ++- Issue #23903: Added missed names to PC/python3.def. + -- Issue #27587: Fix another issue found by PVS-Studio: Null pointer check - after use of 'def' in _PyState_AddModule(). - Initial patch by Christian Heimes. +- Issue #28762: lockf() is available on Android API level 24, but the F_LOCK + macro is not defined in android-ndk-r13. -- Issue #26020: set literal evaluation order did not match documented behaviour. +- Issue #28538: Fix the compilation error that occurs because if_nameindex() is + available on Android API level 24, but the if_nameindex structure is not + defined. -- Issue #27782: Multi-phase extension module import now correctly allows the - ``m_methods`` field to be used to add module level functions to instances - of non-module types returned from ``Py_create_mod``. Patch by Xiang Zhang. +- Issue #20211: Do not add the directory for installing C header files and the + directory for installing object code libraries to the cross compilation + search paths. Original patch by Thomas Petazzoni. -- Issue #27936: The round() function accepted a second None argument - for some types but not for others. Fixed the inconsistency by - accepting None for all numeric types. +- Issue #28849: Do not define sys.implementation._multiarch on Android. -- Issue #27487: Warn if a submodule argument to "python -m" or - runpy.run_module() is found in sys.modules after parent packages are - imported, but before the submodule is executed. -- Issue #27558: Fix a SystemError in the implementation of "raise" statement. - In a brand new thread, raise a RuntimeError since there is no active - exception to reraise. Patch written by Xiang Zhang. +What's New in Python 3.6.0? +=========================== -- Issue #27419: Standard __import__() no longer look up "__import__" in globals - or builtins for importing submodules or "from import". Fixed handling an - error of non-string package name. +*Release date: 2016-12-23* -- Issue #27083: Respect the PYTHONCASEOK environment variable under Windows. +- No changes since release candidate 2 -- Issue #27514: Make having too many statically nested blocks a SyntaxError - instead of SystemError. -- Issue #27473: Fixed possible integer overflow in bytes and bytearray - concatenations. Patch by Xiang Zhang. +What's New in Python 3.6.0 release candidate 2? +=============================================== -- Issue #27507: Add integer overflow check in bytearray.extend(). Patch by - Xiang Zhang. +*Release date: 2016-12-16* -- Issue #27581: Don't rely on wrapping for overflow check in - PySequence_Tuple(). Patch by Xiang Zhang. +Core and Builtins +----------------- -- Issue #27443: __length_hint__() of bytearray iterators no longer return a - negative integer for a resized bytearray. +- Issue #28147: Fix a memory leak in split-table dictionaries: setattr() + must not convert combined table into split table. Patch written by INADA + Naoki. -- Issue #27942: Fix memory leak in codeobject.c +- Issue #28990: Fix asyncio SSL hanging if connection is closed before + handshake is completed. (Patch by HoHo-Ho) -Library -------- +Tools/Demos +----------- -- Issue 28923: Remove editor artifacts from Tix.py. +- Issue #28770: Fix python-gdb.py for fastcalls. -- Issue #28871: Fixed a crash when deallocate deep ElementTree. +Windows +------- -- Issue #19542: Fix bugs in WeakValueDictionary.setdefault() and - WeakValueDictionary.pop() when a GC collection happens in another - thread. +- Issue #28896: Deprecate WindowsRegistryFinder. -- Issue #20191: Fixed a crash in resource.prlimit() when pass a sequence that - doesn't own its elements as limits. +Build +----- -- Issue #28779: multiprocessing.set_forkserver_preload() would crash the - forkserver process if a preloaded module instantiated some - multiprocessing objects such as locks. +- Issue #28898: Prevent gdb build errors due to HAVE_LONG_LONG redefinition. -- Issue #28847: dbm.dumb now supports reading read-only files and no longer - writes the index file when it is not changed. -- Issue #25659: In ctypes, prevent a crash calling the from_buffer() and - from_buffer_copy() methods on abstract classes like Array. +What's New in Python 3.6.0 release candidate 1? +=============================================== -- Issue #28732: Fix crash in os.spawnv() with no elements in args +*Release date: 2016-12-06* -- Issue #28485: Always raise ValueError for negative - compileall.compile_dir(workers=...) parameter, even when multithreading is - unavailable. +Core and Builtins +----------------- -- Issue #28387: Fixed possible crash in _io.TextIOWrapper deallocator when - the garbage collector is invoked in other thread. Based on patch by - Sebastian Cufre. +- Issue #23722: Rather than silently producing a class that doesn't support + zero-argument ``super()`` in methods, failing to pass the new + ``__classcell__`` namespace entry up to ``type.__new__`` now results in a + ``DeprecationWarning`` and a class that supports zero-argument ``super()``. -- Issue #27517: LZMA compressor and decompressor no longer raise exceptions if - given empty data twice. Patch by Benjamin Fogle. +- Issue #28797: Modifying the class __dict__ inside the __set_name__ method of + a descriptor that is used inside that class no longer prevents calling the + __set_name__ method of other descriptors. -- Issue #28549: Fixed segfault in curses's addch() with ncurses6. +- Issue #28782: Fix a bug in the implementation ``yield from`` when checking + if the next instruction is YIELD_FROM. Regression introduced by WORDCODE + (issue #26647). -- Issue #28449: tarfile.open() with mode "r" or "r:" now tries to open a tar - file with compression before trying to open it without compression. Otherwise - it had 50% chance failed with ignore_zeros=True. +Library +------- -- Issue #23262: The webbrowser module now supports Firefox 36+ and derived - browsers. Based on patch by Oleg Broytman. +- Issue #27030: Unknown escapes in re.sub() replacement template are allowed + again. But they still are deprecated and will be disabled in 3.7. -- Issue #27939: Fixed bugs in tkinter.ttk.LabeledScale and tkinter.Scale caused - by representing the scale as float value internally in Tk. tkinter.IntVar - now works if float value is set to underlying Tk variable. +- Issue #28835: Fix a regression introduced in warnings.catch_warnings(): + call warnings.showwarning() if it was overriden inside the context manager. -- Issue #28255: calendar.TextCalendar().prmonth() no longer prints a space - at the start of new line after printing a month's calendar. Patch by - Xiang Zhang. +- Issue #27172: To assist with upgrades from 2.7, the previously documented + deprecation of ``inspect.getfullargspec()`` has been reversed. This decision + may be revisited again after the Python 2.7 branch is no longer officially + supported. -- Issue #20491: The textwrap.TextWrapper class now honors non-breaking spaces. - Based on patch by Kaarle Ritvanen. +- Issue #24142: Reading a corrupt config file left configparser in an + invalid state. Original patch by Florian Höch. -- Issue #28353: os.fwalk() no longer fails on broken links. +- Issue #28843: Fix asyncio C Task to handle exceptions __traceback__. -- Issue #25464: Fixed HList.header_exists() in tkinter.tix module by addin - a workaround to Tix library bug. +C API +----- -- Issue #28488: shutil.make_archive() no longer add entry "./" to ZIP archive. +- Issue #28808: PyUnicode_CompareWithASCIIString() now never raises exceptions. -- Issue #24452: Make webbrowser support Chrome on Mac OS X. +Documentation +------------- -- Issue #20766: Fix references leaked by pdb in the handling of SIGINT - handlers. +- Issue #23722: The data model reference and the porting section in the What's + New guide now cover the additional ``__classcell__`` handling needed for + custom metaclasses to fully support PEP 487 and zero-argument ``super()``. -- Issue #26293: Fixed writing ZIP files that starts not from the start of the - file. Offsets in ZIP file now are relative to the start of the archive in - conforming to the specification. +Tools/Demos +----------- -- Issue #28321: Fixed writing non-BMP characters with binary format in plistlib. +- Issue #28023: Fix python-gdb.py didn't support new dict implementation. -- Issue #28322: Fixed possible crashes when unpickle itertools objects from - incorrect pickle data. Based on patch by John Leitch. -- Fix possible integer overflows and crashes in the mmap module with unusual - usage patterns. +What's New in Python 3.6.0 beta 4? +================================== -- Issue #1703178: Fix the ability to pass the --link-objects option to the - distutils build_ext command. +*Release date: 2016-11-21* -- Issue #28253: Fixed calendar functions for extreme months: 0001-01 - and 9999-12. +Core and Builtins +----------------- - Methods itermonthdays() and itermonthdays2() are reimplemented so - that they don't call itermonthdates() which can cause datetime.date - under/overflow. +- Issue #28532: Show sys.version when -V option is supplied twice. -- Issue #28275: Fixed possible use after free in the decompress() - methods of the LZMADecompressor and BZ2Decompressor classes. - Original patch by John Leitch. +- Issue #27100: The with-statement now checks for __enter__ before it + checks for __exit__. This gives less confusing error messages when + both methods are missing. Patch by Jonathan Ellington. -- Issue #27897: Fixed possible crash in sqlite3.Connection.create_collation() - if pass invalid string-like object as a name. Patch by Xiang Zhang. +- Issue #28746: Fix the set_inheritable() file descriptor method on platforms + that do not have the ioctl FIOCLEX and FIONCLEX commands. -- Issue #18893: Fix invalid exception handling in Lib/ctypes/macholib/dyld.py. - Patch by Madison May. +- Issue #26920: Fix not getting the locale's charset upon initializing the + interpreter, on platforms that do not have langinfo. -- Issue #27611: Fixed support of default root window in the tkinter.tix module. +- Issue #28648: Fixed crash in Py_DecodeLocale() in debug build on Mac OS X + when decode astral characters. Patch by Xiang Zhang. -- Issue #27348: In the traceback module, restore the formatting of exception - messages like "Exception: None". This fixes a regression introduced in - 3.5a2. +- Issue #19398: Extra slash no longer added to sys.path components in case of + empty compile-time PYTHONPATH components. -- Issue #25651: Allow falsy values to be used for msg parameter of subTest(). +- Issue #28665: Improve speed of the STORE_DEREF opcode by 40%. -- Issue #27932: Prevent memory leak in win32_ver(). +- Issue #28583: PyDict_SetDefault didn't combine split table when needed. + Patch by Xiang Zhang. -- Fix UnboundLocalError in socket._sendfile_use_sendfile. +- Issue #27243: Change PendingDeprecationWarning -> DeprecationWarning. + As it was agreed in the issue, __aiter__ returning an awaitable + should result in PendingDeprecationWarning in 3.5 and in + DeprecationWarning in 3.6. -- Issue #28075: Check for ERROR_ACCESS_DENIED in Windows implementation of - os.stat(). Patch by Eryk Sun. +- Issue #26182: Fix a refleak in code that raises DeprecationWarning. -- Issue #25270: Prevent codecs.escape_encode() from raising SystemError when - an empty bytestring is passed. +- Issue #28721: Fix asynchronous generators aclose() and athrow() to + handle StopAsyncIteration propagation properly. -- Issue #28181: Get antigravity over HTTPS. Patch by Kaartic Sivaraam. +Library +------- -- Issue #25895: Enable WebSocket URL schemes in urllib.parse.urljoin. - Patch by Gergely Imreh and Markus Holtermann. +- Issue #26273: Add new :data:`socket.TCP_CONGESTION` (Linux 2.6.13) and + :data:`socket.TCP_USER_TIMEOUT` (Linux 2.6.37) constants. Patch written by + Omar Sandoval. -- Issue #27599: Fixed buffer overrun in binascii.b2a_qp() and binascii.a2b_qp(). +- Issue #28752: Restored the __reduce__() methods of datetime objects. -- Issue #19003:m email.generator now replaces only \r and/or \n line - endings, per the RFC, instead of all unicode line endings. +- Issue #28727: Regular expression patterns, _sre.SRE_Pattern objects created + by re.compile(), become comparable (only x==y and x!=y operators). This + change should fix the issue #18383: don't duplicate warning filters when the + warnings module is reloaded (thing usually only done in unit tests). -- Issue #28019: itertools.count() no longer rounds non-integer step in range - between 1.0 and 2.0 to 1. +- Issue #20572: The subprocess.Popen.wait method's undocumented + endtime parameter now raises a DeprecationWarning. -- Issue #25969: Update the lib2to3 grammar to handle the unpacking - generalizations added in 3.5. +- Issue #25659: In ctypes, prevent a crash calling the from_buffer() and + from_buffer_copy() methods on abstract classes like Array. -- Issue #14977: mailcap now respects the order of the lines in the mailcap - files ("first match"), as required by RFC 1542. Patch by Michael Lazar. +- Issue #19717: Makes Path.resolve() succeed on paths that do not exist. + Patch by Vajrasky Kok -- Issue #24594: Validates persist parameter when opening MSI database +- Issue #28563: Fixed possible DoS and arbitrary code execution when handle + plural form selections in the gettext module. The expression parser now + supports exact syntax supported by GNU gettext. -- Issue #17582: xml.etree.ElementTree nows preserves whitespaces in attributes - (Patch by Duane Griffin. Reviewed and approved by Stefan Behnel.) +- Issue #28387: Fixed possible crash in _io.TextIOWrapper deallocator when + the garbage collector is invoked in other thread. Based on patch by + Sebastian Cufre. -- Issue #28047: Fixed calculation of line length used for the base64 CTE - in the new email policies. +- Issue #28600: Optimize loop.call_soon. -- Issue #27445: Don't pass str(_charset) to MIMEText.set_payload(). - Patch by Claude Paroz. +- Issue #28613: Fix get_event_loop() return the current loop if + called from coroutines/callbacks. -- Issue #22450: urllib now includes an "Accept: */*" header among the - default headers. This makes the results of REST API requests more - consistent and predictable especially when proxy servers are involved. +- Issue #28634: Fix asyncio.isfuture() to support unittest.Mock. -- lib2to3.pgen3.driver.load_grammar() now creates a stable cache file - between runs given the same Grammar.txt input regardless of the hash - randomization setting. +- Issue #26081: Fix refleak in _asyncio.Future.__iter__().throw. -- Issue #27570: Avoid zero-length memcpy() etc calls with null source - pointers in the "ctypes" and "array" modules. +- Issue #28639: Fix inspect.isawaitable to always return bool + Patch by Justin Mayfield. -- Issue #22233: Break email header lines *only* on the RFC specified CR and LF - characters, not on arbitrary unicode line breaks. This also fixes a bug in - HTTP header parsing. +- Issue #28652: Make loop methods reject socket kinds they do not support. -- Issue 27988: Fix email iter_attachments incorrect mutation of payload list. +- Issue #28653: Fix a refleak in functools.lru_cache. -- Issue #27691: Fix ssl module's parsing of GEN_RID subject alternative name - fields in X.509 certs. +- Issue #28703: Fix asyncio.iscoroutinefunction to handle Mock objects. -- Issue #27850: Remove 3DES from ssl module's default cipher list to counter - measure sweet32 attack (CVE-2016-2183). +- Issue #28704: Fix create_unix_server to support Path-like objects + (PEP 519). -- Issue #27766: Add ChaCha20 Poly1305 to ssl module's default ciper list. - (Required OpenSSL 1.1.0 or LibreSSL). +- Issue #28720: Add collections.abc.AsyncGenerator. -- Issue #26470: Port ssl and hashlib module to OpenSSL 1.1.0. +Documentation +------------- -- Remove support for passing a file descriptor to os.access. It never worked but - previously didn't raise. +- Issue #28513: Documented command-line interface of zipfile. -- Issue #12885: Fix error when distutils encounters symlink. +Tests +----- -- Issue #27881: Fixed possible bugs when setting sqlite3.Connection.isolation_level. - Based on patch by Xiang Zhang. +- Issue #28666: Now test.support.rmtree is able to remove unwritable or + unreadable directories. -- Issue #27861: Fixed a crash in sqlite3.Connection.cursor() when a factory - creates not a cursor. Patch by Xiang Zhang. +- Issue #23839: Various caches now are cleared before running every test file. -- Issue #19884: Avoid spurious output on OS X with Gnu Readline. +Build +----- -- Issue #27706: Restore deterministic behavior of random.Random().seed() - for string seeds using seeding version 1. Allows sequences of calls - to random() to exactly match those obtained in Python 2. - Patch by Nofar Schnider. +- Issue #10656: Fix out-of-tree building on AIX. Patch by Tristan Carel and + Michael Haubenwallner. -- Issue #10513: Fix a regression in Connection.commit(). Statements should - not be reset after a commit. +- Issue #26359: Rename --with-optimiations to --enable-optimizations. -- A new version of typing.py from https://github.com/python/typing: - - Collection (only for 3.6) (Issue #27598) - - Add FrozenSet to __all__ (upstream #261) - - fix crash in _get_type_vars() (upstream #259) - - Remove the dict constraint in ForwardRef._eval_type (upstream #252) +- Issue #28676: Prevent missing 'getentropy' declaration warning on macOS. + Patch by Gareth Rees. -- Issue #27539: Fix unnormalised ``Fraction.__pow__`` result in the case - of negative exponent and negative base. -- Issue #21718: cursor.description is now available for queries using CTEs. +What's New in Python 3.6.0 beta 3? +================================== -- Issue #2466: posixpath.ismount now correctly recognizes mount points which - the user does not have permission to access. +*Release date: 2016-10-31* -- Issue #27773: Correct some memory management errors server_hostname in - _ssl.wrap_socket(). +Core and Builtins +----------------- -- Issue #26750: unittest.mock.create_autospec() now works properly for - subclasses of property() and other data descriptors. +- Issue #28128: Deprecation warning for invalid str and byte escape + sequences now prints better information about where the error + occurs. Patch by Serhiy Storchaka and Eric Smith. -- In the curses module, raise an error if window.getstr() or window.instr() is - passed a negative value. +- Issue #28509: dict.update() no longer allocate unnecessary large memory. -- Issue #27783: Fix possible usage of uninitialized memory in - operator.methodcaller. +- Issue #28426: Fixed potential crash in PyUnicode_AsDecodedObject() in debug + build. -- Issue #27774: Fix possible Py_DECREF on unowned object in _sre. +- Issue #28517: Fixed of-by-one error in the peephole optimizer that caused + keeping unreachable code. -- Issue #27760: Fix possible integer overflow in binascii.b2a_qp. +- Issue #28214: Improved exception reporting for problematic __set_name__ + attributes. -- Issue #27758: Fix possible integer overflow in the _csv module for large - record lengths. +- Issue #23782: Fixed possible memory leak in _PyTraceback_Add() and exception + loss in PyTraceBack_Here(). -- Issue #27568: Prevent HTTPoxy attack (CVE-2016-1000110). Ignore the - HTTP_PROXY variable when REQUEST_METHOD environment is set, which indicates - that the script is in CGI mode. +- Issue #28471: Fix "Python memory allocator called without holding the GIL" + crash in socket.setblocking. -- Issue #27656: Do not assume sched.h defines any SCHED_* constants. +Library +------- -- Issue #27130: In the "zlib" module, fix handling of large buffers - (typically 4 GiB) when compressing and decompressing. Previously, inputs - were limited to 4 GiB, and compression and decompression operations did not - properly handle results of 4 GiB. +- Issue #27517: LZMA compressor and decompressor no longer raise exceptions if + given empty data twice. Patch by Benjamin Fogle. -- Issue #27533: Release GIL in nt._isdir +- Issue #28549: Fixed segfault in curses's addch() with ncurses6. -- Issue #17711: Fixed unpickling by the persistent ID with protocol 0. - Original patch by Alexandre Vassalotti. +- Issue #28449: tarfile.open() with mode "r" or "r:" now tries to open a tar + file with compression before trying to open it without compression. Otherwise + it had 50% chance failed with ignore_zeros=True. -- Issue #27522: Avoid an unintentional reference cycle in email.feedparser. +- Issue #23262: The webbrowser module now supports Firefox 36+ and derived + browsers. Based on patch by Oleg Broytman. -- Issue #26844: Fix error message for imp.find_module() to refer to 'path' - instead of 'name'. Patch by Lev Maximov. +- Issue #27939: Fixed bugs in tkinter.ttk.LabeledScale and tkinter.Scale caused + by representing the scale as float value internally in Tk. tkinter.IntVar + now works if float value is set to underlying Tk variable. -- Issue #23804: Fix SSL zero-length recv() calls to not block and not raise - an error about unclean EOF. +- Issue #18844: The various ways of specifying weights for random.choices() + now produce the same result sequences. -- Issue #27466: Change time format returned by http.cookie.time2netscape, - confirming the netscape cookie format and making it consistent with - documentation. +- Issue #28255: calendar.TextCalendar().prmonth() no longer prints a space + at the start of new line after printing a month's calendar. Patch by + Xiang Zhang. -- Issue #26664: Fix activate.fish by removing mis-use of ``$``. +- Issue #20491: The textwrap.TextWrapper class now honors non-breaking spaces. + Based on patch by Kaarle Ritvanen. -- Issue #22115: Fixed tracing Tkinter variables: trace_vdelete() with wrong - mode no longer break tracing, trace_vinfo() now always returns a list of - pairs of strings, tracing in the "u" mode now works. +- Issue #28353: os.fwalk() no longer fails on broken links. -- Fix a scoping issue in importlib.util.LazyLoader which triggered an - UnboundLocalError when lazy-loading a module that was already put into - sys.modules. +- Issue #28430: Fix iterator of C implemented asyncio.Future doesn't accept + non-None value is passed to it.send(val). -- Issue #27079: Fixed curses.ascii functions isblank(), iscntrl() and ispunct(). +- Issue #27025: Generated names for Tkinter widgets now start by the "!" prefix + for readability (was "`"). -- Issue #26754: Some functions (compile() etc) accepted a filename argument - encoded as an iterable of integers. Now only strings and byte-like objects - are accepted. +- Issue #25464: Fixed HList.header_exists() in tkinter.tix module by addin + a workaround to Tix library bug. -- Issue #27048: Prevents distutils failing on Windows when environment - variables contain non-ASCII characters +- Issue #28488: shutil.make_archive() no longer adds entry "./" to ZIP archive. -- Issue #27330: Fixed possible leaks in the ctypes module. +- Issue #25953: re.sub() now raises an error for invalid numerical group + reference in replacement template even if the pattern is not found in + the string. Error message for invalid group reference now includes the + group index and the position of the reference. + Based on patch by SilentGhost. -- Issue #27238: Got rid of bare excepts in the turtle module. Original patch - by Jelle Zijlstra. +- Issue #18219: Optimize csv.DictWriter for large number of columns. + Patch by Mariatta Wijaya. -- Issue #27122: When an exception is raised within the context being managed - by a contextlib.ExitStack() and one of the exit stack generators - catches and raises it in a chain, do not re-raise the original exception - when exiting, let the new chained one through. This avoids the PEP 479 - bug described in issue25782. +- Issue #28448: Fix C implemented asyncio.Future didn't work on Windows. -- [Security] Issue #27278: Fix os.urandom() implementation using getrandom() on - Linux. Truncate size to INT_MAX and loop until we collected enough random - bytes, instead of casting a directly Py_ssize_t to int. +- Issue #28480: Fix error building socket module when multithreading is + disabled. -- Issue #26386: Fixed ttk.TreeView selection operations with item id's - containing spaces. +- Issue #24452: Make webbrowser support Chrome on Mac OS X. -- [Security] Issue #22636: Avoid shell injection problems with - ctypes.util.find_library(). +- Issue #20766: Fix references leaked by pdb in the handling of SIGINT + handlers. -- Issue #16182: Fix various functions in the "readline" module to use the - locale encoding, and fix get_begidx() and get_endidx() to return code point - indexes. +- Issue #28492: Fix how StopIteration exception is raised in _asyncio.Future. -- Issue #27392: Add loop.connect_accepted_socket(). - Patch by Jim Fulton. +- Issue #28500: Fix asyncio to handle async gens GC from another thread. -- Issue #27930: Improved behaviour of logging.handlers.QueueListener. - Thanks to Paulo Andrade and Petr Viktorin for the analysis and patch. +- Issue #26923: Fix asyncio.Gather to refuse being cancelled once all + children are done. + Patch by Johannes Ebke. -- Issue #21201: Improves readability of multiprocessing error message. Thanks - to Wojciech Walczak for patch. +- Issue #26796: Don't configure the number of workers for default + threadpool executor. + Initial patch by Hans Lawrenz. -- Issue #27456: asyncio: Set TCP_NODELAY by default. +- Issue #28544: Implement asyncio.Task in C. -- Issue #27906: Fix socket accept exhaustion during high TCP traffic. - Patch by Kevin Conway. +Windows +------- -- Issue #28174: Handle when SO_REUSEPORT isn't properly supported. - Patch by Seth Michael Larson. +- Issue #28522: Fixes mishandled buffer reallocation in getpathp.c -- Issue #26654: Inspect functools.partial in asyncio.Handle.__repr__. - Patch by iceboy. +Build +----- -- Issue #26909: Fix slow pipes IO in asyncio. - Patch by INADA Naoki. +- Issue #28444: Fix missing extensions modules when cross compiling. -- Issue #28176: Fix callbacks race in asyncio.SelectorLoop.sock_connect. +- Issue #28208: Update Windows build and OS X installers to use SQLite 3.14.2. -- Issue #27759: Fix selectors incorrectly retain invalid file descriptors. - Patch by Mark Williams. +- Issue #28248: Update Windows build and OS X installers to use OpenSSL 1.0.2j. -- Issue #28368: Refuse monitoring processes if the child watcher has - no loop attached. - Patch by Vincent Michel. +Tests +----- -- Issue #28369: Raise RuntimeError when transport's FD is used with - add_reader, add_writer, etc. +- Issue #26944: Fix test_posix for Android where 'id -G' is entirely wrong or + missing the effective gid. -- Issue #28370: Speedup asyncio.StreamReader.readexactly. - Patch by Коренберг Марк. +- Issue #28409: regrtest: fix the parser of command line arguments. -- Issue #28371: Deprecate passing asyncio.Handles to run_in_executor. -- Issue #28372: Fix asyncio to support formatting of non-python coroutines. +What's New in Python 3.6.0 beta 2? +================================== -- Issue #28399: Remove UNIX socket from FS before binding. - Patch by Коренберг Марк. +*Release date: 2016-10-10* -- Issue #27972: Prohibit Tasks to await on themselves. +Core and Builtins +----------------- -- Issue #26923: Fix asyncio.Gather to refuse being cancelled once all - children are done. - Patch by Johannes Ebke. +- Issue #28183: Optimize and cleanup dict iteration. -- Issue #26796: Don't configure the number of workers for default - threadpool executor. - Initial patch by Hans Lawrenz. +- Issue #26081: Added C implementation of asyncio.Future. + Original patch by Yury Selivanov. -- Issue #28600: Optimize loop.call_soon(). +- Issue #28379: Added sanity checks and tests for PyUnicode_CopyCharacters(). + Patch by Xiang Zhang. -- Issue #28613: Fix get_event_loop() return the current loop if - called from coroutines/callbacks. +- Issue #28376: The type of long range iterator is now registered as Iterator. + Patch by Oren Milman. -- Issue #28639: Fix inspect.isawaitable to always return bool - Patch by Justin Mayfield. +- Issue #28376: Creating instances of range_iterator by calling range_iterator + type now is deprecated. Patch by Oren Milman. -- Issue #28652: Make loop methods reject socket kinds they do not support. +- Issue #28376: The constructor of range_iterator now checks that step is not 0. + Patch by Oren Milman. -- Issue #28653: Fix a refleak in functools.lru_cache. +- Issue #26906: Resolving special methods of uninitialized type now causes + implicit initialization of the type instead of a fail. -- Issue #28703: Fix asyncio.iscoroutinefunction to handle Mock objects. +- Issue #18287: PyType_Ready() now checks that tp_name is not NULL. + Original patch by Niklas Koep. -- Issue #24142: Reading a corrupt config file left the parser in an - invalid state. Original patch by Florian Höch. +- Issue #24098: Fixed possible crash when AST is changed in process of + compiling it. -- Issue #28990: Fix SSL hanging if connection is closed before handshake - completed. - (Patch by HoHo-Ho) +- Issue #28201: Dict reduces possibility of 2nd conflict in hash table when + hashes have same lower bits. -IDLE ----- +- Issue #28350: String constants with null character no longer interned. -- Issue #15308: Add 'interrupt execution' (^C) to Shell menu. - Patch by Roger Serwy, updated by Bayard Randel. +- Issue #26617: Fix crash when GC runs during weakref callbacks. -- Issue #27922: Stop IDLE tests from 'flashing' gui widgets on the screen. +- Issue #27942: String constants now interned recursively in tuples and frozensets. -- Add version to title of IDLE help window. +- Issue #21578: Fixed misleading error message when ImportError called with + invalid keyword args. -- Issue #25564: In section on IDLE -- console differences, mention that - using exec means that __builtins__ is defined for each statement. +- Issue #28203: Fix incorrect type in complex(1.0, {2:3}) error message. + Patch by Soumya Sharma. -- Issue #27714: text_textview and test_autocomplete now pass when re-run - in the same process. This occurs when test_idle fails when run with the - -w option but without -jn. Fix warning from test_config. +- Issue #28086: Single var-positional argument of tuple subtype was passed + unscathed to the C-defined function. Now it is converted to exact tuple. -- Issue #25507: IDLE no longer runs buggy code because of its tkinter imports. - Users must include the same imports required to run directly in Python. +- Issue #28214: Now __set_name__ is looked up on the class instead of the + instance. -- Issue #27452: add line counter and crc to IDLE configHandler test dump. +- Issue #27955: Fallback on reading /dev/urandom device when the getrandom() + syscall fails with EPERM, for example when blocked by SECCOMP. -- Issue #27365: Allow non-ascii chars in IDLE NEWS.txt, for contributor names. +- Issue #28192: Don't import readline in isolated mode. -- Issue #27245: IDLE: Cleanly delete custom themes and key bindings. - Previously, when IDLE was started from a console or by import, a cascade - of warnings was emitted. Patch by Serhiy Storchaka. +- Upgrade internal unicode databases to Unicode version 9.0.0. -C API ------ +- Issue #28131: Fix a regression in zipimport's compile_source(). zipimport + should use the same optimization level as the interpreter. -- Issue #28808: PyUnicode_CompareWithASCIIString() now never raises exceptions. +- Issue #28126: Replace Py_MEMCPY with memcpy(). Visual Studio can properly + optimize memcpy(). -- Issue #26754: PyUnicode_FSDecoder() accepted a filename argument encoded as - an iterable of integers. Now only strings and bytes-like objects are accepted. +- Issue #28120: Fix dict.pop() for splitted dictionary when trying to remove a + "pending key" (Not yet inserted in split-table). Patch by Xiang Zhang. -Documentation -------------- +- Issue #26182: Raise DeprecationWarning when async and await keywords are + used as variable/attribute/class/function name. -- Issue #28513: Documented command-line interface of zipfile. +Library +------- -Tests ------ +- Issue #27998: Fixed bytes path support in os.scandir() on Windows. + Patch by Eryk Sun. -- Issue #28950: Disallow -j0 to be combined with -T/-l/-M in regrtest - command line arguments. +- Issue #28317: The disassembler now decodes FORMAT_VALUE argument. -- Issue #28666: Now test.support.rmtree is able to remove unwritable or - unreadable directories. +- Issue #26293: Fixed writing ZIP files that starts not from the start of the + file. Offsets in ZIP file now are relative to the start of the archive in + conforming to the specification. -- Issue #23839: Various caches now are cleared before running every test file. +- Issue #28380: unittest.mock Mock autospec functions now properly support + assert_called, assert_not_called, and assert_called_once. -- Issue #28409: regrtest: fix the parser of command line arguments. +- Issue #27181 remove statistics.geometric_mean and defer until 3.7. -- Issue #27787: Call gc.collect() before checking each test for "dangling - threads", since the dangling threads are weak references. +- Issue #28229: lzma module now supports pathlib. -- Issue #27369: In test_pyexpat, avoid testing an error message detail that - changed in Expat 2.2.0. +- Issue #28321: Fixed writing non-BMP characters with binary format in plistlib. -Tools/Demos ------------ +- Issue #28225: bz2 module now supports pathlib. Initial patch by Ethan Furman. -- Issue #27952: Get Tools/scripts/fixcid.py working with Python 3 and the - current "re" module, avoid invalid Python backslash escapes, and fix a bug - parsing escaped C quote signs. +- Issue #28227: gzip now supports pathlib. Patch by Ethan Furman. -- Issue #27332: Fixed the type of the first argument of module-level functions - generated by Argument Clinic. Patch by Petr Viktorin. +- Issue #27358: Optimized merging var-keyword arguments and improved error + message when pass a non-mapping as a var-keyword argument. -- Issue #27418: Fixed Tools/importbench/importbench.py. +- Issue #28257: Improved error message when pass a non-iterable as + a var-positional argument. Added opcode BUILD_TUPLE_UNPACK_WITH_CALL. -Windows -------- +- Issue #28322: Fixed possible crashes when unpickle itertools objects from + incorrect pickle data. Based on patch by John Leitch. -- Issue #28251: Improvements to help manuals on Windows. +- Issue #28228: imghdr now supports pathlib. -- Issue #28110: launcher.msi has different product codes between 32-bit and - 64-bit +- Issue #28226: compileall now supports pathlib. -- Issue #25144: Ensures TargetDir is set before continuing with custom - install. +- Issue #28314: Fix function declaration (C flags) for the getiterator() method + of xml.etree.ElementTree.Element. -- Issue #27469: Adds a shell extension to the launcher so that drag and drop - works correctly. +- Issue #28148: Stop using localtime() and gmtime() in the time + module. -- Issue #27309: Enabled proper Windows styles in python[w].exe manifest. + Introduced platform independent _PyTime_localtime API that is + similar to POSIX localtime_r, but available on all platforms. Patch + by Ed Schouten. -Build ------ +- Issue #28253: Fixed calendar functions for extreme months: 0001-01 + and 9999-12. -- Issue #23903: Added missed names to PC/python3.def. + Methods itermonthdays() and itermonthdays2() are reimplemented so + that they don't call itermonthdates() which can cause datetime.date + under/overflow. -- Issue #10656: Fix out-of-tree building on AIX. Patch by Tristan Carel and - Michael Haubenwallner. +- Issue #28275: Fixed possible use after free in the decompress() + methods of the LZMADecompressor and BZ2Decompressor classes. + Original patch by John Leitch. -- Issue #26359: Rename --with-optimiations to --enable-optimizations. +- Issue #27897: Fixed possible crash in sqlite3.Connection.create_collation() + if pass invalid string-like object as a name. Patch by Xiang Zhang. -- Issue #28444: Fix missing extensions modules when cross compiling. +- Issue #18844: random.choices() now has k as a keyword-only argument + to improve the readability of common cases and come into line + with the signature used in other languages. -- Issue #28248: Update Windows build and OS X installers to use OpenSSL 1.0.2j. +- Issue #18893: Fix invalid exception handling in Lib/ctypes/macholib/dyld.py. + Patch by Madison May. -- Issue #28258: Fixed build with Estonian locale (python-config and distclean - targets in Makefile). Patch by Arfrever Frehtes Taifersar Arahesis. +- Issue #27611: Fixed support of default root window in the tkinter.tix module. + Added the master parameter in the DisplayStyle constructor. -- Issue #26661: setup.py now detects system libffi with multiarch wrapper. +- Issue #27348: In the traceback module, restore the formatting of exception + messages like "Exception: None". This fixes a regression introduced in + 3.5a2. -- Issue #28066: Fix the logic that searches build directories for generated - include files when building outside the source tree. +- Issue #25651: Allow falsy values to be used for msg parameter of subTest(). -- Issue #15819: Remove redundant include search directory option for building - outside the source tree. +- Issue #27778: Fix a memory leak in os.getrandom() when the getrandom() is + interrupted by a signal and a signal handler raises a Python exception. -- Issue #27566: Fix clean target in freeze makefile (patch by Lisa Roach) +- Issue #28200: Fix memory leak on Windows in the os module (fix + path_converter() function). -- Issue #27705: Update message in validate_ucrtbase.py +- Issue #25400: RobotFileParser now correctly returns default values for + crawl_delay and request_rate. Initial patch by Peter Wirtz. -- Issue #27983: Cause lack of llvm-profdata tool when using clang as - required for PGO linking to be a configure time error rather than - make time when --with-optimizations is enabled. Also improve our - ability to find the llvm-profdata tool on MacOS and some Linuxes. +- Issue #27932: Prevent memory leak in win32_ver(). -- Issue #26307: The profile-opt build now applies PGO to the built-in modules. +- Fix UnboundLocalError in socket._sendfile_use_sendfile. -- Issue #26359: Add the --with-optimizations configure flag. +- Issue #28075: Check for ERROR_ACCESS_DENIED in Windows implementation of + os.stat(). Patch by Eryk Sun. -- Issue #27713: Suppress spurious build warnings when updating importlib's - bootstrap files. Patch by Xiang Zhang +- Issue #22493: Warning message emitted by using inline flags in the middle of + regular expression now contains a (truncated) regex pattern. + Patch by Tim Graham. -- Issue #25825: Correct the references to Modules/python.exp and ld_so_aix, - which are required on AIX. This updates references to an installation path - that was changed in 3.2a4, and undoes changed references to the build tree - that were made in 3.5.0a1. +- Issue #25270: Prevent codecs.escape_encode() from raising SystemError when + an empty bytestring is passed. -- Issue #27453: CPP invocation in configure must use CPPFLAGS. Patch by - Chi Hsuan Yen. +- Issue #28181: Get antigravity over HTTPS. Patch by Kaartic Sivaraam. -- Issue #27641: The configure script now inserts comments into the makefile - to prevent the pgen and _freeze_importlib executables from being cross- - compiled. +- Issue #25895: Enable WebSocket URL schemes in urllib.parse.urljoin. + Patch by Gergely Imreh and Markus Holtermann. -- Issue #26662: Set PYTHON_FOR_GEN in configure as the Python program to be - used for file generation during the build. +- Issue #28114: Fix a crash in parse_envlist() when env contains byte strings. + Patch by Eryk Sun. -- Issue #10910: Avoid C++ compilation errors on FreeBSD and OS X. - Also update FreedBSD version checks for the original ctype UTF-8 workaround. +- Issue #27599: Fixed buffer overrun in binascii.b2a_qp() and binascii.a2b_qp(). -- Issue #28676: Prevent missing 'getentropy' declaration warning on macOS. - Patch by Gareth Rees. +- Issue #27906: Fix socket accept exhaustion during high TCP traffic. + Patch by Kevin Conway. +- Issue #28174: Handle when SO_REUSEPORT isn't properly supported. + Patch by Seth Michael Larson. -What's New in Python 3.5.2? -=========================== +- Issue #26654: Inspect functools.partial in asyncio.Handle.__repr__. + Patch by iceboy. -Release date: 2016-06-26 +- Issue #26909: Fix slow pipes IO in asyncio. + Patch by INADA Naoki. -Core and Builtins ------------------ +- Issue #28176: Fix callbacks race in asyncio.SelectorLoop.sock_connect. -- Issue #26930: Update Windows builds to use OpenSSL 1.0.2h. +- Issue #27759: Fix selectors incorrectly retain invalid file descriptors. + Patch by Mark Williams. -Tests ------ +- Issue #28368: Refuse monitoring processes if the child watcher has no + loop attached. + Patch by Vincent Michel. -- Issue #26867: Ubuntu's openssl OP_NO_SSLv3 is forced on by default; fix test. +- Issue #28369: Raise RuntimeError when transport's FD is used with + add_reader, add_writer, etc. -IDLE ----- +- Issue #28370: Speedup asyncio.StreamReader.readexactly. + Patch by Коренберг Марк. -- Issue #27365: Allow non-ascii in idlelib/NEWS.txt - minimal part for 3.5.2. +- Issue #28371: Deprecate passing asyncio.Handles to run_in_executor. +- Issue #28372: Fix asyncio to support formatting of non-python coroutines. -What's New in Python 3.5.2 release candidate 1? -=============================================== +- Issue #28399: Remove UNIX socket from FS before binding. + Patch by Коренберг Марк. -Release date: 2016-06-12 +- Issue #27972: Prohibit Tasks to await on themselves. -Core and Builtins ------------------ +Windows +------- -- Issue #27066: Fixed SystemError if a custom opener (for open()) returns a - negative number without setting an exception. +- Issue #28402: Adds signed catalog files for stdlib on Windows. -- Issue #20041: Fixed TypeError when frame.f_trace is set to None. - Patch by Xavier de Gaye. +- Issue #28333: Enables Unicode for ps1/ps2 and input() prompts. (Patch by + Eryk Sun) -- Issue #26168: Fixed possible refleaks in failing Py_BuildValue() with the "N" - format unit. +- Issue #28251: Improvements to help manuals on Windows. -- Issue #26991: Fix possible refleak when creating a function with annotations. +- Issue #28110: launcher.msi has different product codes between 32-bit and + 64-bit -- Issue #27039: Fixed bytearray.remove() for values greater than 127. Patch by - Joe Jevnik. +- Issue #28161: Opening CON for write access fails -- Issue #23640: int.from_bytes() no longer bypasses constructors for subclasses. +- Issue #28162: WindowsConsoleIO readall() fails if first line starts with + Ctrl+Z -- Issue #26811: gc.get_objects() no longer contains a broken tuple with NULL - pointer. +- Issue #28163: WindowsConsoleIO fileno() passes wrong flags to + _open_osfhandle -- Issue #20120: Use RawConfigParser for .pypirc parsing, - removing support for interpolation unintentionally added - with move to Python 3. Behavior no longer does any - interpolation in .pypirc files, matching behavior in Python - 2.7 and Setuptools 19.0. +- Issue #28164: _PyIO_get_console_type fails for various paths -- Issue #26659: Make the builtin slice type support cycle collection. +- Issue #28137: Renames Windows path file to ._pth -- Issue #26718: super.__init__ no longer leaks memory if called multiple times. - NOTE: A direct call of super.__init__ is not endorsed! +- Issue #28138: Windows ._pth file should allow import site -- Issue #25339: PYTHONIOENCODING now has priority over locale in setting the - error handler for stdin and stdout. +C API +----- -- Issue #26494: Fixed crash on iterating exhausting iterators. - Affected classes are generic sequence iterators, iterators of str, bytes, - bytearray, list, tuple, set, frozenset, dict, OrderedDict, corresponding - views and os.scandir() iterator. +- Issue #28426: Deprecated undocumented functions PyUnicode_AsEncodedObject(), + PyUnicode_AsDecodedObject(), PyUnicode_AsDecodedUnicode() and + PyUnicode_AsEncodedUnicode(). -- Issue #26581: If coding cookie is specified multiple times on a line in - Python source code file, only the first one is taken to account. +Build +----- -- Issue #26464: Fix str.translate() when string is ASCII and first replacements - removes character, but next replacement uses a non-ASCII character or a - string longer than 1 character. Regression introduced in Python 3.5.0. +- Issue #28258: Fixed build with Estonian locale (python-config and distclean + targets in Makefile). Patch by Arfrever Frehtes Taifersar Arahesis. -- Issue #22836: Ensure exception reports from PyErr_Display() and - PyErr_WriteUnraisable() are sensible even when formatting them produces - secondary errors. This affects the reports produced by - sys.__excepthook__() and when __del__() raises an exception. +- Issue #26661: setup.py now detects system libffi with multiarch wrapper. -- Issue #26302: Correct behavior to reject comma as a legal character for - cookie names. +- Issue #15819: Remove redundant include search directory option for building + outside the source tree. -- Issue #4806: Avoid masking the original TypeError exception when using star - (*) unpacking in function calls. Based on patch by Hagen Fürstenau and - Daniel Urban. +Tests +----- -- Issue #27138: Fix the doc comment for FileFinder.find_spec(). +- Issue #28217: Adds _testconsole module to test console input. -- Issue #26154: Add a new private _PyThreadState_UncheckedGet() function to get - the current Python thread state, but don't issue a fatal error if it is NULL. - This new function must be used instead of accessing directly the - _PyThreadState_Current variable. The variable is no more exposed since - Python 3.5.1 to hide the exact implementation of atomic C types, to avoid - compiler issues. -- Issue #26194: Deque.insert() gave odd results for bounded deques that had - reached their maximum size. Now an IndexError will be raised when attempting - to insert into a full deque. +What's New in Python 3.6.0 beta 1? +================================== -- Issue #25843: When compiling code, don't merge constants if they are equal - but have a different types. For example, ``f1, f2 = lambda: 1, lambda: 1.0`` - is now correctly compiled to two different functions: ``f1()`` returns ``1`` - (``int``) and ``f2()`` returns ``1.0`` (``int``), even if ``1`` and ``1.0`` - are equal. +*Release date: 2016-09-12* -- Issue #22995: [UPDATE] Comment out the one of the pickleability tests in - _PyObject_GetState() due to regressions observed in Cython-based projects. +Core and Builtins +----------------- -- Issue #25961: Disallowed null characters in the type name. +- Issue #23722: The __class__ cell used by zero-argument super() is now + initialized from type.__new__ rather than __build_class__, so class methods + relying on that will now work correctly when called from metaclass methods + during class creation. Patch by Martin Teichmann. -- Issue #25973: Fix segfault when an invalid nonlocal statement binds a name - starting with two underscores. +- Issue #25221: Fix corrupted result from PyLong_FromLong(0) when Python + is compiled with NSMALLPOSINTS = 0. -- Issue #22995: Instances of extension types with a state that aren't - subclasses of list or dict and haven't implemented any pickle-related - methods (__reduce__, __reduce_ex__, __getnewargs__, __getnewargs_ex__, - or __getstate__), can no longer be pickled. Including memoryview. +- Issue #27080: Implement formatting support for PEP 515. Initial patch + by Chris Angelico. -- Issue #20440: Massive replacing unsafe attribute setting code with special - macro Py_SETREF. +- Issue #27199: In tarfile, expose copyfileobj bufsize to improve throughput. + Patch by Jason Fried. -- Issue #25766: Special method __bytes__() now works in str subclasses. +- Issue #27948: In f-strings, only allow backslashes inside the braces + (where the expressions are). This is a breaking change from the 3.6 + alpha releases, where backslashes are allowed anywhere in an + f-string. Also, require that expressions inside f-strings be + enclosed within literal braces, and not escapes like + f'\x7b"hi"\x7d'. -- Issue #25421: __sizeof__ methods of builtin types now use dynamic basic size. - This allows sys.getsize() to work correctly with their subclasses with - __slots__ defined. +- Issue #28046: Remove platform-specific directories from sys.path. -- Issue #25709: Fixed problem with in-place string concatenation and utf-8 - cache. +- Issue #28071: Add early-out for differencing from an empty set. -- Issue #27147: Mention PEP 420 in the importlib docs. +- Issue #25758: Prevents zipimport from unnecessarily encoding a filename + (patch by Eryk Sun) -- Issue #24097: Fixed crash in object.__reduce__() if slot name is freed inside - __getattr__. +- Issue #25856: The __module__ attribute of extension classes and functions + now is interned. This leads to more compact pickle data with protocol 4. -- Issue #24731: Fixed crash on converting objects with special methods - __bytes__, __trunc__, and __float__ returning instances of subclasses of - bytes, int, and float to subclasses of bytes, int, and float correspondingly. +- Issue #27213: Rework CALL_FUNCTION* opcodes to produce shorter and more + efficient bytecode. Patch by Demur Rumed, design by Serhiy Storchaka, + reviewed by Serhiy Storchaka and Victor Stinner. -- Issue #26478: Fix semantic bugs when using binary operators with dictionary - views and tuples. +- Issue #26331: Implement tokenizing support for PEP 515. Patch by Georg Brandl. -- Issue #26171: Fix possible integer overflow and heap corruption in - zipimporter.get_data(). +- Issue #27999: Make "global after use" a SyntaxError, and ditto for nonlocal. + Patch by Ivan Levkivskyi. -- Issue #25660: Fix TAB key behaviour in REPL with readline. +- Issue #28003: Implement PEP 525 -- Asynchronous Generators. -- Issue #25887: Raise a RuntimeError when a coroutine object is awaited - more than once. +- Issue #27985: Implement PEP 526 -- Syntax for Variable Annotations. + Patch by Ivan Levkivskyi. -- Issue #27243: Update the __aiter__ protocol: instead of returning - an awaitable that resolves to an asynchronous iterator, the asynchronous - iterator should be returned directly. Doing the former will trigger a - PendingDeprecationWarning. +- Issue #26058: Add a new private version to the builtin dict type, incremented + at each dictionary creation and at each dictionary change. Implementation of + the PEP 509. +- Issue #27364: A backslash-character pair that is not a valid escape sequence + now generates a DeprecationWarning. Patch by Emanuel Barry. -Library -------- +- Issue #27350: `dict` implementation is changed like PyPy. It is more compact + and preserves insertion order. + (Concept developed by Raymond Hettinger and patch by Inada Naoki.) -- [Security] Issue #26556: Update expat to 2.1.1, fixes CVE-2015-1283. +- Issue #27911: Remove unnecessary error checks in + ``exec_builtin_or_dynamic()``. -- [Security] Fix TLS stripping vulnerability in smtplib, CVE-2016-0772. - Reported by Team Oststrom +- Issue #27078: Added BUILD_STRING opcode. Optimized f-strings evaluation. -- Issue #21386: Implement missing IPv4Address.is_global property. It was - documented since 07a5610bae9d. Initial patch by Roger Luethi. +- Issue #17884: Python now requires systems with inttypes.h and stdint.h -- Issue #20900: distutils register command now decodes HTTP responses - correctly. Initial patch by ingrid. +- Issue #27961: Require platforms to support ``long long``. Python hasn't + compiled without ``long long`` for years, so this is basically a formality. -- A new version of typing.py provides several new classes and - features: @overload outside stubs, Reversible, DefaultDict, Text, - ContextManager, Type[], NewType(), TYPE_CHECKING, and numerous bug - fixes (note that some of the new features are not yet implemented in - mypy or other static analyzers). Also classes for PEP 492 - (Awaitable, AsyncIterable, AsyncIterator) have been added (in fact - they made it into 3.5.1 but were never mentioned). +- Issue #27355: Removed support for Windows CE. It was never finished, + and Windows CE is no longer a relevant platform for Python. -- Issue #25738: Stop http.server.BaseHTTPRequestHandler.send_error() from - sending a message body for 205 Reset Content. Also, don't send Content - header fields in responses that don't have a body. Patch by Susumu - Koshiba. +- Implement PEP 523. -- Issue #21313: Fix the "platform" module to tolerate when sys.version - contains truncated build information. +- Issue #27870: A left shift of zero by a large integer no longer attempts + to allocate large amounts of memory. -- [Security] Issue #26839: On Linux, :func:`os.urandom` now calls - ``getrandom()`` with ``GRND_NONBLOCK`` to fall back on reading - ``/dev/urandom`` if the urandom entropy pool is not initialized yet. Patch - written by Colm Buckley. +- Issue #25402: In int-to-decimal-string conversion, improve the estimate + of the intermediate memory required, and remove an unnecessarily strict + overflow check. Patch by Serhiy Storchaka. -- Issue #27164: In the zlib module, allow decompressing raw Deflate streams - with a predefined zdict. Based on patch by Xiang Zhang. +- Issue #27214: In long_invert, be more careful about modifying object + returned by long_add, and remove an unnecessary check for small longs. + Thanks Oren Milman for analysis and patch. -- Issue #24291: Fix wsgiref.simple_server.WSGIRequestHandler to completely - write data to the client. Previously it could do partial writes and - truncate data. Also, wsgiref.handler.ServerHandler can now handle stdout - doing partial writes, but this is deprecated. +- Issue #27506: Support passing the bytes/bytearray.translate() "delete" + argument by keyword. -- Issue #26809: Add ``__all__`` to :mod:`string`. Patch by Emanuel Barry. +- Issue #27812: Properly clear out a generator's frame's backreference to the + generator to prevent crashes in frame.clear(). -- Issue #26373: subprocess.Popen.communicate now correctly ignores - BrokenPipeError when the child process dies before .communicate() - is called in more/all circumstances. +- Issue #27811: Fix a crash when a coroutine that has not been awaited is + finalized with warnings-as-errors enabled. -- Issue #21776: distutils.upload now correctly handles HTTPError. - Initial patch by Claudiu Popa. +- Issue #27587: Fix another issue found by PVS-Studio: Null pointer check + after use of 'def' in _PyState_AddModule(). + Initial patch by Christian Heimes. -- Issue #27114: Fix SSLContext._load_windows_store_certs fails with - PermissionError +- Issue #27792: The modulo operation applied to ``bool`` and other + ``int`` subclasses now always returns an ``int``. Previously + the return type depended on the input values. Patch by Xiang Zhang. -- Issue #18383: Avoid creating duplicate filters when using filterwarnings - and simplefilter. Based on patch by Alex Shkop. +- Issue #26984: int() now always returns an instance of exact int. -- Issue #27057: Fix os.set_inheritable() on Android, ioctl() is blocked by - SELinux and fails with EACCESS. The function now falls back to fcntl(). - Patch written by Michał Bednarski. +- Issue #25604: Fix a minor bug in integer true division; this bug could + potentially have caused off-by-one-ulp results on platforms with + unreliable ldexp implementations. -- Issue #27014: Fix infinite recursion using typing.py. Thanks to Kalle Tuure! +- Issue #24254: Make class definition namespace ordered by default. -- Issue #14132: Fix urllib.request redirect handling when the target only has - a query string. Original fix by Ján Janech. +- Issue #27662: Fix an overflow check in ``List_New``: the original code was + checking against ``Py_SIZE_MAX`` instead of the correct upper bound of + ``Py_SSIZE_T_MAX``. Patch by Xiang Zhang. -- Issue #17214: The "urllib.request" module now percent-encodes non-ASCII - bytes found in redirect target URLs. Some servers send Location header - fields with non-ASCII bytes, but "http.client" requires the request target - to be ASCII-encodable, otherwise a UnicodeEncodeError is raised. Based on - patch by Christian Heimes. - -- Issue #26892: Honor debuglevel flag in urllib.request.HTTPHandler. Patch - contributed by Chi Hsuan Yen. +- Issue #27782: Multi-phase extension module import now correctly allows the + ``m_methods`` field to be used to add module level functions to instances + of non-module types returned from ``Py_create_mod``. Patch by Xiang Zhang. -- Issue #22274: In the subprocess module, allow stderr to be redirected to - stdout even when stdout is not redirected. Patch by Akira Li. +- Issue #27936: The round() function accepted a second None argument + for some types but not for others. Fixed the inconsistency by + accepting None for all numeric types. -- Issue #26807: mock_open 'files' no longer error on readline at end of file. - Patch from Yolanda Robla. +- Issue #27487: Warn if a submodule argument to "python -m" or + runpy.run_module() is found in sys.modules after parent packages are + imported, but before the submodule is executed. -- Issue #25745: Fixed leaking a userptr in curses panel destructor. +- Issue #27157: Make only type() itself accept the one-argument form. + Patch by Eryk Sun and Emanuel Barry. -- Issue #26977: Removed unnecessary, and ignored, call to sum of squares helper - in statistics.pvariance. +- Issue #27558: Fix a SystemError in the implementation of "raise" statement. + In a brand new thread, raise a RuntimeError since there is no active + exception to reraise. Patch written by Xiang Zhang. -- Issue #26881: The modulefinder module now supports extended opcode arguments. +- Issue #28008: Implement PEP 530 -- asynchronous comprehensions. -- Issue #23815: Fixed crashes related to directly created instances of types in - _tkinter and curses.panel modules. +- Issue #27942: Fix memory leak in codeobject.c -- Issue #17765: weakref.ref() no longer silently ignores keyword arguments. - Patch by Georg Brandl. +Library +------- -- Issue #26873: xmlrpc now raises ResponseError on unsupported type tags - instead of silently return incorrect result. +- Issue #28732: Fix crash in os.spawnv() with no elements in args -- Issue #26711: Fixed the comparison of plistlib.Data with other types. +- Issue #28485: Always raise ValueError for negative + compileall.compile_dir(workers=...) parameter, even when multithreading is + unavailable. -- Issue #24114: Fix an uninitialized variable in `ctypes.util`. +- Issue #28037: Use sqlite3_get_autocommit() instead of setting + Connection->inTransaction manually. - The bug only occurs on SunOS when the ctypes implementation searches - for the `crle` program. Patch by Xiang Zhang. Tested on SunOS by - Kees Bos. +- Issue #25283: Attributes tm_gmtoff and tm_zone are now available on + all platforms in the return values of time.localtime() and + time.gmtime(). -- Issue #26864: In urllib.request, change the proxy bypass host checking - against no_proxy to be case-insensitive, and to not match unrelated host - names that happen to have a bypassed hostname as a suffix. Patch by Xiang - Zhang. +- Issue #24454: Regular expression match object groups are now + accessible using __getitem__. "mo[x]" is equivalent to + "mo.group(x)". -- Issue #26634: recursive_repr() now sets __qualname__ of wrapper. Patch by - Xiang Zhang. +- Issue #10740: sqlite3 no longer implicitly commit an open transaction + before DDL statements. -- Issue #26804: urllib.request will prefer lower_case proxy environment - variables over UPPER_CASE or Mixed_Case ones. Patch contributed by Hans-Peter - Jansen. +- Issue #17941: Add a *module* parameter to collections.namedtuple(). -- Issue #26837: assertSequenceEqual() now correctly outputs non-stringified - differing items (like bytes in the -b mode). This affects assertListEqual() - and assertTupleEqual(). +- Issue #22493: Inline flags now should be used only at the start of the + regular expression. Deprecation warning is emitted if uses them in the + middle of the regular expression. -- Issue #26041: Remove "will be removed in Python 3.7" from deprecation - messages of platform.dist() and platform.linux_distribution(). - Patch by Kumaripaba Miyurusara Athukorala. +- Issue #26885: xmlrpc now supports unmarshalling additional data types used + by Apache XML-RPC implementation for numerics and None. -- Issue #26822: itemgetter, attrgetter and methodcaller objects no longer - silently ignore keyword arguments. +- Issue #28070: Fixed parsing inline verbose flag in regular expressions. -- Issue #26733: Disassembling a class now disassembles class and static methods. - Patch by Xiang Zhang. +- Issue #19500: Add client-side SSL session resumption to the ssl module. -- Issue #26801: Fix error handling in :func:`shutil.get_terminal_size`, catch - :exc:`AttributeError` instead of :exc:`NameError`. Patch written by Emanuel - Barry. +- Issue #28022: Deprecate ssl-related arguments in favor of SSLContext. The + deprecation include manual creation of SSLSocket and certfile/keyfile + (or similar) in ftplib, httplib, imaplib, smtplib, poplib and urllib. -- Issue #24838: tarfile's ustar and gnu formats now correctly calculate name - and link field limits for multibyte character encodings like utf-8. +- Issue #28043: SSLContext has improved default settings: OP_NO_SSLv2, + OP_NO_SSLv3, OP_NO_COMPRESSION, OP_CIPHER_SERVER_PREFERENCE, + OP_SINGLE_DH_USE, OP_SINGLE_ECDH_USE and HIGH ciphers without MD5. -- [Security] Issue #26657: Fix directory traversal vulnerability with - http.server on Windows. This fixes a regression that was introduced in - 3.3.4rc1 and 3.4.0rc1. Based on patch by Philipp Hagemeister. +- Issue #24693: Changed some RuntimeError's in the zipfile module to more + appropriate types. Improved some error messages and debugging output. -- Issue #26717: Stop encoding Latin-1-ized WSGI paths with UTF-8. Patch by - Anthony Sottile. +- Issue #17909: ``json.load`` and ``json.loads`` now support binary input + encoded as UTF-8, UTF-16 or UTF-32. Patch by Serhiy Storchaka. -- Issue #26735: Fix :func:`os.urandom` on Solaris 11.3 and newer when reading - more than 1,024 bytes: call ``getrandom()`` multiple times with a limit of - 1024 bytes per call. +- Issue #27137: the pure Python fallback implementation of ``functools.partial`` + now matches the behaviour of its accelerated C counterpart for subclassing, + pickling and text representation purposes. Patch by Emanuel Barry and + Serhiy Storchaka. -- Issue #16329: Add .webm to mimetypes.types_map. Patch by Giampaolo Rodola'. +- Fix possible integer overflows and crashes in the mmap module with unusual + usage patterns. -- Issue #13952: Add .csv to mimetypes.types_map. Patch by Geoff Wilson. +- Issue #1703178: Fix the ability to pass the --link-objects option to the + distutils build_ext command. -- Issue #26709: Fixed Y2038 problem in loading binary PLists. +- Issue #28019: itertools.count() no longer rounds non-integer step in range + between 1.0 and 2.0 to 1. -- Issue #23735: Handle terminal resizing with Readline 6.3+ by installing our - own SIGWINCH handler. Patch by Eric Price. +- Issue #18401: Pdb now supports the 'readrc' keyword argument to control + whether .pdbrc files should be read. Patch by Martin Matusiak and + Sam Kimbrel. -- Issue #26586: In http.server, respond with "413 Request header fields too - large" if there are too many header fields to parse, rather than killing - the connection and raising an unhandled exception. Patch by Xiang Zhang. +- Issue #25969: Update the lib2to3 grammar to handle the unpacking + generalizations added in 3.5. -- Issue #22854: Change BufferedReader.writable() and - BufferedWriter.readable() to always return False. +- Issue #14977: mailcap now respects the order of the lines in the mailcap + files ("first match"), as required by RFC 1542. Patch by Michael Lazar. -- Issue #25195: Fix a regression in mock.MagicMock. _Call is a subclass of - tuple (changeset 3603bae63c13 only works for classes) so we need to - implement __ne__ ourselves. Patch by Andrew Plummer. +- Issue #28082: Convert re flag constants to IntFlag. -- Issue #26644: Raise ValueError rather than SystemError when a negative - length is passed to SSLSocket.recv() or read(). +- Issue #28025: Convert all ssl module constants to IntEnum and IntFlags. + SSLContext properties now return flags and enums. -- Issue #23804: Fix SSL recv(0) and read(0) methods to return zero bytes - instead of up to 1024. +- Issue #23591: Add Flag, IntFlag, and auto() to enum module. -- Issue #26616: Fixed a bug in datetime.astimezone() method. +- Issue #433028: Added support of modifier spans in regular expressions. -- Issue #21925: :func:`warnings.formatwarning` now catches exceptions on - ``linecache.getline(...)`` to be able to log :exc:`ResourceWarning` emitted - late during the Python shutdown process. +- Issue #24594: Validates persist parameter when opening MSI database -- Issue #24266: Ctrl+C during Readline history search now cancels the search - mode when compiled with Readline 7. +- Issue #17582: xml.etree.ElementTree nows preserves whitespaces in attributes + (Patch by Duane Griffin. Reviewed and approved by Stefan Behnel.) -- Issue #26560: Avoid potential ValueError in BaseHandler.start_response. - Initial patch by Peter Inglesby. +- Issue #28047: Fixed calculation of line length used for the base64 CTE + in the new email policies. -- [Security] Issue #26313: ssl.py _load_windows_store_certs fails if windows - cert store is empty. Patch by Baji. +- Issue #27576: Fix call order in OrderedDict.__init__(). -- Issue #26569: Fix :func:`pyclbr.readmodule` and :func:`pyclbr.readmodule_ex` - to support importing packages. +- email.generator.DecodedGenerator now supports the policy keyword. -- Issue #26499: Account for remaining Content-Length in - HTTPResponse.readline() and read1(). Based on patch by Silent Ghost. - Also document that HTTPResponse now supports these methods. +- Issue #28027: Remove undocumented modules from ``Lib/plat-*``: IN, CDROM, + DLFCN, TYPES, CDIO, and STROPTS. -- Issue #25320: Handle sockets in directories unittest discovery is scanning. - Patch from Victor van den Elzen. +- Issue #27445: Don't pass str(_charset) to MIMEText.set_payload(). + Patch by Claude Paroz. -- Issue #16181: cookiejar.http2time() now returns None if year is higher than - datetime.MAXYEAR. +- Issue #24277: The new email API is no longer provisional, and the docs + have been reorganized and rewritten to emphasize the new API. -- Issue #26513: Fixes platform module detection of Windows Server +- Issue #22450: urllib now includes an "Accept: */*" header among the + default headers. This makes the results of REST API requests more + consistent and predictable especially when proxy servers are involved. -- Issue #23718: Fixed parsing time in week 0 before Jan 1. Original patch by - Tamás Bence Gedai. +- lib2to3.pgen3.driver.load_grammar() now creates a stable cache file + between runs given the same Grammar.txt input regardless of the hash + randomization setting. -- Issue #20589: Invoking Path.owner() and Path.group() on Windows now raise - NotImplementedError instead of ImportError. +- Issue #28005: Allow ImportErrors in encoding implementation to propagate. -- Issue #26177: Fixed the keys() method for Canvas and Scrollbar widgets. +- Issue #26667: Support path-like objects in importlib.util. -- Issue #15068: Got rid of excessive buffering in the fileinput module. - The bufsize parameter is no longer used. +- Issue #27570: Avoid zero-length memcpy() etc calls with null source + pointers in the "ctypes" and "array" modules. -- Issue #2202: Fix UnboundLocalError in - AbstractDigestAuthHandler.get_algorithm_impls. Initial patch by Mathieu - Dupuy. +- Issue #22233: Break email header lines *only* on the RFC specified CR and LF + characters, not on arbitrary unicode line breaks. This also fixes a bug in + HTTP header parsing. -- Issue #25718: Fixed pickling and copying the accumulate() iterator with - total is None. +- Issue 27331: The email.mime classes now all accept an optional policy keyword. -- Issue #26475: Fixed debugging output for regular expressions with the (?x) - flag. +- Issue 27988: Fix email iter_attachments incorrect mutation of payload list. -- Issue #26457: Fixed the subnets() methods in IP network classes for the case - when resulting prefix length is equal to maximal prefix length. - Based on patch by Xiang Zhang. +- Issue #16113: Add SHA-3 and SHAKE support to hashlib module. -- Issue #26385: Remove the file if the internal open() call in - NamedTemporaryFile() fails. Patch by Silent Ghost. +- Eliminate a tautological-pointer-compare warning in _scproxy.c. -- Issue #26402: Fix XML-RPC client to retry when the server shuts down a - persistent connection. This was a regression related to the new - http.client.RemoteDisconnected exception in 3.5.0a4. +- Issue #27776: The :func:`os.urandom` function does now block on Linux 3.17 + and newer until the system urandom entropy pool is initialized to increase + the security. This change is part of the :pep:`524`. -- Issue #25913: Leading ``<~`` is optional now in base64.a85decode() with - adobe=True. Patch by Swati Jaiswal. +- Issue #27778: Expose the Linux ``getrandom()`` syscall as a new + :func:`os.getrandom` function. This change is part of the :pep:`524`. -- Issue #26186: Remove an invalid type check in importlib.util.LazyLoader. +- Issue #27691: Fix ssl module's parsing of GEN_RID subject alternative name + fields in X.509 certs. -- Issue #26367: importlib.__import__() raises SystemError like - builtins.__import__() when ``level`` is specified but without an accompanying - package specified. +- Issue #18844: Add random.choices(). -- Issue #26309: In the "socketserver" module, shut down the request (closing - the connected socket) when verify_request() returns false. Patch by Aviv - Palivoda. +- Issue #25761: Improved error reporting about truncated pickle data in + C implementation of unpickler. UnpicklingError is now raised instead of + AttributeError and ValueError in some cases. -- [Security] Issue #25939: On Windows open the cert store readonly in - ssl.enum_certificates. +- Issue #26798: Add BLAKE2 (blake2b and blake2s) to hashlib. -- Issue #25995: os.walk() no longer uses FDs proportional to the tree depth. +- Issue #26032: Optimized globbing in pathlib by using os.scandir(); it is now + about 1.5--4 times faster. -- Issue #26117: The os.scandir() iterator now closes file descriptor not only - when the iteration is finished, but when it was failed with error. +- Issue #25596: Optimized glob() and iglob() functions in the + glob module; they are now about 3--6 times faster. -- Issue #25911: Restored support of bytes paths in os.walk() on Windows. +- Issue #27928: Add scrypt (password-based key derivation function) to + hashlib module (requires OpenSSL 1.1.0). -- Issue #26045: Add UTF-8 suggestion to error message when posting a - non-Latin-1 string with http.client. +- Issue #27850: Remove 3DES from ssl module's default cipher list to counter + measure sweet32 attack (CVE-2016-2183). -- Issue #12923: Reset FancyURLopener's redirect counter even if there is an - exception. Based on patches by Brian Brazil and Daniel Rocco. +- Issue #27766: Add ChaCha20 Poly1305 to ssl module's default ciper list. + (Required OpenSSL 1.1.0 or LibreSSL). -- Issue #25945: Fixed a crash when unpickle the functools.partial object with - wrong state. Fixed a leak in failed functools.partial constructor. - "args" and "keywords" attributes of functools.partial have now always types - tuple and dict correspondingly. +- Issue #25387: Check return value of winsound.MessageBeep. -- Issue #26202: copy.deepcopy() now correctly copies range() objects with - non-atomic attributes. +- Issue #27866: Add SSLContext.get_ciphers() method to get a list of all + enabled ciphers. -- Issue #23076: Path.glob() now raises a ValueError if it's called with an - invalid pattern. Patch by Thomas Nyberg. +- Issue #27744: Add AF_ALG (Linux Kernel crypto) to socket module. -- Issue #19883: Fixed possible integer overflows in zipimport. +- Issue #26470: Port ssl and hashlib module to OpenSSL 1.1.0. -- Issue #26227: On Windows, getnameinfo(), gethostbyaddr() and - gethostbyname_ex() functions of the socket module now decode the hostname - from the ANSI code page rather than UTF-8. +- Issue #11620: Fix support for SND_MEMORY in winsound.PlaySound. Based on a + patch by Tim Lesher. -- Issue #26147: xmlrpc now works with strings not encodable with used - non-UTF-8 encoding. +- Issue #11734: Add support for IEEE 754 half-precision floats to the + struct module. Based on a patch by Eli Stevens. -- Issue #25935: Garbage collector now breaks reference loops with OrderedDict. +- Issue #27919: Deprecated ``extra_path`` distribution option in distutils + packaging. -- Issue #16620: Fixed AttributeError in msilib.Directory.glob(). +- Issue #23229: Add new ``cmath`` constants: ``cmath.inf`` and ``cmath.nan`` to + match ``math.inf`` and ``math.nan``, and also ``cmath.infj`` and + ``cmath.nanj`` to match the format used by complex repr. -- Issue #26013: Added compatibility with broken protocol 2 pickles created - in old Python 3 versions (3.4.3 and lower). +- Issue #27842: The csv.DictReader now returns rows of type OrderedDict. + (Contributed by Steve Holden.) -- Issue #25850: Use cross-compilation by default for 64-bit Windows. +- Remove support for passing a file descriptor to os.access. It never worked but + previously didn't raise. -- Issue #17633: Improve zipimport's support for namespace packages. +- Issue #12885: Fix error when distutils encounters symlink. -- Issue #24705: Fix sysconfig._parse_makefile not expanding ${} vars - appearing before $() vars. +- Issue #27881: Fixed possible bugs when setting sqlite3.Connection.isolation_level. + Based on patch by Xiang Zhang. -- Issue #22138: Fix mock.patch behavior when patching descriptors. Restore - original values after patching. Patch contributed by Sean McCully. +- Issue #27861: Fixed a crash in sqlite3.Connection.cursor() when a factory + creates not a cursor. Patch by Xiang Zhang. -- Issue #25672: In the ssl module, enable the SSL_MODE_RELEASE_BUFFERS mode - option if it is safe to do so. +- Issue #19884: Avoid spurious output on OS X with Gnu Readline. -- Issue #26012: Don't traverse into symlinks for ** pattern in - pathlib.Path.[r]glob(). +- Issue #27706: Restore deterministic behavior of random.Random().seed() + for string seeds using seeding version 1. Allows sequences of calls + to random() to exactly match those obtained in Python 2. + Patch by Nofar Schnider. -- Issue #24120: Ignore PermissionError when traversing a tree with - pathlib.Path.[r]glob(). Patch by Ulrich Petri. +- Issue #10513: Fix a regression in Connection.commit(). Statements should + not be reset after a commit. -- Issue #25447: fileinput now uses sys.stdin as-is if it does not have a - buffer attribute (restores backward compatibility). +- Issue #12319: Chunked transfer encoding support added to + http.client.HTTPConnection requests. The + urllib.request.AbstractHTTPHandler class does not enforce a Content-Length + header any more. If a HTTP request has a file or iterable body, but no + Content-Length header, the library now falls back to use chunked transfer- + encoding. -- Issue #25447: Copying the lru_cache() wrapper object now always works, - independedly from the type of the wrapped object (by returning the original - object unchanged). +- A new version of typing.py from https://github.com/python/typing: + - Collection (only for 3.6) (Issue #27598) + - Add FrozenSet to __all__ (upstream #261) + - fix crash in _get_type_vars() (upstream #259) + - Remove the dict constraint in ForwardRef._eval_type (upstream #252) -- Issue #24103: Fixed possible use after free in ElementTree.XMLPullParser. +- Issue #27832: Make ``_normalize`` parameter to ``Fraction`` constuctor + keyword-only, so that ``Fraction(2, 3, 4)`` now raises ``TypeError``. -- Issue #25860: os.fwalk() no longer skips remaining directories when error - occurs. Original patch by Samson Lee. +- Issue #27539: Fix unnormalised ``Fraction.__pow__`` result in the case + of negative exponent and negative base. -- Issue #25914: Fixed and simplified OrderedDict.__sizeof__. +- Issue #21718: cursor.description is now available for queries using CTEs. -- Issue #25902: Fixed various refcount issues in ElementTree iteration. +- Issue #27819: In distutils sdists, simply produce the "gztar" (gzipped tar + format) distributions on all platforms unless "formats" is supplied. -- Issue #25717: Restore the previous behaviour of tolerating most fstat() - errors when opening files. This was a regression in 3.5a1, and stopped - anonymous temporary files from working in special cases. +- Issue #2466: posixpath.ismount now correctly recognizes mount points which + the user does not have permission to access. -- Issue #24903: Fix regression in number of arguments compileall accepts when - '-d' is specified. The check on the number of arguments has been dropped - completely as it never worked correctly anyway. +- Issue #9998: On Linux, ctypes.util.find_library now looks in LD_LIBRARY_PATH + for shared libraries. -- Issue #25764: In the subprocess module, preserve any exception caused by - fork() failure when preexec_fn is used. +- Issue #27573: exit message for code.interact is now configurable. -- Issue #6478: _strptime's regexp cache now is reset after changing timezone - with time.tzset(). +- Issue #27930: Improved behaviour of logging.handlers.QueueListener. + Thanks to Paulo Andrade and Petr Viktorin for the analysis and patch. -- Issue #14285: When executing a package with the "python -m package" option, - and package initialization fails, a proper traceback is now reported. The - "runpy" module now lets exceptions from package initialization pass back to - the caller, rather than raising ImportError. +- Issue #6766: Distributed reference counting added to multiprocessing + to support nesting of shared values / proxy objects. -- Issue #19771: Also in runpy and the "-m" option, omit the irrelevant - message ". . . is a package and cannot be directly executed" if the package - could not even be initialized (e.g. due to a bad ``*.pyc`` file). +- Issue #21201: Improves readability of multiprocessing error message. Thanks + to Wojciech Walczak for patch. -- Issue #25177: Fixed problem with the mean of very small and very large - numbers. As a side effect, statistics.mean and statistics.variance should - be significantly faster. +- asyncio: Add set_protocol / get_protocol to Transports. -- Issue #25718: Fixed copying object with state with boolean value is false. +- Issue #27456: asyncio: Set TCP_NODELAY by default. -- Issue #10131: Fixed deep copying of minidom documents. Based on patch - by Marian Ganisin. +IDLE +---- -- Issue #25725: Fixed a reference leak in pickle.loads() when unpickling - invalid data including tuple instructions. +- Issue #15308: Add 'interrupt execution' (^C) to Shell menu. + Patch by Roger Serwy, updated by Bayard Randel. -- Issue #25663: In the Readline completer, avoid listing duplicate global - names, and search the global namespace before searching builtins. +- Issue #27922: Stop IDLE tests from 'flashing' gui widgets on the screen. -- Issue #25688: Fixed file leak in ElementTree.iterparse() raising an error. +- Issue #27891: Consistently group and sort imports within idlelib modules. -- Issue #23914: Fixed SystemError raised by unpickler on broken pickle data. +- Issue #17642: add larger font sizes for classroom projection. -- Issue #25691: Fixed crash on deleting ElementTree.Element attributes. +- Add version to title of IDLE help window. -- Issue #25624: ZipFile now always writes a ZIP_STORED header for directory - entries. Patch by Dingyuan Wang. +- Issue #25564: In section on IDLE -- console differences, mention that + using exec means that __builtins__ is defined for each statement. -- Skip getaddrinfo if host is already resolved. - Patch by A. Jesse Jiryu Davis. +- Issue #27821: Fix 3.6.0a3 regression that prevented custom key sets + from being selected when no custom theme was defined. -- Issue #26050: Add asyncio.StreamReader.readuntil() method. - Patch by Марк Коренберг. +C API +----- -- Issue #25924: Avoid unnecessary serialization of getaddrinfo(3) calls on - OS X versions 10.5 or higher. Original patch by A. Jesse Jiryu Davis. +- Issue #26900: Excluded underscored names and other private API from limited API. -- Issue #26406: Avoid unnecessary serialization of getaddrinfo(3) calls on - current versions of OpenBSD and NetBSD. Patch by A. Jesse Jiryu Davis. +- Issue #26027: Add support for path-like objects in PyUnicode_FSConverter() & + PyUnicode_FSDecoder(). -- Issue #26848: Fix asyncio/subprocess.communicate() to handle empty input. - Patch by Jack O'Connor. +Tests +----- -- Issue #27040: Add loop.get_exception_handler method +- Issue #27427: Additional tests for the math module. Patch by Francisco Couzo. -- Issue #27041: asyncio: Add loop.create_future method +- Issue #27953: Skip math and cmath tests that fail on OS X 10.4 due to a + poor libm implementation of tan. -- Issue #27223: asyncio: Fix _read_ready and _write_ready to respect - _conn_lost. - Patch by Łukasz Langa. +- Issue #26040: Improve test_math and test_cmath coverage and rigour. Patch by + Jeff Allen. -- Issue #22970: asyncio: Fix inconsistency cancelling Condition.wait. - Patch by David Coles. +- Issue #27787: Call gc.collect() before checking each test for "dangling + threads", since the dangling threads are weak references. -IDLE ----- +Build +----- -- Issue #5124: Paste with text selected now replaces the selection on X11. - This matches how paste works on Windows, Mac, most modern Linux apps, - and ttk widgets. Original patch by Serhiy Storchaka. +- Issue #27566: Fix clean target in freeze makefile (patch by Lisa Roach) -- Issue #24759: Make clear in idlelib.idle_test.__init__ that the directory - is a private implementation of test.test_idle and tool for maintainers. +- Issue #27705: Update message in validate_ucrtbase.py -- Issue #27196: Stop 'ThemeChanged' warnings when running IDLE tests. - These persisted after other warnings were suppressed in #20567. - Apply Serhiy Storchaka's update_idletasks solution to four test files. - Record this additional advice in idle_test/README.txt +- Issue #27976: Deprecate building _ctypes with the bundled copy of libffi on + non-OSX UNIX platforms. -- Issue #20567: Revise idle_test/README.txt with advice about avoiding - tk warning messages from tests. Apply advice to several IDLE tests. +- Issue #27983: Cause lack of llvm-profdata tool when using clang as + required for PGO linking to be a configure time error rather than + make time when --with-optimizations is enabled. Also improve our + ability to find the llvm-profdata tool on MacOS and some Linuxes. -- Issue #27117: Make colorizer htest and turtledemo work with dark themes. - Move code for configuring text widget colors to a new function. +- Issue #21590: Support for DTrace and SystemTap probes. -- Issue #26673: When tk reports font size as 0, change to size 10. - Such fonts on Linux prevented the configuration dialog from opening. +- Issue #26307: The profile-opt build now applies PGO to the built-in modules. -- Issue #21939: Add test for IDLE's percolator. - Original patch by Saimadhav Heblikar. +- Issue #26539: Add the --with-optimizations flag to turn on LTO and PGO build + support when available. -- Issue #21676: Add test for IDLE's replace dialog. - Original patch by Saimadhav Heblikar. +- Issue #27917: Set platform triplets for Android builds. -- Issue #18410: Add test for IDLE's search dialog. - Original patch by Westley Martínez. +- Issue #25825: Update references to the $(LIBPL) installation path on AIX. + This path was changed in 3.2a4. -- Issue #21703: Add test for IDLE's undo delegator. - Original patch by Saimadhav Heblikar . +- Update OS X installer to use SQLite 3.14.1 and XZ 5.2.2. -- Issue #27044: Add ConfigDialog.remove_var_callbacks to stop memory leaks. +- Issue #21122: Fix LTO builds on OS X. -- Issue #23977: Add more asserts to test_delegator. +- Issue #17128: Build OS X installer with a private copy of OpenSSL. + Also provide a sample Install Certificates command script to install a + set of root certificates from the third-party certifi module. -- Issue #20640: Add tests for idlelib.configHelpSourceEdit. - Patch by Saimadhav Heblikar. +Tools/Demos +----------- -- In the 'IDLE-console differences' section of the IDLE doc, clarify - how running with IDLE affects sys.modules and the standard streams. +- Issue #27952: Get Tools/scripts/fixcid.py working with Python 3 and the + current "re" module, avoid invalid Python backslash escapes, and fix a bug + parsing escaped C quote signs. -- Issue #25507: fix incorrect change in IOBinding that prevented printing. - Augment IOBinding htest to include all major IOBinding functions. +Windows +------- -- Issue #25905: Revert unwanted conversion of ' to ’ RIGHT SINGLE QUOTATION - MARK in README.txt and open this and NEWS.txt with 'ascii'. - Re-encode CREDITS.txt to utf-8 and open it with 'utf-8'. +- Issue #28065: Update xz dependency to 5.2.2 and build it from source. -Documentation -------------- +- Issue #25144: Ensures TargetDir is set before continuing with custom + install. -- Issue #19489: Moved the search box from the sidebar to the header and footer - of each page. Patch by Ammar Askar. +- Issue #1602: Windows console doesn't input or print Unicode (PEP 528) -- Issue #24136: Document the new PEP 448 unpacking syntax of 3.5. +- Issue #27781: Change file system encoding on Windows to UTF-8 (PEP 529) -- Issue #26736: Used HTTPS for external links in the documentation if possible. +- Issue #27731: Opt-out of MAX_PATH on Windows 10 -- Issue #6953: Rework the Readline module documentation to group related - functions together, and add more details such as what underlying Readline - functions and variables are accessed. +- Issue #6135: Adds encoding and errors parameters to subprocess. -- Issue #23606: Adds note to ctypes documentation regarding cdll.msvcrt. +- Issue #27959: Adds oem encoding, alias ansi to mbcs, move aliasmbcs to + codec lookup. -- Issue #25500: Fix documentation to not claim that __import__ is searched for - in the global scope. +- Issue #27982: The functions of the winsound module now accept keyword + arguments. -- Issue #26014: Update 3.x packaging documentation: - * "See also" links to the new docs are now provided in the legacy pages - * links to setuptools documentation have been updated +- Issue #20366: Build full text search support into SQLite on Windows. -Tests ------ +- Issue #27756: Adds new icons for Python files and processes on Windows. + Designs by Cherry Wang. -- Issue #21916: Added tests for the turtle module. Patch by ingrid, - Gregory Loyse and Jelle Zijlstra. +- Issue #27883: Update sqlite to 3.14.1.0 on Windows. -- Issue #26523: The multiprocessing thread pool (multiprocessing.dummy.Pool) - was untested. -- Issue #26015: Added new tests for pickling iterators of mutable sequences. +What's New in Python 3.6.0 alpha 4? +=================================== -- Issue #26325: Added test.support.check_no_resource_warning() to check that - no ResourceWarning is emitted. +*Release date: 2016-08-15* -- Issue #25940: Changed test_ssl to use self-signed.pythontest.net. This - avoids relying on svn.python.org, which recently changed root certificate. +Core and Builtins +----------------- -- Issue #25616: Tests for OrderedDict are extracted from test_collections - into separate file test_ordered_dict. +- Issue #27704: Optimized creating bytes and bytearray from byte-like objects + and iterables. Speed up to 3 times for short objects. Original patch by + Naoki Inada. -- Issue #26583: Skip test_timestamp_overflow in test_import if bytecode - files cannot be written. +- Issue #26823: Large sections of repeated lines in tracebacks are now + abbreviated as "[Previous line repeated {count} more times]" by the builtin + traceback rendering. Patch by Emanuel Barry. -Build ------ +- Issue #27574: Decreased an overhead of parsing keyword arguments in functions + implemented with using Argument Clinic. -- Issue #26884: Fix linking extension modules for cross builds. - Patch by Xavier de Gaye. +- Issue #22557: Now importing already imported modules is up to 2.5 times + faster. -- Issue #22359: Disable the rules for running _freeze_importlib and pgen when - cross-compiling. The output of these programs is normally saved with the - source code anyway, and is still regenerated when doing a native build. - Patch by Xavier de Gaye. +- Issue #17596: Include to help with Min GW building. -- Issue #27229: Fix the cross-compiling pgen rule for in-tree builds. Patch - by Xavier de Gaye. +- Issue #17599: On Windows, rename the privately defined REPARSE_DATA_BUFFER + structure to avoid conflicting with the definition from Min GW. -- Issue #21668: Link audioop, _datetime, _ctypes_test modules to libm, - except on Mac OS X. Patch written by Xavier de Gaye. +- Issue #27507: Add integer overflow check in bytearray.extend(). Patch by + Xiang Zhang. -- Issue #25702: A --with-lto configure option has been added that will - enable link time optimizations at build time during a make profile-opt. - Some compilers and toolchains are known to not produce stable code when - using LTO, be sure to test things thoroughly before relying on it. - It can provide a few % speed up over profile-opt alone. +- Issue #27581: Don't rely on wrapping for overflow check in + PySequence_Tuple(). Patch by Xiang Zhang. -- Issue #26624: Adds validation of ucrtbase[d].dll version with warning - for old versions. +- Issue #1621: Avoid signed integer overflow in list and tuple operations. + Patch by Xiang Zhang. -- Issue #17603: Avoid error about nonexistant fileblocks.o file by using a - lower-level check for st_blocks in struct stat. +- Issue #27419: Standard __import__() no longer look up "__import__" in globals + or builtins for importing submodules or "from import". Fixed a crash if + raise a warning about unabling to resolve package from __spec__ or + __package__. -- Issue #26079: Fixing the build output folder for tix-8.4.3.6. Patch by - Bjoern Thiel. +- Issue #27083: Respect the PYTHONCASEOK environment variable under Windows. -- Issue #26465: Update Windows builds to use OpenSSL 1.0.2g. +- Issue #27514: Make having too many statically nested blocks a SyntaxError + instead of SystemError. -- Issue #24421: Compile Modules/_math.c once, before building extensions. - Previously it could fail to compile properly if the math and cmath builds - were concurrent. +- Issue #27366: Implemented PEP 487 (Simpler customization of class creation). + Upon subclassing, the __init_subclass__ classmethod is called on the base + class. Descriptors are initialized with __set_name__ after class creation. -- Issue #25348: Added ``--pgo`` and ``--pgo-job`` arguments to - ``PCbuild\build.bat`` for building with Profile-Guided Optimization. The - old ``PCbuild\build_pgo.bat`` script is now deprecated, and simply calls - ``PCbuild\build.bat --pgo %*``. +Library +------- -- Issue #25827: Add support for building with ICC to ``configure``, including - a new ``--with-icc`` flag. +- Issue #26027, #27524: Add PEP 519/__fspath__() support to the os and os.path + modules. Includes code from Jelle Zijlstra. -- Issue #25696: Fix installation of Python on UNIX with make -j9. +- Issue #27598: Add Collections to collections.abc. + Patch by Ivan Levkivskyi, docs by Neil Girdhar. -- Issue #26930: Update OS X 10.5+ 32-bit-only installer to build - and link with OpenSSL 1.0.2h. +- Issue #25958: Support "anti-registration" of special methods from + various ABCs, like __hash__, __iter__ or __len__. All these (and + several more) can be set to None in an implementation class and the + behavior will be as if the method is not defined at all. + (Previously, this mechanism existed only for __hash__, to make + mutable classes unhashable.) Code contributed by Andrew Barnert and + Ivan Levkivskyi. -- Issue #26268: Update Windows builds to use OpenSSL 1.0.2f. +- Issue #16764: Support keyword arguments to zlib.decompress(). Patch by + Xiang Zhang. -- Issue #25136: Support Apple Xcode 7's new textual SDK stub libraries. +- Issue #27736: Prevent segfault after interpreter re-initialization due + to ref count problem introduced in code for Issue #27038 in 3.6.0a3. + Patch by Xiang Zhang. -- Issue #24324: Do not enable unreachable code warnings when using - gcc as the option does not work correctly in older versions of gcc - and has been silently removed as of gcc-4.5. +- Issue #25628: The *verbose* and *rename* parameters for + collections.namedtuple are now keyword-only. -Windows -------- +- Issue #12345: Add mathematical constant tau to math and cmath. See also + PEP 628. -- Issue #27053: Updates make_zip.py to correctly generate library ZIP file. +- Issue #26823: traceback.StackSummary.format now abbreviates large sections of + repeated lines as "[Previous line repeated {count} more times]" (this change + then further affects other traceback display operations in the module). Patch + by Emanuel Barry. -- Issue #26268: Update the prepare_ssl.py script to handle OpenSSL releases - that don't include the contents of the include directory (that is, 1.0.2e - and later). +- Issue #27664: Add to concurrent.futures.thread.ThreadPoolExecutor() + the ability to specify a thread name prefix. -- Issue #26071: bdist_wininst created binaries fail to start and find - 32bit Python +- Issue #27181: Add geometric_mean and harmonic_mean to statistics module. -- Issue #26073: Update the list of magic numbers in launcher +- Issue #27573: code.interact now prints an message when exiting. -- Issue #26065: Excludes venv from library when generating embeddable - distro. +- Issue #6422: Add autorange method to timeit.Timer objects. -Tools/Demos ------------ +- Issue #27773: Correct some memory management errors server_hostname in + _ssl.wrap_socket(). -- Issue #26799: Fix python-gdb.py: don't get C types once when the Python code - is loaded, but get C types on demand. The C types can change if - python-gdb.py is loaded before the Python executable. Patch written by Thomas - Ilsche. +- Issue #26750: unittest.mock.create_autospec() now works properly for + subclasses of property() and other data descriptors. Removes the never + publicly used, never documented unittest.mock.DescriptorTypes tuple. -- Issue #26271: Fix the Freeze tool to properly use flags passed through - configure. Patch by Daniel Shaulov. +- Issue #26754: Undocumented support of general bytes-like objects + as path in compile() and similar functions is now deprecated. -- Issue #26489: Add dictionary unpacking support to Tools/parser/unparse.py. - Patch by Guo Ci Teo. +- Issue #26800: Undocumented support of general bytes-like objects + as paths in os functions is now deprecated. -- Issue #26316: Fix variable name typo in Argument Clinic. +- Issue #26981: Add _order_ compatibility shim to enum.Enum for + Python 2/3 code bases. -Misc ----- +- Issue #27661: Added tzinfo keyword argument to datetime.combine. -- Issue #17500, and https://github.com/python/pythondotorg/issues/945: Remove - unused and outdated icons. +- In the curses module, raise an error if window.getstr() or window.instr() is + passed a negative value. +- Issue #27783: Fix possible usage of uninitialized memory in + operator.methodcaller. -What's New in Python 3.5.1 final? -================================= +- Issue #27774: Fix possible Py_DECREF on unowned object in _sre. -Release date: 2015-12-06 +- Issue #27760: Fix possible integer overflow in binascii.b2a_qp. -Core and Builtins ------------------ +- Issue #27758: Fix possible integer overflow in the _csv module for large + record lengths. -- Issue #25709: Fixed problem with in-place string concatenation and - utf-8 cache. +- Issue #27568: Prevent HTTPoxy attack (CVE-2016-1000110). Ignore the + HTTP_PROXY variable when REQUEST_METHOD environment is set, which indicates + that the script is in CGI mode. -Windows -------- +- Issue #7063: Remove dead code from the "array" module's slice handling. + Patch by Chuck. -- Issue #25715: Python 3.5.1 installer shows wrong upgrade path and incorrect - logic for launcher detection. +- Issue #27656: Do not assume sched.h defines any SCHED_* constants. +- Issue #27130: In the "zlib" module, fix handling of large buffers + (typically 4 GiB) when compressing and decompressing. Previously, inputs + were limited to 4 GiB, and compression and decompression operations did not + properly handle results of 4 GiB. -What's New in Python 3.5.1 release candidate 1? -=============================================== +- Issue #24773: Implemented PEP 495 (Local Time Disambiguation). -Release date: 2015-11-22 +- Expose the EPOLLEXCLUSIVE constant (when it is defined) in the select module. -Core and Builtins ------------------ +- Issue #27567: Expose the EPOLLRDHUP and POLLRDHUP constants in the select + module. -- Issue #25630: Fix a possible segfault during argument parsing in functions - that accept filesystem paths. +- Issue #1621: Avoid signed int negation overflow in the "audioop" module. -- Issue #23564: Fixed a partially broken sanity check in the _posixsubprocess - internals regarding how fds_to_pass were passed to the child. The bug had - no actual impact as subprocess.py already avoided it. +- Issue #27533: Release GIL in nt._isdir -- Issue #25388: Fixed tokenizer crash when processing undecodable source code - with a null byte. +- Issue #17711: Fixed unpickling by the persistent ID with protocol 0. + Original patch by Alexandre Vassalotti. -- Issue #25462: The hash of the key now is calculated only once in most - operations in C implementation of OrderedDict. +- Issue #27522: Avoid an unintentional reference cycle in email.feedparser. -- Issue #22995: Default implementation of __reduce__ and __reduce_ex__ now - rejects builtin types with not defined __new__. +- Issue #27512: Fix a segfault when os.fspath() called an __fspath__() method + that raised an exception. Patch by Xiang Zhang. -- Issue #25555: Fix parser and AST: fill lineno and col_offset of "arg" node - when compiling AST from Python objects. +IDLE +---- -- Issue #24802: Avoid buffer overreads when int(), float(), compile(), exec() - and eval() are passed bytes-like objects. These objects are not - necessarily terminated by a null byte, but the functions assumed they were. +- Issue #27714: text_textview and test_autocomplete now pass when re-run + in the same process. This occurs when test_idle fails when run with the + -w option but without -jn. Fix warning from test_config. -- Issue #24726: Fixed a crash and leaking NULL in repr() of OrderedDict that - was mutated by direct calls of dict methods. +- Issue #27621: Put query response validation error messages in the query + box itself instead of in a separate massagebox. Redo tests to match. + Add Mac OSX refinements. Original patch by Mark Roseman. -- Issue #25449: Iterating OrderedDict with keys with unstable hash now raises - KeyError in C implementations as well as in Python implementation. +- Issue #27620: Escape key now closes Query box as cancelled. -- Issue #25395: Fixed crash when highly nested OrderedDict structures were - garbage collected. +- Issue #27609: IDLE: tab after initial whitespace should tab, not + autocomplete. This fixes problem with writing docstrings at least + twice indented. -- Issue #25274: sys.setrecursionlimit() now raises a RecursionError if the new - recursion limit is too low depending at the current recursion depth. Modify - also the "lower-water mark" formula to make it monotonic. This mark is used - to decide when the overflowed flag of the thread state is reset. +- Issue #27609: Explicitly return None when there are also non-None + returns. In a few cases, reverse a condition and eliminate a return. -- Issue #24402: Fix input() to prompt to the redirected stdout when - sys.stdout.fileno() fails. +- Issue #25507: IDLE no longer runs buggy code because of its tkinter imports. + Users must include the same imports required to run directly in Python. -- Issue #24806: Prevent builtin types that are not allowed to be subclassed from - being subclassed through multiple inheritance. +- Issue #27173: Add 'IDLE Modern Unix' to the built-in key sets. + Make the default key set depend on the platform. + Add tests for the changes to the config module. -- Issue #24848: Fixed a number of bugs in UTF-7 decoding of misformed data. +- Issue #27452: add line counter and crc to IDLE configHandler test dump. -- Issue #25280: Import trace messages emitted in verbose (-v) mode are no - longer formatted twice. +Tests +----- -- Issue #25003: On Solaris 11.3 or newer, os.urandom() now uses the - getrandom() function instead of the getentropy() function. The getentropy() - function is blocking to generate very good quality entropy, os.urandom() - doesn't need such high-quality entropy. +- Issue #25805: Skip a test in test_pkgutil as needed that doesn't work when + ``__name__ == __main__``. Patch by SilentGhost. -- Issue #25182: The stdprinter (used as sys.stderr before the io module is - imported at startup) now uses the backslashreplace error handler. +- Issue #27472: Add test.support.unix_shell as the path to the default shell. -- Issue #25131: Make the line number and column offset of set/dict literals and - comprehensions correspond to the opening brace. +- Issue #27369: In test_pyexpat, avoid testing an error message detail that + changed in Expat 2.2.0. -- Issue #25150: Hide the private _Py_atomic_xxx symbols from the public - Python.h header to fix a compilation error with OpenMP. PyThreadState_GET() - becomes an alias to PyThreadState_Get() to avoid ABI incompatibilies. +- Issue #27594: Prevent assertion error when running test_ast with coverage + enabled: ensure code object has a valid first line number. + Patch suggested by Ivan Levkivskyi. -Library +Windows ------- -- Issue #25626: Change three zlib functions to accept sizes that fit in - Py_ssize_t, but internally cap those sizes to UINT_MAX. This resolves a - regression in 3.5 where GzipFile.read() failed to read chunks larger than 2 - or 4 GiB. The change affects the zlib.Decompress.decompress() max_length - parameter, the zlib.decompress() bufsize parameter, and the - zlib.Decompress.flush() length parameter. +- Issue #27647: Update bundled Tcl/Tk to 8.6.6. -- Issue #25583: Avoid incorrect errors raised by os.makedirs(exist_ok=True) - when the OS gives priority to errors such as EACCES over EEXIST. +- Issue #27610: Adds PEP 514 metadata to Windows installer -- Issue #25593: Change semantics of EventLoop.stop() in asyncio. +- Issue #27469: Adds a shell extension to the launcher so that drag and drop + works correctly. -- Issue #6973: When we know a subprocess.Popen process has died, do - not allow the send_signal(), terminate(), or kill() methods to do - anything as they could potentially signal a different process. +- Issue #27309: Enables proper Windows styles in python[w].exe manifest. -- Issue #25590: In the Readline completer, only call getattr() once per - attribute. +Build +----- -- Issue #25498: Fix a crash when garbage-collecting ctypes objects created - by wrapping a memoryview. This was a regression made in 3.5a1. Based - on patch by Eryksun. +- Issue #27713: Suppress spurious build warnings when updating importlib's + bootstrap files. Patch by Xiang Zhang -- Issue #25584: Added "escape" to the __all__ list in the glob module. +- Issue #25825: Correct the references to Modules/python.exp, which is + required on AIX. The references were accidentally changed in 3.5.0a1. -- Issue #25584: Fixed recursive glob() with patterns starting with '\*\*'. +- Issue #27453: CPP invocation in configure must use CPPFLAGS. Patch by + Chi Hsuan Yen. -- Issue #25446: Fix regression in smtplib's AUTH LOGIN support. +- Issue #27641: The configure script now inserts comments into the makefile + to prevent the pgen and _freeze_importlib executables from being cross- + compiled. -- Issue #18010: Fix the pydoc web server's module search function to handle - exceptions from importing packages. +- Issue #26662: Set PYTHON_FOR_GEN in configure as the Python program to be + used for file generation during the build. -- Issue #25554: Got rid of circular references in regular expression parsing. +- Issue #10910: Avoid C++ compilation errors on FreeBSD and OS X. + Also update FreedBSD version checks for the original ctype UTF-8 workaround. -- Issue #25510: fileinput.FileInput.readline() now returns b'' instead of '' - at the end if the FileInput was opened with binary mode. - Patch by Ryosuke Ito. -- Issue #25503: Fixed inspect.getdoc() for inherited docstrings of properties. - Original patch by John Mark Vandenberg. +What's New in Python 3.6.0 alpha 3? +=================================== -- Issue #25515: Always use os.urandom as a source of randomness in uuid.uuid4. +*Release date: 2016-07-11* -- Issue #21827: Fixed textwrap.dedent() for the case when largest common - whitespace is a substring of smallest leading whitespace. - Based on patch by Robert Li. +Core and Builtins +----------------- -- Issue #25447: The lru_cache() wrapper objects now can be copied and pickled - (by returning the original object unchanged). +- Issue #27473: Fixed possible integer overflow in bytes and bytearray + concatenations. Patch by Xiang Zhang. -- Issue #25390: typing: Don't crash on Union[str, Pattern]. +- Issue #23034: The output of a special Python build with defined COUNT_ALLOCS, + SHOW_ALLOC_COUNT or SHOW_TRACK_COUNT macros is now off by default. It can + be re-enabled using the "-X showalloccount" option. It now outputs to stderr + instead of stdout. -- Issue #25441: asyncio: Raise error from drain() when socket is closed. +- Issue #27443: __length_hint__() of bytearray iterators no longer return a + negative integer for a resized bytearray. -- Issue #25410: Cleaned up and fixed minor bugs in C implementation of - OrderedDict. +- Issue #27007: The fromhex() class methods of bytes and bytearray subclasses + now return an instance of corresponding subclass. -- Issue #25411: Improved Unicode support in SMTPHandler through better use of - the email package. Thanks to user simon04 for the patch. +Library +------- -- Issue #25407: Remove mentions of the formatter module being removed in - Python 3.6. +- Issue #26844: Fix error message for imp.find_module() to refer to 'path' + instead of 'name'. Patch by Lev Maximov. -- Issue #25406: Fixed a bug in C implementation of OrderedDict.move_to_end() - that caused segmentation fault or hang in iterating after moving several - items to the start of ordered dict. +- Issue #23804: Fix SSL zero-length recv() calls to not block and not raise + an error about unclean EOF. -- Issue #25364: zipfile now works in threads disabled builds. +- Issue #27466: Change time format returned by http.cookie.time2netscape, + confirming the netscape cookie format and making it consistent with + documentation. -- Issue #25328: smtpd's SMTPChannel now correctly raises a ValueError if both - decode_data and enable_SMTPUTF8 are set to true. +- Issue #21708: Deprecated dbm.dumb behavior that differs from common dbm + behavior: creating a database in 'r' and 'w' modes and modifying a database + in 'r' mode. -- Issue #25316: distutils raises OSError instead of DistutilsPlatformError - when MSVC is not installed. +- Issue #26721: Change the socketserver.StreamRequestHandler.wfile attribute + to implement BufferedIOBase. In particular, the write() method no longer + does partial writes. -- Issue #25380: Fixed protocol for the STACK_GLOBAL opcode in - pickletools.opcodes. +- Issue #22115: Added methods trace_add, trace_remove and trace_info in the + tkinter.Variable class. They replace old methods trace_variable, trace, + trace_vdelete and trace_vinfo that use obsolete Tcl commands and might + not work in future versions of Tcl. Fixed old tracing methods: + trace_vdelete() with wrong mode no longer break tracing, trace_vinfo() now + always returns a list of pairs of strings, tracing in the "u" mode now works. -- Issue #23972: Updates asyncio datagram create method allowing reuseport - and reuseaddr socket options to be set prior to binding the socket. - Mirroring the existing asyncio create_server method the reuseaddr option - for datagram sockets defaults to True if the O/S is 'posix' (except if the - platform is Cygwin). Patch by Chris Laws. +- Issue #26243: Only the level argument to zlib.compress() is keyword argument + now. The first argument is positional-only. -- Issue #25304: Add asyncio.run_coroutine_threadsafe(). This lets you - submit a coroutine to a loop from another thread, returning a - concurrent.futures.Future. By Vincent Michel. +- Issue #27038: Expose the DirEntry type as os.DirEntry. Code patch by + Jelle Zijlstra. -- Issue #25232: Fix CGIRequestHandler to split the query from the URL at the - first question mark (?) rather than the last. Patch from Xiang Zhang. +- Issue #27186: Update os.fspath()/PyOS_FSPath() to check the return value of + __fspath__() to be either str or bytes. -- Issue #24657: Prevent CGIRequestHandler from collapsing slashes in the - query part of the URL as if it were a path. Patch from Xiang Zhang. +- Issue #18726: All optional parameters of the dump(), dumps(), + load() and loads() functions and JSONEncoder and JSONDecoder class + constructors in the json module are now keyword-only. -- Issue #24483: C implementation of functools.lru_cache() now calculates key's - hash only once. +- Issue #27319: Methods selection_set(), selection_add(), selection_remove() + and selection_toggle() of ttk.TreeView now allow passing multiple items as + multiple arguments instead of passing them as a tuple. Deprecated + undocumented ability of calling the selection() method with arguments. -- Issue #22958: Constructor and update method of weakref.WeakValueDictionary - now accept the self and the dict keyword arguments. +- Issue #27079: Fixed curses.ascii functions isblank(), iscntrl() and ispunct(). -- Issue #22609: Constructor of collections.UserDict now accepts the self keyword - argument. +- Issue #27294: Numerical state in the repr for Tkinter event objects is now + represented as a combination of known flags. -- Issue #25111: Fixed comparison of traceback.FrameSummary. +- Issue #27177: Match objects in the re module now support index-like objects + as group indices. Based on patches by Jeroen Demeyer and Xiang Zhang. -- Issue #25262: Added support for BINBYTES8 opcode in Python implementation of - unpickler. Highest 32 bits of 64-bit size for BINUNICODE8 and BINBYTES8 - opcodes no longer silently ignored on 32-bit platforms in C implementation. +- Issue #26754: Some functions (compile() etc) accepted a filename argument + encoded as an iterable of integers. Now only strings and byte-like objects + are accepted. -- Issue #25034: Fix string.Formatter problem with auto-numbering and - nested format_specs. Patch by Anthon van der Neut. +- Issue #26536: socket.ioctl now supports SIO_LOOPBACK_FAST_PATH. Patch by + Daniel Stokes. -- Issue #25233: Rewrite the guts of asyncio.Queue and - asyncio.Semaphore to be more understandable and correct. +- Issue #27048: Prevents distutils failing on Windows when environment + variables contain non-ASCII characters -- Issue #25203: Failed readline.set_completer_delims() no longer left the - module in inconsistent state. +- Issue #27330: Fixed possible leaks in the ctypes module. -- Issue #23600: Default implementation of tzinfo.fromutc() was returning - wrong results in some cases. +- Issue #27238: Got rid of bare excepts in the turtle module. Original patch + by Jelle Zijlstra. -- Issue #23329: Allow the ssl module to be built with older versions of - LibreSSL. +- Issue #27122: When an exception is raised within the context being managed + by a contextlib.ExitStack() and one of the exit stack generators + catches and raises it in a chain, do not re-raise the original exception + when exiting, let the new chained one through. This avoids the PEP 479 + bug described in issue25782. -- Prevent overflow in _Unpickler_Read. +- [Security] Issue #27278: Fix os.urandom() implementation using getrandom() on + Linux. Truncate size to INT_MAX and loop until we collected enough random + bytes, instead of casting a directly Py_ssize_t to int. -- Issue #25047: The XML encoding declaration written by Element Tree now - respects the letter case given by the user. This restores the ability to - write encoding names in uppercase like "UTF-8", which worked in Python 2. +- Issue #16864: sqlite3.Cursor.lastrowid now supports REPLACE statement. + Initial patch by Alex LordThorsen. -- Issue #25135: Make deque_clear() safer by emptying the deque before clearing. - This helps avoid possible reentrancy issues. +- Issue #26386: Fixed ttk.TreeView selection operations with item id's + containing spaces. -- Issue #19143: platform module now reads Windows version from kernel32.dll to - avoid compatibility shims. +- Issue #8637: Honor a pager set by the env var MANPAGER (in preference to + one set by the env var PAGER). -- Issue #25092: Fix datetime.strftime() failure when errno was already set to - EINVAL. +- [Security] Issue #22636: Avoid shell injection problems with + ctypes.util.find_library(). -- Issue #23517: Fix rounding in fromtimestamp() and utcfromtimestamp() methods - of datetime.datetime: microseconds are now rounded to nearest with ties - going to nearest even integer (ROUND_HALF_EVEN), instead of being rounding - towards minus infinity (ROUND_FLOOR). It's important that these methods use - the same rounding mode than datetime.timedelta to keep the property: - (datetime(1970,1,1) + timedelta(seconds=t)) == datetime.utcfromtimestamp(t). - It also the rounding mode used by round(float) for example. +- Issue #16182: Fix various functions in the "readline" module to use the + locale encoding, and fix get_begidx() and get_endidx() to return code point + indexes. -- Issue #25155: Fix datetime.datetime.now() and datetime.datetime.utcnow() on - Windows to support date after year 2038. It was a regression introduced in - Python 3.5.0. +- Issue #27392: Add loop.connect_accepted_socket(). + Patch by Jim Fulton. -- Issue #25108: Omitted internal frames in traceback functions print_stack(), - format_stack(), and extract_stack() called without arguments. +IDLE +---- -- Issue #25118: Fix a regression of Python 3.5.0 in os.waitpid() on Windows. +- Issue #27477: IDLE search dialogs now use ttk widgets. -- Issue #24684: socket.socket.getaddrinfo() now calls - PyUnicode_AsEncodedString() instead of calling the encode() method of the - host, to handle correctly custom string with an encode() method which doesn't - return a byte string. The encoder of the IDNA codec is now called directly - instead of calling the encode() method of the string. +- Issue #27173: Add 'IDLE Modern Unix' to the built-in key sets. + Make the default key set depend on the platform. + Add tests for the changes to the config module. -- Issue #25060: Correctly compute stack usage of the BUILD_MAP opcode. +- Issue #27452: make command line "idle-test> python test_help.py" work. + __file__ is relative when python is started in the file's directory. -- Issue #24857: Comparing call_args to a long sequence now correctly returns a - boolean result instead of raising an exception. Patch by A Kaptur. +- Issue #27452: add line counter and crc to IDLE configHandler test dump. -- Issue #23144: Make sure that HTMLParser.feed() returns all the data, even - when convert_charrefs is True. +- Issue #27380: IDLE: add query.py with base Query dialog and ttk widgets. + Module had subclasses SectionName, ModuleName, and HelpSource, which are + used to get information from users by configdialog and file =>Load Module. + Each subclass has itw own validity checks. Using ModuleName allows users + to edit bad module names instead of starting over. + Add tests and delete the two files combined into the new one. -- Issue #24982: shutil.make_archive() with the "zip" format now adds entries - for directories (including empty directories) in ZIP file. +- Issue #27372: Test_idle no longer changes the locale. -- Issue #25019: Fixed a crash caused by setting non-string key of expat parser. - Based on patch by John Leitch. +- Issue #27365: Allow non-ascii chars in IDLE NEWS.txt, for contributor names. -- Issue #16180: Exit pdb if file has syntax error, instead of trapping user - in an infinite loop. Patch by Xavier de Gaye. +- Issue #27245: IDLE: Cleanly delete custom themes and key bindings. + Previously, when IDLE was started from a console or by import, a cascade + of warnings was emitted. Patch by Serhiy Storchaka. -- Issue #24891: Fix a race condition at Python startup if the file descriptor - of stdin (0), stdout (1) or stderr (2) is closed while Python is creating - sys.stdin, sys.stdout and sys.stderr objects. These attributes are now set - to None if the creation of the object failed, instead of raising an OSError - exception. Initial patch written by Marco Paolini. +- Issue #24137: Run IDLE, test_idle, and htest with tkinter default root + disabled. Fix code and tests that fail with this restriction. Fix htests to + not create a second and redundant root and mainloop. -- Issue #24992: Fix error handling and a race condition (related to garbage - collection) in collections.OrderedDict constructor. +- Issue #27310: Fix IDLE.app failure to launch on OS X due to vestigial import. -- Issue #24881: Fixed setting binary mode in Python implementation of FileIO - on Windows and Cygwin. Patch from Akira Li. +C API +----- -- Issue #25578: Fix (another) memory leak in SSLSocket.getpeercer(). +- Issue #26754: PyUnicode_FSDecoder() accepted a filename argument encoded as + an iterable of integers. Now only strings and byte-like objects are accepted. -- Issue #25530: Disable the vulnerable SSLv3 protocol by default when creating - ssl.SSLContext. +Build +----- -- Issue #25569: Fix memory leak in SSLSocket.getpeercert(). +- Issue #28066: Fix the logic that searches build directories for generated + include files when building outside the source tree. -- Issue #25471: Sockets returned from accept() shouldn't appear to be - nonblocking. +- Issue #27442: Expose the Android API level that python was built against, in + sysconfig.get_config_vars() as 'ANDROID_API_LEVEL'. -- Issue #25319: When threading.Event is reinitialized, the underlying condition - should use a regular lock rather than a recursive lock. +- Issue #27434: The interpreter that runs the cross-build, found in PATH, must + now be of the same feature version (e.g. 3.6) as the source being built. -- Issue #21112: Fix regression in unittest.expectedFailure on subclasses. - Patch from Berker Peksag. +- Issue #26930: Update Windows builds to use OpenSSL 1.0.2h. -- Issue #24764: cgi.FieldStorage.read_multi() now ignores the Content-Length - header in part headers. Patch written by Peter Landry and reviewed by Pierre - Quentel. +- Issue #23968: Rename the platform directory from plat-$(MACHDEP) to + plat-$(PLATFORM_TRIPLET). + Rename the config directory (LIBPL) from config-$(LDVERSION) to + config-$(LDVERSION)-$(PLATFORM_TRIPLET). + Install the platform specifc _sysconfigdata module into the platform + directory and rename it to include the ABIFLAGS. -- Issue #24913: Fix overrun error in deque.index(). - Found by John Leitch and Bryce Darling. +- Don't use largefile support for GNU/Hurd. -- Issue #24774: Fix docstring in http.server.test. Patch from Chiu-Hsiang Hsu. +Tools/Demos +----------- -- Issue #21159: Improve message in configparser.InterpolationMissingOptionError. - Patch from Łukasz Langa. +- Issue #27332: Fixed the type of the first argument of module-level functions + generated by Argument Clinic. Patch by Petr Viktorin. -- Issue #20362: Honour TestCase.longMessage correctly in assertRegex. - Patch from Ilia Kurenkov. +- Issue #27418: Fixed Tools/importbench/importbench.py. -- Issue #23572: Fixed functools.singledispatch on classes with falsy - metaclasses. Patch by Ethan Furman. +Documentation +------------- -- asyncio: ensure_future() now accepts awaitable objects. +- Issue #19489: Moved the search box from the sidebar to the header and footer + of each page. Patch by Ammar Askar. -IDLE ----- +- Issue #27285: Update documentation to reflect the deprecation of ``pyvenv`` + and normalize on the term "virtual environment". Patch by Steve Piercy. -- Issue #15348: Stop the debugger engine (normally in a user process) - before closing the debugger window (running in the IDLE process). - This prevents the RuntimeErrors that were being caught and ignored. +Tests +----- -- Issue #24455: Prevent IDLE from hanging when a) closing the shell while the - debugger is active (15347); b) closing the debugger with the [X] button - (15348); and c) activating the debugger when already active (24455). - The patch by Mark Roseman does this by making two changes. - 1. Suspend and resume the gui.interaction method with the tcl vwait - mechanism intended for this purpose (instead of root.mainloop & .quit). - 2. In gui.run, allow any existing interaction to terminate first. +- Issue #27027: Added test.support.is_android that is True when this is an + Android build. -- Change 'The program' to 'Your program' in an IDLE 'kill program?' message - to make it clearer that the program referred to is the currently running - user program, not IDLE itself. -- Issue #24750: Improve the appearance of the IDLE editor window status bar. - Patch by Mark Roseman. +What's New in Python 3.6.0 alpha 2? +=================================== -- Issue #25313: Change the handling of new built-in text color themes to better - address the compatibility problem introduced by the addition of IDLE Dark. - Consistently use the revised idleConf.CurrentTheme everywhere in idlelib. +*Release date: 2016-06-13* -- Issue #24782: Extension configuration is now a tab in the IDLE Preferences - dialog rather than a separate dialog. The former tabs are now a sorted - list. Patch by Mark Roseman. +Core and Builtins +----------------- -- Issue #22726: Re-activate the config dialog help button with some content - about the other buttons and the new IDLE Dark theme. +- Issue #27095: Simplified MAKE_FUNCTION and removed MAKE_CLOSURE opcodes. + Patch by Demur Rumed. -- Issue #24820: IDLE now has an 'IDLE Dark' built-in text color theme. - It is more or less IDLE Classic inverted, with a cobalt blue background. - Strings, comments, keywords, ... are still green, red, orange, ... . - To use it with IDLEs released before November 2015, hit the - 'Save as New Custom Theme' button and enter a new name, - such as 'Custom Dark'. The custom theme will work with any IDLE - release, and can be modified. +- Issue #27190: Raise NotSupportedError if sqlite3 is older than 3.3.1. + Patch by Dave Sawyer. -- Issue #25224: README.txt is now an idlelib index for IDLE developers and - curious users. The previous user content is now in the IDLE doc chapter. - 'IDLE' now means 'Integrated Development and Learning Environment'. +- Issue #27286: Fixed compiling BUILD_MAP_UNPACK_WITH_CALL opcode. Calling + function with generalized unpacking (PEP 448) and conflicting keyword names + could cause undefined behavior. -- Issue #24820: Users can now set breakpoint colors in - Settings -> Custom Highlighting. Original patch by Mark Roseman. +- Issue #27140: Added BUILD_CONST_KEY_MAP opcode. -- Issue #24972: Inactive selection background now matches active selection - background, as configured by users, on all systems. Found items are now - always highlighted on Windows. Initial patch by Mark Roseman. +- Issue #27186: Add support for os.PathLike objects to open() (part of PEP 519). -- Issue #24570: Idle: make calltip and completion boxes appear on Macs - affected by a tk regression. Initial patch by Mark Roseman. +- Issue #27066: Fixed SystemError if a custom opener (for open()) returns a + negative number without setting an exception. -- Issue #24988: Idle ScrolledList context menus (used in debugger) - now work on Mac Aqua. Patch by Mark Roseman. +- Issue #26983: float() now always return an instance of exact float. + The deprecation warning is emitted if __float__ returns an instance of + a strict subclass of float. In a future versions of Python this can + be an error. -- Issue #24801: Make right-click for context menu work on Mac Aqua. - Patch by Mark Roseman. +- Issue #27097: Python interpreter is now about 7% faster due to optimized + instruction decoding. Based on patch by Demur Rumed. -- Issue #25173: Associate tkinter messageboxes with a specific widget. - For Mac OSX, make them a 'sheet'. Patch by Mark Roseman. +- Issue #26647: Python interpreter now uses 16-bit wordcode instead of bytecode. + Patch by Demur Rumed. -- Issue #25198: Enhance the initial html viewer now used for Idle Help. - * Properly indent fixed-pitch text (patch by Mark Roseman). - * Give code snippet a very Sphinx-like light blueish-gray background. - * Re-use initial width and height set by users for shell and editor. - * When the Table of Contents (TOC) menu is used, put the section header - at the top of the screen. +- Issue #23275: Allow assigning to an empty target list in round brackets: + () = iterable. -- Issue #25225: Condense and rewrite Idle doc section on text colors. +- Issue #27243: Update the __aiter__ protocol: instead of returning + an awaitable that resolves to an asynchronous iterator, the asynchronous + iterator should be returned directly. Doing the former will trigger a + PendingDeprecationWarning. -- Issue #21995: Explain some differences between IDLE and console Python. -- Issue #22820: Explain need for *print* when running file from Idle editor. +Library +------- -- Issue #25224: Doc: augment Idle feature list and no-subprocess section. +- Comment out socket (SO_REUSEPORT) and posix (O_SHLOCK, O_EXLOCK) constants + exposed on the API which are not implemented on GNU/Hurd. They would not + work at runtime anyway. -- Issue #25219: Update doc for Idle command line options. - Some were missing and notes were not correct. +- Issue #27025: Generated names for Tkinter widgets are now more meanful + and recognizirable. -- Issue #24861: Most of idlelib is private and subject to change. - Use idleib.idle.* to start Idle. See idlelib.__init__.__doc__. +- Issue #25455: Fixed crashes in repr of recursive ElementTree.Element and + functools.partial objects. -- Issue #25199: Idle: add synchronization comments for future maintainers. +- Issue #27294: Improved repr for Tkinter event objects. -- Issue #16893: Replace help.txt with help.html for Idle doc display. - The new idlelib/help.html is rstripped Doc/build/html/library/idle.html. - It looks better than help.txt and will better document Idle as released. - The tkinter html viewer that works for this file was written by Mark Roseman. - The now unused EditorWindow.HelpDialog class and helt.txt file are deprecated. +- Issue #20508: Improve exception message of IPv{4,6}Network.__getitem__. + Patch by Gareth Rees. -- Issue #24199: Deprecate unused idlelib.idlever with possible removal in 3.6. +- [Security] Issue #26556: Update expat to 2.1.1, fixes CVE-2015-1283. -- Issue #24790: Remove extraneous code (which also create 2 & 3 conflicts). +- [Security] Fix TLS stripping vulnerability in smtplib, CVE-2016-0772. + Reported by Team Oststrom. -Documentation -------------- +- Issue #21386: Implement missing IPv4Address.is_global property. It was + documented since 07a5610bae9d. Initial patch by Roger Luethi. -- Issue #22558: Add remaining doc links to source code for Python-coded modules. - Patch by Yoni Lavi. +- Issue #27029: Removed deprecated support of universal newlines mode from + ZipFile.open(). -- Issue #12067: Rewrite Comparisons section in the Expressions chapter of the - language reference. Some of the details of comparing mixed types were - incorrect or ambiguous. NotImplemented is only relevant at a lower level - than the Expressions chapter. Added details of comparing range() objects, - and default behaviour and consistency suggestions for user-defined classes. - Patch from Andy Maier. +- Issue #27030: Unknown escapes consisting of ``'\'`` and an ASCII letter in + regular expressions now are errors. The re.LOCALE flag now can be used + only with bytes patterns. -- Issue #24952: Clarify the default size argument of stack_size() in - the "threading" and "_thread" modules. Patch from Mattip. +- Issue #27186: Add os.PathLike support to DirEntry (part of PEP 519). + Initial patch by Jelle Zijlstra. -- Issue #23725: Overhaul tempfile docs. Note deprecated status of mktemp. - Patch from Zbigniew Jędrzejewski-Szmek. +- Issue #20900: distutils register command now decodes HTTP responses + correctly. Initial patch by ingrid. -- Issue #24808: Update the types of some PyTypeObject fields. Patch by - Joseph Weston. +- Issue #27186: Add os.PathLike support to pathlib, removing its provisional + status (part of PEP 519). Initial patch by Dusty Phillips. -- Issue #22812: Fix unittest discovery examples. - Patch from Pam McA'Nulty. +- Issue #27186: Add support for os.PathLike objects to os.fsencode() and + os.fsdecode() (part of PEP 519). -Tests ------ +- Issue #27186: Introduce os.PathLike and os.fspath() (part of PEP 519). -- Issue #25449: Added tests for OrderedDict subclasses. +- A new version of typing.py provides several new classes and + features: @overload outside stubs, Reversible, DefaultDict, Text, + ContextManager, Type[], NewType(), TYPE_CHECKING, and numerous bug + fixes (note that some of the new features are not yet implemented in + mypy or other static analyzers). Also classes for PEP 492 + (Awaitable, AsyncIterable, AsyncIterator) have been added (in fact + they made it into 3.5.1 but were never mentioned). -- Issue #25099: Make test_compileall not fail when an entry on sys.path cannot - be written to (commonly seen in administrative installs on Windows). +- Issue #25738: Stop http.server.BaseHTTPRequestHandler.send_error() from + sending a message body for 205 Reset Content. Also, don't send Content + header fields in responses that don't have a body. Patch by Susumu + Koshiba. -- Issue #23919: Prevents assert dialogs appearing in the test suite. +- Issue #21313: Fix the "platform" module to tolerate when sys.version + contains truncated build information. -- ``PCbuild\rt.bat`` now accepts an unlimited number of arguments to pass along - to regrtest.py. Previously there was a limit of 9. +- [Security] Issue #26839: On Linux, :func:`os.urandom` now calls + ``getrandom()`` with ``GRND_NONBLOCK`` to fall back on reading + ``/dev/urandom`` if the urandom entropy pool is not initialized yet. Patch + written by Colm Buckley. -Build ------ +- Issue #23883: Added missing APIs to __all__ to match the documented APIs + for the following modules: cgi, mailbox, mimetypes, plistlib and smtpd. + Patches by Jacek Kołodziej. -- Issue #24915: Add LLVM support for PGO builds and use the test suite to - generate the profile data. Initial patch by Alecsandru Patrascu of Intel. +- Issue #27164: In the zlib module, allow decompressing raw Deflate streams + with a predefined zdict. Based on patch by Xiang Zhang. -- Issue #24910: Windows MSIs now have unique display names. +- Issue #24291: Fix wsgiref.simple_server.WSGIRequestHandler to completely + write data to the client. Previously it could do partial writes and + truncate data. Also, wsgiref.handler.ServerHandler can now handle stdout + doing partial writes, but this is deprecated. -- Issue #24986: It is now possible to build Python on Windows without errors - when external libraries are not available. +- Issue #21272: Use _sysconfigdata.py to initialize distutils.sysconfig. -Windows -------- +- Issue #19611: :mod:`inspect` now reports the implicit ``.0`` parameters + generated by the compiler for comprehension and generator expression scopes + as if they were positional-only parameters called ``implicit0``. + Patch by Jelle Zijlstra. -- Issue #25450: Updates shortcuts to start Python in installation directory. +- Issue #26809: Add ``__all__`` to :mod:`string`. Patch by Emanuel Barry. -- Issue #25164: Changes default all-users install directory to match per-user - directory. +- Issue #26373: subprocess.Popen.communicate now correctly ignores + BrokenPipeError when the child process dies before .communicate() + is called in more/all circumstances. -- Issue #25143: Improves installer error messages for unsupported platforms. +- signal, socket, and ssl module IntEnum constant name lookups now return a + consistent name for values having multiple names. Ex: signal.Signals(6) + now refers to itself as signal.SIGALRM rather than flipping between that + and signal.SIGIOT based on the interpreter's hash randomization seed. -- Issue #25163: Display correct directory in installer when using non-default - settings. +- Issue #27167: Clarify the subprocess.CalledProcessError error message text + when the child process died due to a signal. -- Issue #25361: Disables use of SSE2 instructions in Windows 32-bit build +- Issue #25931: Don't define socketserver.Forking* names on platforms such + as Windows that do not support os.fork(). -- Issue #25089: Adds logging to installer for case where launcher is not - selected on upgrade. +- Issue #21776: distutils.upload now correctly handles HTTPError. + Initial patch by Claudiu Popa. -- Issue #25165: Windows uninstallation should not remove launcher if other - versions remain +- Issue #26526: Replace custom parse tree validation in the parser + module with a simple DFA validator. -- Issue #25112: py.exe launcher is missing icons +- Issue #27114: Fix SSLContext._load_windows_store_certs fails with + PermissionError -- Issue #25102: Windows installer does not precompile for -O or -OO. +- Issue #18383: Avoid creating duplicate filters when using filterwarnings + and simplefilter. Based on patch by Alex Shkop. -- Issue #25081: Makes Back button in installer go back to upgrade page when - upgrading. +- Issue #23026: winreg.QueryValueEx() now return an integer for REG_QWORD type. -- Issue #25091: Increases font size of the installer. +- Issue #26741: subprocess.Popen destructor now emits a ResourceWarning warning + if the child process is still running. -- Issue #25126: Clarifies that the non-web installer will download some - components. +- Issue #27056: Optimize pickle.load() and pickle.loads(), up to 10% faster + to deserialize a lot of small objects. -- Issue #25213: Restores requestedExecutionLevel to manifest to disable - UAC virtualization. +- Issue #21271: New keyword only parameters in reset_mock call. -- Issue #25022: Removed very outdated PC/example_nt/ directory. +IDLE +---- -Tools/Demos ------------ +- Issue #5124: Paste with text selected now replaces the selection on X11. + This matches how paste works on Windows, Mac, most modern Linux apps, + and ttk widgets. Original patch by Serhiy Storchaka. -- Issue #25440: Fix output of python-config --extension-suffix. +- Issue #24750: Switch all scrollbars in IDLE to ttk versions. + Where needed, minimal tests are added to cover changes. +- Issue #24759: IDLE requires tk 8.5 and availability ttk widgets. + Delete now unneeded tk version tests and code for older versions. + Add test for IDLE syntax colorizoer. -What's New in Python 3.5.0 final? -================================= +- Issue #27239: idlelib.macosx.isXyzTk functions initialize as needed. -Release date: 2015-09-13 +- Issue #27262: move Aqua unbinding code, which enable context menus, to maxosx. -Build ------ +- Issue #24759: Make clear in idlelib.idle_test.__init__ that the directory + is a private implementation of test.test_idle and tool for maintainers. -- Issue #25071: Windows installer should not require TargetDir - parameter when installing quietly. +- Issue #27196: Stop 'ThemeChanged' warnings when running IDLE tests. + These persisted after other warnings were suppressed in #20567. + Apply Serhiy Storchaka's update_idletasks solution to four test files. + Record this additional advice in idle_test/README.txt +- Issue #20567: Revise idle_test/README.txt with advice about avoiding + tk warning messages from tests. Apply advice to several IDLE tests. -What's New in Python 3.5.0 release candidate 4? -=============================================== +- Issue #24225: Update idlelib/README.txt with new file names + and event handlers. -Release date: 2015-09-09 +- Issue #27156: Remove obsolete code not used by IDLE. Replacements: + 1. help.txt, replaced by help.html, is out-of-date and should not be used. + Its dedicated viewer has be replaced by the html viewer in help.py. + 2. ``import idlever; I = idlever.IDLE_VERSION`` is the same as + ``import sys; I = version[:version.index(' ')]`` + 3. After ``ob = stackviewer.VariablesTreeItem(*args)``, + ``ob.keys() == list(ob.object.keys)``. + 4. In macosc, runningAsOSXAPP == isAquaTk; idCarbonAquaTk == isCarbonTk -Library -------- +- Issue #27117: Make colorizer htest and turtledemo work with dark themes. + Move code for configuring text widget colors to a new function. -- Issue #25029: Fixes MemoryError in test_strptime. +- Issue #24225: Rename many `idlelib/*.py` and `idle_test/test_*.py` files. + Edit files to replace old names with new names when the old name + referred to the module rather than the class it contained. + See the issue and IDLE section in What's New in 3.6 for more. -Build ------ +- Issue #26673: When tk reports font size as 0, change to size 10. + Such fonts on Linux prevented the configuration dialog from opening. -- Issue #25027: Reverts partial-static build options and adds - vcruntime140.dll to Windows installation. +- Issue #21939: Add test for IDLE's percolator. + Original patch by Saimadhav Heblikar. +- Issue #21676: Add test for IDLE's replace dialog. + Original patch by Saimadhav Heblikar. -What's New in Python 3.5.0 release candidate 3? -=============================================== +- Issue #18410: Add test for IDLE's search dialog. + Original patch by Westley Martínez. -Release date: 2015-09-07 +- Issue #21703: Add test for undo delegator. Patch mostly by + Saimadhav Heblikar . -Core and Builtins ------------------ +- Issue #27044: Add ConfigDialog.remove_var_callbacks to stop memory leaks. -- Issue #24305: Prevent import subsystem stack frames from being counted - by the warnings.warn(stacklevel=) parameter. +- Issue #23977: Add more asserts to test_delegator. -- Issue #24912: Prevent __class__ assignment to immutable built-in objects. +Documentation +------------- -- Issue #24975: Fix AST compilation for PEP 448 syntax. +- Issue #16484: Change the default PYTHONDOCS URL to "https:", and fix the + resulting links to use lowercase. Patch by Sean Rodman, test by Kaushik + Nadikuditi. -Library -------- +- Issue #24136: Document the new PEP 448 unpacking syntax of 3.5. -- Issue #24917: time_strftime() buffer over-read. +- Issue #22558: Add remaining doc links to source code for Python-coded modules. + Patch by Yoni Lavi. -- Issue #24748: To resolve a compatibility problem found with py2exe and - pywin32, imp.load_dynamic() once again ignores previously loaded modules - to support Python modules replacing themselves with extension modules. - Patch by Petr Viktorin. +Tests +----- -- Issue #24635: Fixed a bug in typing.py where isinstance([], typing.Iterable) - would return True once, then False on subsequent calls. +- Issue #25285: regrtest now uses subprocesses when the -j1 command line option + is used: each test file runs in a fresh child process. Before, the -j1 option + was ignored. -- Issue #24989: Fixed buffer overread in BytesIO.readline() if a position is - set beyond size. Based on patch by John Leitch. +- Issue #25285: Tools/buildbot/test.bat script now uses -j1 by default to run + each test file in fresh child process. -- Issue #24913: Fix overrun error in deque.index(). - Found by John Leitch and Bryce Darling. +Windows +------- +- Issue #27064: The py.exe launcher now defaults to Python 3. + The Windows launcher ``py.exe`` no longer prefers an installed + Python 2 version over Python 3 by default when used interactively. -What's New in Python 3.5.0 release candidate 2? -=============================================== +Build +----- -Release date: 2015-08-25 +- Issue #27229: Fix the cross-compiling pgen rule for in-tree builds. Patch + by Xavier de Gaye. -Core and Builtins ------------------ +- Issue #26930: Update OS X 10.5+ 32-bit-only installer to build + and link with OpenSSL 1.0.2h. -- Issue #24769: Interpreter now starts properly when dynamic loading - is disabled. Patch by Petr Viktorin. +Misc +---- -- Issue #21167: NAN operations are now handled correctly when python is - compiled with ICC even if -fp-model strict is not specified. +- Issue #17500, and https://github.com/python/pythondotorg/issues/945: Remove + unused and outdated icons. -- Issue #24492: A "package" lacking a __name__ attribute when trying to perform - a ``from .. import ...`` statement will trigger an ImportError instead of an - AttributeError. +C API +----- -Library -------- +- Issue #27186: Add the PyOS_FSPath() function (part of PEP 519). -- Issue #24847: Removes vcruntime140.dll dependency from Tcl/Tk. +- Issue #26282: PyArg_ParseTupleAndKeywords() now supports positional-only + parameters. -- Issue #24839: platform._syscmd_ver raises DeprecationWarning +Tools/Demos +----------- -- Issue #24867: Fix Task.get_stack() for 'async def' coroutines +- Issue #26282: Argument Clinic now supports positional-only and keyword + parameters in the same function. -What's New in Python 3.5.0 release candidate 1? -=============================================== +What's New in Python 3.6.0 alpha 1? +=================================== -Release date: 2015-08-09 +Release date: 2016-05-16 Core and Builtins ----------------- diff --cc PC/python3.def index b54630c7d2,835c5fe023..fecd731062 --- a/PC/python3.def +++ b/PC/python3.def @@@ -2,710 -2,768 +2,774 @@@ ; It is used when building python3dll.vcxproj LIBRARY "python3" EXPORTS - PyArg_Parse=python35.PyArg_Parse - PyArg_ParseTuple=python35.PyArg_ParseTuple - PyArg_ParseTupleAndKeywords=python35.PyArg_ParseTupleAndKeywords - PyArg_UnpackTuple=python35.PyArg_UnpackTuple - PyArg_VaParse=python35.PyArg_VaParse - PyArg_VaParseTupleAndKeywords=python35.PyArg_VaParseTupleAndKeywords - PyArg_ValidateKeywordArguments=python35.PyArg_ValidateKeywordArguments - PyBaseObject_Type=python35.PyBaseObject_Type DATA - PyBool_FromLong=python35.PyBool_FromLong - PyBool_Type=python35.PyBool_Type DATA - PyByteArrayIter_Type=python35.PyByteArrayIter_Type DATA - PyByteArray_AsString=python35.PyByteArray_AsString - PyByteArray_Concat=python35.PyByteArray_Concat - PyByteArray_FromObject=python35.PyByteArray_FromObject - PyByteArray_FromStringAndSize=python35.PyByteArray_FromStringAndSize - PyByteArray_Resize=python35.PyByteArray_Resize - PyByteArray_Size=python35.PyByteArray_Size - PyByteArray_Type=python35.PyByteArray_Type DATA - PyBytesIter_Type=python35.PyBytesIter_Type DATA - PyBytes_AsString=python35.PyBytes_AsString - PyBytes_AsStringAndSize=python35.PyBytes_AsStringAndSize - PyBytes_Concat=python35.PyBytes_Concat - PyBytes_ConcatAndDel=python35.PyBytes_ConcatAndDel - PyBytes_DecodeEscape=python35.PyBytes_DecodeEscape - PyBytes_FromFormat=python35.PyBytes_FromFormat - PyBytes_FromFormatV=python35.PyBytes_FromFormatV - PyBytes_FromObject=python35.PyBytes_FromObject - PyBytes_FromString=python35.PyBytes_FromString - PyBytes_FromStringAndSize=python35.PyBytes_FromStringAndSize - PyBytes_Repr=python35.PyBytes_Repr - PyBytes_Size=python35.PyBytes_Size - PyBytes_Type=python35.PyBytes_Type DATA - PyCFunction_Call=python35.PyCFunction_Call - PyCFunction_ClearFreeList=python35.PyCFunction_ClearFreeList - PyCFunction_GetFlags=python35.PyCFunction_GetFlags - PyCFunction_GetFunction=python35.PyCFunction_GetFunction - PyCFunction_GetSelf=python35.PyCFunction_GetSelf - PyCFunction_New=python35.PyCFunction_New - PyCFunction_NewEx=python35.PyCFunction_NewEx - PyCFunction_Type=python35.PyCFunction_Type DATA - PyCallIter_New=python35.PyCallIter_New - PyCallIter_Type=python35.PyCallIter_Type DATA - PyCallable_Check=python35.PyCallable_Check - PyCapsule_GetContext=python35.PyCapsule_GetContext - PyCapsule_GetDestructor=python35.PyCapsule_GetDestructor - PyCapsule_GetName=python35.PyCapsule_GetName - PyCapsule_GetPointer=python35.PyCapsule_GetPointer - PyCapsule_Import=python35.PyCapsule_Import - PyCapsule_IsValid=python35.PyCapsule_IsValid - PyCapsule_New=python35.PyCapsule_New - PyCapsule_SetContext=python35.PyCapsule_SetContext - PyCapsule_SetDestructor=python35.PyCapsule_SetDestructor - PyCapsule_SetName=python35.PyCapsule_SetName - PyCapsule_SetPointer=python35.PyCapsule_SetPointer - PyCapsule_Type=python35.PyCapsule_Type DATA - PyClassMethodDescr_Type=python35.PyClassMethodDescr_Type DATA - PyCodec_BackslashReplaceErrors=python35.PyCodec_BackslashReplaceErrors - PyCodec_Decode=python35.PyCodec_Decode - PyCodec_Decoder=python35.PyCodec_Decoder - PyCodec_Encode=python35.PyCodec_Encode - PyCodec_Encoder=python35.PyCodec_Encoder - PyCodec_IgnoreErrors=python35.PyCodec_IgnoreErrors - PyCodec_IncrementalDecoder=python35.PyCodec_IncrementalDecoder - PyCodec_IncrementalEncoder=python35.PyCodec_IncrementalEncoder - PyCodec_KnownEncoding=python35.PyCodec_KnownEncoding - PyCodec_LookupError=python35.PyCodec_LookupError - PyCodec_NameReplaceErrors=python35.PyCodec_NameReplaceErrors - PyCodec_Register=python35.PyCodec_Register - PyCodec_RegisterError=python35.PyCodec_RegisterError - PyCodec_ReplaceErrors=python35.PyCodec_ReplaceErrors - PyCodec_StreamReader=python35.PyCodec_StreamReader - PyCodec_StreamWriter=python35.PyCodec_StreamWriter - PyCodec_StrictErrors=python35.PyCodec_StrictErrors - PyCodec_XMLCharRefReplaceErrors=python35.PyCodec_XMLCharRefReplaceErrors - PyComplex_FromDoubles=python35.PyComplex_FromDoubles - PyComplex_ImagAsDouble=python35.PyComplex_ImagAsDouble - PyComplex_RealAsDouble=python35.PyComplex_RealAsDouble - PyComplex_Type=python35.PyComplex_Type DATA - PyDescr_NewClassMethod=python35.PyDescr_NewClassMethod - PyDescr_NewGetSet=python35.PyDescr_NewGetSet - PyDescr_NewMember=python35.PyDescr_NewMember - PyDescr_NewMethod=python35.PyDescr_NewMethod - PyDictItems_Type=python35.PyDictItems_Type DATA - PyDictIterItem_Type=python35.PyDictIterItem_Type DATA - PyDictIterKey_Type=python35.PyDictIterKey_Type DATA - PyDictIterValue_Type=python35.PyDictIterValue_Type DATA - PyDictKeys_Type=python35.PyDictKeys_Type DATA - PyDictProxy_New=python35.PyDictProxy_New - PyDictProxy_Type=python35.PyDictProxy_Type DATA - PyDictValues_Type=python35.PyDictValues_Type DATA - PyDict_Clear=python35.PyDict_Clear - PyDict_Contains=python35.PyDict_Contains - PyDict_Copy=python35.PyDict_Copy - PyDict_DelItem=python35.PyDict_DelItem - PyDict_DelItemString=python35.PyDict_DelItemString - PyDict_GetItem=python35.PyDict_GetItem - PyDict_GetItemString=python35.PyDict_GetItemString - PyDict_GetItemWithError=python35.PyDict_GetItemWithError - PyDict_Items=python35.PyDict_Items - PyDict_Keys=python35.PyDict_Keys - PyDict_Merge=python35.PyDict_Merge - PyDict_MergeFromSeq2=python35.PyDict_MergeFromSeq2 - PyDict_New=python35.PyDict_New - PyDict_Next=python35.PyDict_Next - PyDict_SetItem=python35.PyDict_SetItem - PyDict_SetItemString=python35.PyDict_SetItemString - PyDict_Size=python35.PyDict_Size - PyDict_Type=python35.PyDict_Type DATA - PyDict_Update=python35.PyDict_Update - PyDict_Values=python35.PyDict_Values - PyEllipsis_Type=python35.PyEllipsis_Type DATA - PyEnum_Type=python35.PyEnum_Type DATA - PyErr_BadArgument=python35.PyErr_BadArgument - PyErr_BadInternalCall=python35.PyErr_BadInternalCall - PyErr_CheckSignals=python35.PyErr_CheckSignals - PyErr_Clear=python35.PyErr_Clear - PyErr_Display=python35.PyErr_Display - PyErr_ExceptionMatches=python35.PyErr_ExceptionMatches - PyErr_Fetch=python35.PyErr_Fetch - PyErr_Format=python35.PyErr_Format - PyErr_FormatV=python35.PyErr_FormatV - PyErr_GetExcInfo=python35.PyErr_GetExcInfo - PyErr_GivenExceptionMatches=python35.PyErr_GivenExceptionMatches - PyErr_NewException=python35.PyErr_NewException - PyErr_NewExceptionWithDoc=python35.PyErr_NewExceptionWithDoc - PyErr_NoMemory=python35.PyErr_NoMemory - PyErr_NormalizeException=python35.PyErr_NormalizeException - PyErr_Occurred=python35.PyErr_Occurred - PyErr_Print=python35.PyErr_Print - PyErr_PrintEx=python35.PyErr_PrintEx - PyErr_ProgramText=python35.PyErr_ProgramText - PyErr_Restore=python35.PyErr_Restore - PyErr_SetExcInfo=python35.PyErr_SetExcInfo - PyErr_SetFromErrno=python35.PyErr_SetFromErrno - PyErr_SetFromErrnoWithFilename=python35.PyErr_SetFromErrnoWithFilename - PyErr_SetFromErrnoWithFilenameObject=python35.PyErr_SetFromErrnoWithFilenameObject - PyErr_SetFromErrnoWithFilenameObjects=python35.PyErr_SetFromErrnoWithFilenameObjects - PyErr_SetImportError=python35.PyErr_SetImportError - PyErr_SetInterrupt=python35.PyErr_SetInterrupt - PyErr_SetNone=python35.PyErr_SetNone - PyErr_SetObject=python35.PyErr_SetObject - PyErr_SetString=python35.PyErr_SetString - PyErr_SyntaxLocation=python35.PyErr_SyntaxLocation - PyErr_SyntaxLocationEx=python35.PyErr_SyntaxLocationEx - PyErr_WarnEx=python35.PyErr_WarnEx - PyErr_WarnExplicit=python35.PyErr_WarnExplicit - PyErr_WarnFormat=python35.PyErr_WarnFormat - PyErr_WriteUnraisable=python35.PyErr_WriteUnraisable - PyEval_AcquireLock=python35.PyEval_AcquireLock - PyEval_AcquireThread=python35.PyEval_AcquireThread - PyEval_CallFunction=python35.PyEval_CallFunction - PyEval_CallMethod=python35.PyEval_CallMethod - PyEval_CallObjectWithKeywords=python35.PyEval_CallObjectWithKeywords - PyEval_EvalCode=python35.PyEval_EvalCode - PyEval_EvalCodeEx=python35.PyEval_EvalCodeEx - PyEval_EvalFrame=python35.PyEval_EvalFrame - PyEval_EvalFrameEx=python35.PyEval_EvalFrameEx - PyEval_GetBuiltins=python35.PyEval_GetBuiltins - PyEval_GetCallStats=python35.PyEval_GetCallStats - PyEval_GetFrame=python35.PyEval_GetFrame - PyEval_GetFuncDesc=python35.PyEval_GetFuncDesc - PyEval_GetFuncName=python35.PyEval_GetFuncName - PyEval_GetGlobals=python35.PyEval_GetGlobals - PyEval_GetLocals=python35.PyEval_GetLocals - PyEval_InitThreads=python35.PyEval_InitThreads - PyEval_ReInitThreads=python35.PyEval_ReInitThreads - PyEval_ReleaseLock=python35.PyEval_ReleaseLock - PyEval_ReleaseThread=python35.PyEval_ReleaseThread - PyEval_RestoreThread=python35.PyEval_RestoreThread - PyEval_SaveThread=python35.PyEval_SaveThread - PyEval_ThreadsInitialized=python35.PyEval_ThreadsInitialized - PyExc_ArithmeticError=python35.PyExc_ArithmeticError DATA - PyExc_AssertionError=python35.PyExc_AssertionError DATA - PyExc_AttributeError=python35.PyExc_AttributeError DATA - PyExc_BaseException=python35.PyExc_BaseException DATA - PyExc_BlockingIOError=python35.PyExc_BlockingIOError DATA - PyExc_BrokenPipeError=python35.PyExc_BrokenPipeError DATA - PyExc_BufferError=python35.PyExc_BufferError DATA - PyExc_BytesWarning=python35.PyExc_BytesWarning DATA - PyExc_ChildProcessError=python35.PyExc_ChildProcessError DATA - PyExc_ConnectionAbortedError=python35.PyExc_ConnectionAbortedError DATA - PyExc_ConnectionError=python35.PyExc_ConnectionError DATA - PyExc_ConnectionRefusedError=python35.PyExc_ConnectionRefusedError DATA - PyExc_ConnectionResetError=python35.PyExc_ConnectionResetError DATA - PyExc_DeprecationWarning=python35.PyExc_DeprecationWarning DATA - PyExc_EOFError=python35.PyExc_EOFError DATA - PyExc_EnvironmentError=python35.PyExc_EnvironmentError DATA - PyExc_Exception=python35.PyExc_Exception DATA - PyExc_FileExistsError=python35.PyExc_FileExistsError DATA - PyExc_FileNotFoundError=python35.PyExc_FileNotFoundError DATA - PyExc_FloatingPointError=python35.PyExc_FloatingPointError DATA - PyExc_FutureWarning=python35.PyExc_FutureWarning DATA - PyExc_GeneratorExit=python35.PyExc_GeneratorExit DATA - PyExc_IOError=python35.PyExc_IOError DATA - PyExc_ImportError=python35.PyExc_ImportError DATA - PyExc_ImportWarning=python35.PyExc_ImportWarning DATA - PyExc_IndentationError=python35.PyExc_IndentationError DATA - PyExc_IndexError=python35.PyExc_IndexError DATA - PyExc_InterruptedError=python35.PyExc_InterruptedError DATA - PyExc_IsADirectoryError=python35.PyExc_IsADirectoryError DATA - PyExc_KeyError=python35.PyExc_KeyError DATA - PyExc_KeyboardInterrupt=python35.PyExc_KeyboardInterrupt DATA - PyExc_LookupError=python35.PyExc_LookupError DATA - PyExc_MemoryError=python35.PyExc_MemoryError DATA - PyExc_NameError=python35.PyExc_NameError DATA - PyExc_NotADirectoryError=python35.PyExc_NotADirectoryError DATA - PyExc_NotImplementedError=python35.PyExc_NotImplementedError DATA - PyExc_OSError=python35.PyExc_OSError DATA - PyExc_OverflowError=python35.PyExc_OverflowError DATA - PyExc_PendingDeprecationWarning=python35.PyExc_PendingDeprecationWarning DATA - PyExc_PermissionError=python35.PyExc_PermissionError DATA - PyExc_ProcessLookupError=python35.PyExc_ProcessLookupError DATA - PyExc_RecursionError=python35.PyExc_RecursionError DATA - PyExc_RecursionErrorInst=python35.PyExc_RecursionErrorInst DATA - PyExc_ReferenceError=python35.PyExc_ReferenceError DATA - PyExc_ResourceWarning=python35.PyExc_ResourceWarning DATA - PyExc_RuntimeError=python35.PyExc_RuntimeError DATA - PyExc_RuntimeWarning=python35.PyExc_RuntimeWarning DATA - PyExc_StopAsyncIteration=python35.PyExc_StopAsyncIteration DATA - PyExc_StopIteration=python35.PyExc_StopIteration DATA - PyExc_SyntaxError=python35.PyExc_SyntaxError DATA - PyExc_SyntaxWarning=python35.PyExc_SyntaxWarning DATA - PyExc_SystemError=python35.PyExc_SystemError DATA - PyExc_SystemExit=python35.PyExc_SystemExit DATA - PyExc_TabError=python35.PyExc_TabError DATA - PyExc_TimeoutError=python35.PyExc_TimeoutError DATA - PyExc_TypeError=python35.PyExc_TypeError DATA - PyExc_UnboundLocalError=python35.PyExc_UnboundLocalError DATA - PyExc_UnicodeDecodeError=python35.PyExc_UnicodeDecodeError DATA - PyExc_UnicodeEncodeError=python35.PyExc_UnicodeEncodeError DATA - PyExc_UnicodeError=python35.PyExc_UnicodeError DATA - PyExc_UnicodeTranslateError=python35.PyExc_UnicodeTranslateError DATA - PyExc_UnicodeWarning=python35.PyExc_UnicodeWarning DATA - PyExc_UserWarning=python35.PyExc_UserWarning DATA - PyExc_ValueError=python35.PyExc_ValueError DATA - PyExc_Warning=python35.PyExc_Warning DATA - PyExc_ZeroDivisionError=python35.PyExc_ZeroDivisionError DATA - PyException_GetCause=python35.PyException_GetCause - PyException_GetContext=python35.PyException_GetContext - PyException_GetTraceback=python35.PyException_GetTraceback - PyException_SetCause=python35.PyException_SetCause - PyException_SetContext=python35.PyException_SetContext - PyException_SetTraceback=python35.PyException_SetTraceback - PyFile_FromFd=python35.PyFile_FromFd - PyFile_GetLine=python35.PyFile_GetLine - PyFile_WriteObject=python35.PyFile_WriteObject - PyFile_WriteString=python35.PyFile_WriteString - PyFilter_Type=python35.PyFilter_Type DATA - PyFloat_AsDouble=python35.PyFloat_AsDouble - PyFloat_FromDouble=python35.PyFloat_FromDouble - PyFloat_FromString=python35.PyFloat_FromString - PyFloat_GetInfo=python35.PyFloat_GetInfo - PyFloat_GetMax=python35.PyFloat_GetMax - PyFloat_GetMin=python35.PyFloat_GetMin - PyFloat_Type=python35.PyFloat_Type DATA - PyFrozenSet_New=python35.PyFrozenSet_New - PyFrozenSet_Type=python35.PyFrozenSet_Type DATA - PyGC_Collect=python35.PyGC_Collect - PyGILState_Ensure=python35.PyGILState_Ensure - PyGILState_GetThisThreadState=python35.PyGILState_GetThisThreadState - PyGILState_Release=python35.PyGILState_Release - PyGetSetDescr_Type=python35.PyGetSetDescr_Type DATA - PyImport_AddModule=python35.PyImport_AddModule - PyImport_AddModuleObject=python35.PyImport_AddModuleObject - PyImport_AppendInittab=python35.PyImport_AppendInittab - PyImport_Cleanup=python35.PyImport_Cleanup - PyImport_ExecCodeModule=python35.PyImport_ExecCodeModule - PyImport_ExecCodeModuleEx=python35.PyImport_ExecCodeModuleEx - PyImport_ExecCodeModuleObject=python35.PyImport_ExecCodeModuleObject - PyImport_ExecCodeModuleWithPathnames=python35.PyImport_ExecCodeModuleWithPathnames - PyImport_GetImporter=python35.PyImport_GetImporter - PyImport_GetMagicNumber=python35.PyImport_GetMagicNumber - PyImport_GetMagicTag=python35.PyImport_GetMagicTag - PyImport_GetModuleDict=python35.PyImport_GetModuleDict - PyImport_Import=python35.PyImport_Import - PyImport_ImportFrozenModule=python35.PyImport_ImportFrozenModule - PyImport_ImportFrozenModuleObject=python35.PyImport_ImportFrozenModuleObject - PyImport_ImportModule=python35.PyImport_ImportModule - PyImport_ImportModuleLevel=python35.PyImport_ImportModuleLevel - PyImport_ImportModuleLevelObject=python35.PyImport_ImportModuleLevelObject - PyImport_ImportModuleNoBlock=python35.PyImport_ImportModuleNoBlock - PyImport_ReloadModule=python35.PyImport_ReloadModule - PyInterpreterState_Clear=python35.PyInterpreterState_Clear - PyInterpreterState_Delete=python35.PyInterpreterState_Delete - PyInterpreterState_New=python35.PyInterpreterState_New - PyIter_Next=python35.PyIter_Next - PyListIter_Type=python35.PyListIter_Type DATA - PyListRevIter_Type=python35.PyListRevIter_Type DATA - PyList_Append=python35.PyList_Append - PyList_AsTuple=python35.PyList_AsTuple - PyList_GetItem=python35.PyList_GetItem - PyList_GetSlice=python35.PyList_GetSlice - PyList_Insert=python35.PyList_Insert - PyList_New=python35.PyList_New - PyList_Reverse=python35.PyList_Reverse - PyList_SetItem=python35.PyList_SetItem - PyList_SetSlice=python35.PyList_SetSlice - PyList_Size=python35.PyList_Size - PyList_Sort=python35.PyList_Sort - PyList_Type=python35.PyList_Type DATA - PyLongRangeIter_Type=python35.PyLongRangeIter_Type DATA - PyLong_AsDouble=python35.PyLong_AsDouble - PyLong_AsLong=python35.PyLong_AsLong - PyLong_AsLongAndOverflow=python35.PyLong_AsLongAndOverflow - PyLong_AsLongLong=python35.PyLong_AsLongLong - PyLong_AsLongLongAndOverflow=python35.PyLong_AsLongLongAndOverflow - PyLong_AsSize_t=python35.PyLong_AsSize_t - PyLong_AsSsize_t=python35.PyLong_AsSsize_t - PyLong_AsUnsignedLong=python35.PyLong_AsUnsignedLong - PyLong_AsUnsignedLongLong=python35.PyLong_AsUnsignedLongLong - PyLong_AsUnsignedLongLongMask=python35.PyLong_AsUnsignedLongLongMask - PyLong_AsUnsignedLongMask=python35.PyLong_AsUnsignedLongMask - PyLong_AsVoidPtr=python35.PyLong_AsVoidPtr - PyLong_FromDouble=python35.PyLong_FromDouble - PyLong_FromLong=python35.PyLong_FromLong - PyLong_FromLongLong=python35.PyLong_FromLongLong - PyLong_FromSize_t=python35.PyLong_FromSize_t - PyLong_FromSsize_t=python35.PyLong_FromSsize_t - PyLong_FromString=python35.PyLong_FromString - PyLong_FromUnsignedLong=python35.PyLong_FromUnsignedLong - PyLong_FromUnsignedLongLong=python35.PyLong_FromUnsignedLongLong - PyLong_FromVoidPtr=python35.PyLong_FromVoidPtr - PyLong_GetInfo=python35.PyLong_GetInfo - PyLong_Type=python35.PyLong_Type DATA - PyMap_Type=python35.PyMap_Type DATA - PyMapping_Check=python35.PyMapping_Check - PyMapping_GetItemString=python35.PyMapping_GetItemString - PyMapping_HasKey=python35.PyMapping_HasKey - PyMapping_HasKeyString=python35.PyMapping_HasKeyString - PyMapping_Items=python35.PyMapping_Items - PyMapping_Keys=python35.PyMapping_Keys - PyMapping_Length=python35.PyMapping_Length - PyMapping_SetItemString=python35.PyMapping_SetItemString - PyMapping_Size=python35.PyMapping_Size - PyMapping_Values=python35.PyMapping_Values - PyMem_Calloc=python35.PyMem_Calloc - PyMem_Free=python35.PyMem_Free - PyMem_Malloc=python35.PyMem_Malloc - PyMem_Realloc=python35.PyMem_Realloc - PyMemberDescr_Type=python35.PyMemberDescr_Type DATA - PyMemoryView_FromMemory=python35.PyMemoryView_FromMemory - PyMemoryView_FromObject=python35.PyMemoryView_FromObject - PyMemoryView_GetContiguous=python35.PyMemoryView_GetContiguous - PyMemoryView_Type=python35.PyMemoryView_Type DATA - PyMethodDescr_Type=python35.PyMethodDescr_Type DATA - PyModuleDef_Init=python35.PyModuleDef_Init - PyModuleDef_Type=python35.PyModuleDef_Type DATA - PyModule_AddFunctions=python35.PyModule_AddFunctions - PyModule_AddIntConstant=python35.PyModule_AddIntConstant - PyModule_AddObject=python35.PyModule_AddObject - PyModule_AddStringConstant=python35.PyModule_AddStringConstant - PyModule_Create2=python35.PyModule_Create2 - PyModule_ExecDef=python35.PyModule_ExecDef - PyModule_FromDefAndSpec2=python35.PyModule_FromDefAndSpec2 - PyModule_GetDef=python35.PyModule_GetDef - PyModule_GetDict=python35.PyModule_GetDict - PyModule_GetFilename=python35.PyModule_GetFilename - PyModule_GetFilenameObject=python35.PyModule_GetFilenameObject - PyModule_GetName=python35.PyModule_GetName - PyModule_GetNameObject=python35.PyModule_GetNameObject - PyModule_GetState=python35.PyModule_GetState - PyModule_New=python35.PyModule_New - PyModule_NewObject=python35.PyModule_NewObject - PyModule_SetDocString=python35.PyModule_SetDocString - PyModule_Type=python35.PyModule_Type DATA - PyNullImporter_Type=python35.PyNullImporter_Type DATA - PyNumber_Absolute=python35.PyNumber_Absolute - PyNumber_Add=python35.PyNumber_Add - PyNumber_And=python35.PyNumber_And - PyNumber_AsSsize_t=python35.PyNumber_AsSsize_t - PyNumber_Check=python35.PyNumber_Check - PyNumber_Divmod=python35.PyNumber_Divmod - PyNumber_Float=python35.PyNumber_Float - PyNumber_FloorDivide=python35.PyNumber_FloorDivide - PyNumber_InPlaceAdd=python35.PyNumber_InPlaceAdd - PyNumber_InPlaceAnd=python35.PyNumber_InPlaceAnd - PyNumber_InPlaceFloorDivide=python35.PyNumber_InPlaceFloorDivide - PyNumber_InPlaceLshift=python35.PyNumber_InPlaceLshift - PyNumber_InPlaceMatrixMultiply=python35.PyNumber_InPlaceMatrixMultiply - PyNumber_InPlaceMultiply=python35.PyNumber_InPlaceMultiply - PyNumber_InPlaceOr=python35.PyNumber_InPlaceOr - PyNumber_InPlacePower=python35.PyNumber_InPlacePower - PyNumber_InPlaceRemainder=python35.PyNumber_InPlaceRemainder - PyNumber_InPlaceRshift=python35.PyNumber_InPlaceRshift - PyNumber_InPlaceSubtract=python35.PyNumber_InPlaceSubtract - PyNumber_InPlaceTrueDivide=python35.PyNumber_InPlaceTrueDivide - PyNumber_InPlaceXor=python35.PyNumber_InPlaceXor - PyNumber_Index=python35.PyNumber_Index - PyNumber_Invert=python35.PyNumber_Invert - PyNumber_Long=python35.PyNumber_Long - PyNumber_Lshift=python35.PyNumber_Lshift - PyNumber_MatrixMultiply=python35.PyNumber_MatrixMultiply - PyNumber_Multiply=python35.PyNumber_Multiply - PyNumber_Negative=python35.PyNumber_Negative - PyNumber_Or=python35.PyNumber_Or - PyNumber_Positive=python35.PyNumber_Positive - PyNumber_Power=python35.PyNumber_Power - PyNumber_Remainder=python35.PyNumber_Remainder - PyNumber_Rshift=python35.PyNumber_Rshift - PyNumber_Subtract=python35.PyNumber_Subtract - PyNumber_ToBase=python35.PyNumber_ToBase - PyNumber_TrueDivide=python35.PyNumber_TrueDivide - PyNumber_Xor=python35.PyNumber_Xor - PyODictItems_Type=python35.PyODictItems_Type DATA - PyODictIter_Type=python35.PyODictIter_Type DATA - PyODictKeys_Type=python35.PyODictKeys_Type DATA - PyODictValues_Type=python35.PyODictValues_Type DATA - PyODict_DelItem=python35.PyODict_DelItem - PyODict_New=python35.PyODict_New - PyODict_SetItem=python35.PyODict_SetItem - PyODict_Type=python35.PyODict_Type DATA - PyOS_AfterFork=python35.PyOS_AfterFork - PyOS_InitInterrupts=python35.PyOS_InitInterrupts - PyOS_InputHook=python35.PyOS_InputHook DATA - PyOS_InterruptOccurred=python35.PyOS_InterruptOccurred - PyOS_ReadlineFunctionPointer=python35.PyOS_ReadlineFunctionPointer DATA - PyOS_double_to_string=python35.PyOS_double_to_string - PyOS_getsig=python35.PyOS_getsig - PyOS_mystricmp=python35.PyOS_mystricmp - PyOS_mystrnicmp=python35.PyOS_mystrnicmp - PyOS_setsig=python35.PyOS_setsig - PyOS_snprintf=python35.PyOS_snprintf - PyOS_string_to_double=python35.PyOS_string_to_double - PyOS_strtol=python35.PyOS_strtol - PyOS_strtoul=python35.PyOS_strtoul - PyOS_vsnprintf=python35.PyOS_vsnprintf - PyObject_ASCII=python35.PyObject_ASCII - PyObject_AsCharBuffer=python35.PyObject_AsCharBuffer - PyObject_AsFileDescriptor=python35.PyObject_AsFileDescriptor - PyObject_AsReadBuffer=python35.PyObject_AsReadBuffer - PyObject_AsWriteBuffer=python35.PyObject_AsWriteBuffer - PyObject_Bytes=python35.PyObject_Bytes - PyObject_Call=python35.PyObject_Call - PyObject_CallFunction=python35.PyObject_CallFunction - PyObject_CallFunctionObjArgs=python35.PyObject_CallFunctionObjArgs - PyObject_CallMethod=python35.PyObject_CallMethod - PyObject_CallMethodObjArgs=python35.PyObject_CallMethodObjArgs - PyObject_CallObject=python35.PyObject_CallObject - PyObject_Calloc=python35.PyObject_Calloc - PyObject_CheckReadBuffer=python35.PyObject_CheckReadBuffer - PyObject_ClearWeakRefs=python35.PyObject_ClearWeakRefs - PyObject_DelItem=python35.PyObject_DelItem - PyObject_DelItemString=python35.PyObject_DelItemString - PyObject_Dir=python35.PyObject_Dir - PyObject_Format=python35.PyObject_Format - PyObject_Free=python35.PyObject_Free - PyObject_GC_Del=python35.PyObject_GC_Del - PyObject_GC_Track=python35.PyObject_GC_Track - PyObject_GC_UnTrack=python35.PyObject_GC_UnTrack - PyObject_GenericGetAttr=python35.PyObject_GenericGetAttr - PyObject_GenericSetAttr=python35.PyObject_GenericSetAttr - PyObject_GenericSetDict=python35.PyObject_GenericSetDict - PyObject_GetAttr=python35.PyObject_GetAttr - PyObject_GetAttrString=python35.PyObject_GetAttrString - PyObject_GetItem=python35.PyObject_GetItem - PyObject_GetIter=python35.PyObject_GetIter - PyObject_HasAttr=python35.PyObject_HasAttr - PyObject_HasAttrString=python35.PyObject_HasAttrString - PyObject_Hash=python35.PyObject_Hash - PyObject_HashNotImplemented=python35.PyObject_HashNotImplemented - PyObject_Init=python35.PyObject_Init - PyObject_InitVar=python35.PyObject_InitVar - PyObject_IsInstance=python35.PyObject_IsInstance - PyObject_IsSubclass=python35.PyObject_IsSubclass - PyObject_IsTrue=python35.PyObject_IsTrue - PyObject_Length=python35.PyObject_Length - PyObject_Malloc=python35.PyObject_Malloc - PyObject_Not=python35.PyObject_Not - PyObject_Realloc=python35.PyObject_Realloc - PyObject_Repr=python35.PyObject_Repr - PyObject_RichCompare=python35.PyObject_RichCompare - PyObject_RichCompareBool=python35.PyObject_RichCompareBool - PyObject_SelfIter=python35.PyObject_SelfIter - PyObject_SetAttr=python35.PyObject_SetAttr - PyObject_SetAttrString=python35.PyObject_SetAttrString - PyObject_SetItem=python35.PyObject_SetItem - PyObject_Size=python35.PyObject_Size - PyObject_Str=python35.PyObject_Str - PyObject_Type=python35.PyObject_Type - PyParser_SimpleParseFileFlags=python35.PyParser_SimpleParseFileFlags - PyParser_SimpleParseStringFlags=python35.PyParser_SimpleParseStringFlags - PyParser_SimpleParseStringFlagsFilename=python35.PyParser_SimpleParseStringFlagsFilename - PyProperty_Type=python35.PyProperty_Type DATA - PyRangeIter_Type=python35.PyRangeIter_Type DATA - PyRange_Type=python35.PyRange_Type DATA - PyReversed_Type=python35.PyReversed_Type DATA - PySeqIter_New=python35.PySeqIter_New - PySeqIter_Type=python35.PySeqIter_Type DATA - PySequence_Check=python35.PySequence_Check - PySequence_Concat=python35.PySequence_Concat - PySequence_Contains=python35.PySequence_Contains - PySequence_Count=python35.PySequence_Count - PySequence_DelItem=python35.PySequence_DelItem - PySequence_DelSlice=python35.PySequence_DelSlice - PySequence_Fast=python35.PySequence_Fast - PySequence_GetItem=python35.PySequence_GetItem - PySequence_GetSlice=python35.PySequence_GetSlice - PySequence_In=python35.PySequence_In - PySequence_InPlaceConcat=python35.PySequence_InPlaceConcat - PySequence_InPlaceRepeat=python35.PySequence_InPlaceRepeat - PySequence_Index=python35.PySequence_Index - PySequence_Length=python35.PySequence_Length - PySequence_List=python35.PySequence_List - PySequence_Repeat=python35.PySequence_Repeat - PySequence_SetItem=python35.PySequence_SetItem - PySequence_SetSlice=python35.PySequence_SetSlice - PySequence_Size=python35.PySequence_Size - PySequence_Tuple=python35.PySequence_Tuple - PySetIter_Type=python35.PySetIter_Type DATA - PySet_Add=python35.PySet_Add - PySet_Clear=python35.PySet_Clear - PySet_Contains=python35.PySet_Contains - PySet_Discard=python35.PySet_Discard - PySet_New=python35.PySet_New - PySet_Pop=python35.PySet_Pop - PySet_Size=python35.PySet_Size - PySet_Type=python35.PySet_Type DATA - PySlice_GetIndices=python35.PySlice_GetIndices - PySlice_GetIndicesEx=python35.PySlice_GetIndicesEx - PySlice_New=python35.PySlice_New - PySlice_Type=python35.PySlice_Type DATA - PySortWrapper_Type=python35.PySortWrapper_Type DATA - PyState_AddModule=python35.PyState_AddModule - PyState_FindModule=python35.PyState_FindModule - PyState_RemoveModule=python35.PyState_RemoveModule - PyStructSequence_GetItem=python35.PyStructSequence_GetItem - PyStructSequence_New=python35.PyStructSequence_New - PyStructSequence_NewType=python35.PyStructSequence_NewType - PyStructSequence_SetItem=python35.PyStructSequence_SetItem - PySuper_Type=python35.PySuper_Type DATA - PySys_AddWarnOption=python35.PySys_AddWarnOption - PySys_AddWarnOptionUnicode=python35.PySys_AddWarnOptionUnicode - PySys_AddXOption=python35.PySys_AddXOption - PySys_FormatStderr=python35.PySys_FormatStderr - PySys_FormatStdout=python35.PySys_FormatStdout - PySys_GetObject=python35.PySys_GetObject - PySys_GetXOptions=python35.PySys_GetXOptions - PySys_HasWarnOptions=python35.PySys_HasWarnOptions - PySys_ResetWarnOptions=python35.PySys_ResetWarnOptions - PySys_SetArgv=python35.PySys_SetArgv - PySys_SetArgvEx=python35.PySys_SetArgvEx - PySys_SetObject=python35.PySys_SetObject - PySys_SetPath=python35.PySys_SetPath - PySys_WriteStderr=python35.PySys_WriteStderr - PySys_WriteStdout=python35.PySys_WriteStdout - PyThreadState_Clear=python35.PyThreadState_Clear - PyThreadState_Delete=python35.PyThreadState_Delete - PyThreadState_DeleteCurrent=python35.PyThreadState_DeleteCurrent - PyThreadState_Get=python35.PyThreadState_Get - PyThreadState_GetDict=python35.PyThreadState_GetDict - PyThreadState_New=python35.PyThreadState_New - PyThreadState_SetAsyncExc=python35.PyThreadState_SetAsyncExc - PyThreadState_Swap=python35.PyThreadState_Swap - PyTraceBack_Here=python35.PyTraceBack_Here - PyTraceBack_Print=python35.PyTraceBack_Print - PyTraceBack_Type=python35.PyTraceBack_Type DATA - PyTupleIter_Type=python35.PyTupleIter_Type DATA - PyTuple_ClearFreeList=python35.PyTuple_ClearFreeList - PyTuple_GetItem=python35.PyTuple_GetItem - PyTuple_GetSlice=python35.PyTuple_GetSlice - PyTuple_New=python35.PyTuple_New - PyTuple_Pack=python35.PyTuple_Pack - PyTuple_SetItem=python35.PyTuple_SetItem - PyTuple_Size=python35.PyTuple_Size - PyTuple_Type=python35.PyTuple_Type DATA - PyType_ClearCache=python35.PyType_ClearCache - PyType_FromSpec=python35.PyType_FromSpec - PyType_FromSpecWithBases=python35.PyType_FromSpecWithBases - PyType_GenericAlloc=python35.PyType_GenericAlloc - PyType_GenericNew=python35.PyType_GenericNew - PyType_GetFlags=python35.PyType_GetFlags - PyType_GetSlot=python35.PyType_GetSlot - PyType_IsSubtype=python35.PyType_IsSubtype - PyType_Modified=python35.PyType_Modified - PyType_Ready=python35.PyType_Ready - PyType_Type=python35.PyType_Type DATA - PyUnicodeDecodeError_Create=python35.PyUnicodeDecodeError_Create - PyUnicodeDecodeError_GetEncoding=python35.PyUnicodeDecodeError_GetEncoding - PyUnicodeDecodeError_GetEnd=python35.PyUnicodeDecodeError_GetEnd - PyUnicodeDecodeError_GetObject=python35.PyUnicodeDecodeError_GetObject - PyUnicodeDecodeError_GetReason=python35.PyUnicodeDecodeError_GetReason - PyUnicodeDecodeError_GetStart=python35.PyUnicodeDecodeError_GetStart - PyUnicodeDecodeError_SetEnd=python35.PyUnicodeDecodeError_SetEnd - PyUnicodeDecodeError_SetReason=python35.PyUnicodeDecodeError_SetReason - PyUnicodeDecodeError_SetStart=python35.PyUnicodeDecodeError_SetStart - PyUnicodeEncodeError_GetEncoding=python35.PyUnicodeEncodeError_GetEncoding - PyUnicodeEncodeError_GetEnd=python35.PyUnicodeEncodeError_GetEnd - PyUnicodeEncodeError_GetObject=python35.PyUnicodeEncodeError_GetObject - PyUnicodeEncodeError_GetReason=python35.PyUnicodeEncodeError_GetReason - PyUnicodeEncodeError_GetStart=python35.PyUnicodeEncodeError_GetStart - PyUnicodeEncodeError_SetEnd=python35.PyUnicodeEncodeError_SetEnd - PyUnicodeEncodeError_SetReason=python35.PyUnicodeEncodeError_SetReason - PyUnicodeEncodeError_SetStart=python35.PyUnicodeEncodeError_SetStart - PyUnicodeIter_Type=python35.PyUnicodeIter_Type DATA - PyUnicodeTranslateError_GetEnd=python35.PyUnicodeTranslateError_GetEnd - PyUnicodeTranslateError_GetObject=python35.PyUnicodeTranslateError_GetObject - PyUnicodeTranslateError_GetReason=python35.PyUnicodeTranslateError_GetReason - PyUnicodeTranslateError_GetStart=python35.PyUnicodeTranslateError_GetStart - PyUnicodeTranslateError_SetEnd=python35.PyUnicodeTranslateError_SetEnd - PyUnicodeTranslateError_SetReason=python35.PyUnicodeTranslateError_SetReason - PyUnicodeTranslateError_SetStart=python35.PyUnicodeTranslateError_SetStart - PyUnicode_Append=python35.PyUnicode_Append - PyUnicode_AppendAndDel=python35.PyUnicode_AppendAndDel - PyUnicode_AsASCIIString=python35.PyUnicode_AsASCIIString - PyUnicode_AsCharmapString=python35.PyUnicode_AsCharmapString - PyUnicode_AsDecodedObject=python35.PyUnicode_AsDecodedObject - PyUnicode_AsDecodedUnicode=python35.PyUnicode_AsDecodedUnicode - PyUnicode_AsEncodedObject=python35.PyUnicode_AsEncodedObject - PyUnicode_AsEncodedString=python35.PyUnicode_AsEncodedString - PyUnicode_AsEncodedUnicode=python35.PyUnicode_AsEncodedUnicode - PyUnicode_AsLatin1String=python35.PyUnicode_AsLatin1String - PyUnicode_AsRawUnicodeEscapeString=python35.PyUnicode_AsRawUnicodeEscapeString - PyUnicode_AsUCS4=python35.PyUnicode_AsUCS4 - PyUnicode_AsUCS4Copy=python35.PyUnicode_AsUCS4Copy - PyUnicode_AsUTF16String=python35.PyUnicode_AsUTF16String - PyUnicode_AsUTF32String=python35.PyUnicode_AsUTF32String - PyUnicode_AsUTF8String=python35.PyUnicode_AsUTF8String - PyUnicode_AsUnicodeEscapeString=python35.PyUnicode_AsUnicodeEscapeString - PyUnicode_AsWideChar=python35.PyUnicode_AsWideChar - PyUnicode_AsWideCharString=python35.PyUnicode_AsWideCharString - PyUnicode_BuildEncodingMap=python35.PyUnicode_BuildEncodingMap - PyUnicode_ClearFreeList=python35.PyUnicode_ClearFreeList - PyUnicode_Compare=python35.PyUnicode_Compare - PyUnicode_CompareWithASCIIString=python35.PyUnicode_CompareWithASCIIString - PyUnicode_Concat=python35.PyUnicode_Concat - PyUnicode_Contains=python35.PyUnicode_Contains - PyUnicode_Count=python35.PyUnicode_Count - PyUnicode_Decode=python35.PyUnicode_Decode - PyUnicode_DecodeASCII=python35.PyUnicode_DecodeASCII - PyUnicode_DecodeCharmap=python35.PyUnicode_DecodeCharmap - PyUnicode_DecodeFSDefault=python35.PyUnicode_DecodeFSDefault - PyUnicode_DecodeFSDefaultAndSize=python35.PyUnicode_DecodeFSDefaultAndSize - PyUnicode_DecodeLatin1=python35.PyUnicode_DecodeLatin1 - PyUnicode_DecodeLocale=python35.PyUnicode_DecodeLocale - PyUnicode_DecodeLocaleAndSize=python35.PyUnicode_DecodeLocaleAndSize - PyUnicode_DecodeRawUnicodeEscape=python35.PyUnicode_DecodeRawUnicodeEscape - PyUnicode_DecodeUTF16=python35.PyUnicode_DecodeUTF16 - PyUnicode_DecodeUTF16Stateful=python35.PyUnicode_DecodeUTF16Stateful - PyUnicode_DecodeUTF32=python35.PyUnicode_DecodeUTF32 - PyUnicode_DecodeUTF32Stateful=python35.PyUnicode_DecodeUTF32Stateful - PyUnicode_DecodeUTF7=python35.PyUnicode_DecodeUTF7 - PyUnicode_DecodeUTF7Stateful=python35.PyUnicode_DecodeUTF7Stateful - PyUnicode_DecodeUTF8=python35.PyUnicode_DecodeUTF8 - PyUnicode_DecodeUTF8Stateful=python35.PyUnicode_DecodeUTF8Stateful - PyUnicode_DecodeUnicodeEscape=python35.PyUnicode_DecodeUnicodeEscape - PyUnicode_EncodeFSDefault=python35.PyUnicode_EncodeFSDefault - PyUnicode_EncodeLocale=python35.PyUnicode_EncodeLocale - PyUnicode_FSConverter=python35.PyUnicode_FSConverter - PyUnicode_FSDecoder=python35.PyUnicode_FSDecoder - PyUnicode_Find=python35.PyUnicode_Find - PyUnicode_FindChar=python35.PyUnicode_FindChar - PyUnicode_Format=python35.PyUnicode_Format - PyUnicode_FromEncodedObject=python35.PyUnicode_FromEncodedObject - PyUnicode_FromFormat=python35.PyUnicode_FromFormat - PyUnicode_FromFormatV=python35.PyUnicode_FromFormatV - PyUnicode_FromObject=python35.PyUnicode_FromObject - PyUnicode_FromOrdinal=python35.PyUnicode_FromOrdinal - PyUnicode_FromString=python35.PyUnicode_FromString - PyUnicode_FromStringAndSize=python35.PyUnicode_FromStringAndSize - PyUnicode_FromWideChar=python35.PyUnicode_FromWideChar - PyUnicode_GetDefaultEncoding=python35.PyUnicode_GetDefaultEncoding - PyUnicode_GetLength=python35.PyUnicode_GetLength - PyUnicode_GetSize=python35.PyUnicode_GetSize - PyUnicode_InternFromString=python35.PyUnicode_InternFromString - PyUnicode_InternImmortal=python35.PyUnicode_InternImmortal - PyUnicode_InternInPlace=python35.PyUnicode_InternInPlace - PyUnicode_IsIdentifier=python35.PyUnicode_IsIdentifier - PyUnicode_Join=python35.PyUnicode_Join - PyUnicode_Partition=python35.PyUnicode_Partition - PyUnicode_RPartition=python35.PyUnicode_RPartition - PyUnicode_RSplit=python35.PyUnicode_RSplit - PyUnicode_ReadChar=python35.PyUnicode_ReadChar - PyUnicode_Replace=python35.PyUnicode_Replace - PyUnicode_Resize=python35.PyUnicode_Resize - PyUnicode_RichCompare=python35.PyUnicode_RichCompare - PyUnicode_Split=python35.PyUnicode_Split - PyUnicode_Splitlines=python35.PyUnicode_Splitlines - PyUnicode_Substring=python35.PyUnicode_Substring - PyUnicode_Tailmatch=python35.PyUnicode_Tailmatch - PyUnicode_Translate=python35.PyUnicode_Translate - PyUnicode_Type=python35.PyUnicode_Type DATA - PyUnicode_WriteChar=python35.PyUnicode_WriteChar - PyWeakref_GetObject=python35.PyWeakref_GetObject - PyWeakref_NewProxy=python35.PyWeakref_NewProxy - PyWeakref_NewRef=python35.PyWeakref_NewRef - PyWrapperDescr_Type=python35.PyWrapperDescr_Type DATA - PyWrapper_New=python35.PyWrapper_New - PyZip_Type=python35.PyZip_Type DATA - Py_AddPendingCall=python35.Py_AddPendingCall - Py_AtExit=python35.Py_AtExit - Py_BuildValue=python35.Py_BuildValue - Py_CompileString=python35.Py_CompileString - Py_DecRef=python35.Py_DecRef - Py_DecodeLocale=python35.Py_DecodeLocale - Py_EncodeLocale=python35.Py_EncodeLocale - Py_EndInterpreter=python35.Py_EndInterpreter - Py_Exit=python35.Py_Exit - Py_FatalError=python35.Py_FatalError - Py_FileSystemDefaultEncoding=python35.Py_FileSystemDefaultEncoding DATA - Py_Finalize=python35.Py_Finalize - Py_GetBuildInfo=python35.Py_GetBuildInfo - Py_GetCompiler=python35.Py_GetCompiler - Py_GetCopyright=python35.Py_GetCopyright - Py_GetExecPrefix=python35.Py_GetExecPrefix - Py_GetPath=python35.Py_GetPath - Py_GetPlatform=python35.Py_GetPlatform - Py_GetPrefix=python35.Py_GetPrefix - Py_GetProgramFullPath=python35.Py_GetProgramFullPath - Py_GetProgramName=python35.Py_GetProgramName - Py_GetPythonHome=python35.Py_GetPythonHome - Py_GetRecursionLimit=python35.Py_GetRecursionLimit - Py_GetVersion=python35.Py_GetVersion - Py_HasFileSystemDefaultEncoding=python35.Py_HasFileSystemDefaultEncoding DATA - Py_IncRef=python35.Py_IncRef - Py_Initialize=python35.Py_Initialize - Py_InitializeEx=python35.Py_InitializeEx - Py_IsInitialized=python35.Py_IsInitialized - Py_Main=python35.Py_Main - Py_MakePendingCalls=python35.Py_MakePendingCalls - Py_NewInterpreter=python35.Py_NewInterpreter - Py_ReprEnter=python35.Py_ReprEnter - Py_ReprLeave=python35.Py_ReprLeave - Py_SetPath=python35.Py_SetPath - Py_SetProgramName=python35.Py_SetProgramName - Py_SetPythonHome=python35.Py_SetPythonHome - Py_SetRecursionLimit=python35.Py_SetRecursionLimit - Py_SymtableString=python35.Py_SymtableString - Py_VaBuildValue=python35.Py_VaBuildValue - _PyArg_ParseTupleAndKeywords_SizeT=python35._PyArg_ParseTupleAndKeywords_SizeT - _PyArg_ParseTuple_SizeT=python35._PyArg_ParseTuple_SizeT - _PyArg_Parse_SizeT=python35._PyArg_Parse_SizeT - _PyArg_VaParseTupleAndKeywords_SizeT=python35._PyArg_VaParseTupleAndKeywords_SizeT - _PyArg_VaParse_SizeT=python35._PyArg_VaParse_SizeT - _PyErr_BadInternalCall=python35._PyErr_BadInternalCall - _PyObject_CallFunction_SizeT=python35._PyObject_CallFunction_SizeT - _PyObject_CallMethod_SizeT=python35._PyObject_CallMethod_SizeT - _PyObject_GC_Malloc=python35._PyObject_GC_Malloc - _PyObject_GC_New=python35._PyObject_GC_New - _PyObject_GC_NewVar=python35._PyObject_GC_NewVar - _PyObject_GC_Resize=python35._PyObject_GC_Resize - _PyObject_New=python35._PyObject_New - _PyObject_NewVar=python35._PyObject_NewVar - _PyState_AddModule=python35._PyState_AddModule - _PyThreadState_Init=python35._PyThreadState_Init - _PyThreadState_Prealloc=python35._PyThreadState_Prealloc - _PyTrash_delete_later=python35._PyTrash_delete_later DATA - _PyTrash_delete_nesting=python35._PyTrash_delete_nesting DATA - _PyTrash_deposit_object=python35._PyTrash_deposit_object - _PyTrash_destroy_chain=python35._PyTrash_destroy_chain - _PyTrash_thread_deposit_object=python35._PyTrash_thread_deposit_object - _PyTrash_thread_destroy_chain=python35._PyTrash_thread_destroy_chain - _PyWeakref_CallableProxyType=python35._PyWeakref_CallableProxyType DATA - _PyWeakref_ProxyType=python35._PyWeakref_ProxyType DATA - _PyWeakref_RefType=python35._PyWeakref_RefType DATA - _Py_BuildValue_SizeT=python35._Py_BuildValue_SizeT - _Py_CheckRecursionLimit=python35._Py_CheckRecursionLimit DATA - _Py_CheckRecursiveCall=python35._Py_CheckRecursiveCall - _Py_Dealloc=python35._Py_Dealloc - _Py_EllipsisObject=python35._Py_EllipsisObject DATA - _Py_FalseStruct=python35._Py_FalseStruct DATA - _Py_NoneStruct=python35._Py_NoneStruct DATA - _Py_NotImplementedStruct=python35._Py_NotImplementedStruct DATA - _Py_SwappedOp=python35._Py_SwappedOp DATA - _Py_TrueStruct=python35._Py_TrueStruct DATA - _Py_VaBuildValue_SizeT=python35._Py_VaBuildValue_SizeT + PyArg_Parse=python36.PyArg_Parse + PyArg_ParseTuple=python36.PyArg_ParseTuple + PyArg_ParseTupleAndKeywords=python36.PyArg_ParseTupleAndKeywords + PyArg_UnpackTuple=python36.PyArg_UnpackTuple + PyArg_VaParse=python36.PyArg_VaParse + PyArg_VaParseTupleAndKeywords=python36.PyArg_VaParseTupleAndKeywords + PyArg_ValidateKeywordArguments=python36.PyArg_ValidateKeywordArguments + PyBaseObject_Type=python36.PyBaseObject_Type DATA + PyBool_FromLong=python36.PyBool_FromLong + PyBool_Type=python36.PyBool_Type DATA + PyByteArrayIter_Type=python36.PyByteArrayIter_Type DATA + PyByteArray_AsString=python36.PyByteArray_AsString + PyByteArray_Concat=python36.PyByteArray_Concat + PyByteArray_FromObject=python36.PyByteArray_FromObject + PyByteArray_FromStringAndSize=python36.PyByteArray_FromStringAndSize + PyByteArray_Resize=python36.PyByteArray_Resize + PyByteArray_Size=python36.PyByteArray_Size + PyByteArray_Type=python36.PyByteArray_Type DATA + PyBytesIter_Type=python36.PyBytesIter_Type DATA + PyBytes_AsString=python36.PyBytes_AsString + PyBytes_AsStringAndSize=python36.PyBytes_AsStringAndSize + PyBytes_Concat=python36.PyBytes_Concat + PyBytes_ConcatAndDel=python36.PyBytes_ConcatAndDel + PyBytes_DecodeEscape=python36.PyBytes_DecodeEscape + PyBytes_FromFormat=python36.PyBytes_FromFormat + PyBytes_FromFormatV=python36.PyBytes_FromFormatV + PyBytes_FromObject=python36.PyBytes_FromObject + PyBytes_FromString=python36.PyBytes_FromString + PyBytes_FromStringAndSize=python36.PyBytes_FromStringAndSize + PyBytes_Repr=python36.PyBytes_Repr + PyBytes_Size=python36.PyBytes_Size + PyBytes_Type=python36.PyBytes_Type DATA + PyCFunction_Call=python36.PyCFunction_Call + PyCFunction_ClearFreeList=python36.PyCFunction_ClearFreeList + PyCFunction_GetFlags=python36.PyCFunction_GetFlags + PyCFunction_GetFunction=python36.PyCFunction_GetFunction + PyCFunction_GetSelf=python36.PyCFunction_GetSelf + PyCFunction_New=python36.PyCFunction_New + PyCFunction_NewEx=python36.PyCFunction_NewEx + PyCFunction_Type=python36.PyCFunction_Type DATA + PyCallIter_New=python36.PyCallIter_New + PyCallIter_Type=python36.PyCallIter_Type DATA + PyCallable_Check=python36.PyCallable_Check + PyCapsule_GetContext=python36.PyCapsule_GetContext + PyCapsule_GetDestructor=python36.PyCapsule_GetDestructor + PyCapsule_GetName=python36.PyCapsule_GetName + PyCapsule_GetPointer=python36.PyCapsule_GetPointer + PyCapsule_Import=python36.PyCapsule_Import + PyCapsule_IsValid=python36.PyCapsule_IsValid + PyCapsule_New=python36.PyCapsule_New + PyCapsule_SetContext=python36.PyCapsule_SetContext + PyCapsule_SetDestructor=python36.PyCapsule_SetDestructor + PyCapsule_SetName=python36.PyCapsule_SetName + PyCapsule_SetPointer=python36.PyCapsule_SetPointer + PyCapsule_Type=python36.PyCapsule_Type DATA + PyClassMethodDescr_Type=python36.PyClassMethodDescr_Type DATA + PyCodec_BackslashReplaceErrors=python36.PyCodec_BackslashReplaceErrors + PyCodec_Decode=python36.PyCodec_Decode + PyCodec_Decoder=python36.PyCodec_Decoder + PyCodec_Encode=python36.PyCodec_Encode + PyCodec_Encoder=python36.PyCodec_Encoder + PyCodec_IgnoreErrors=python36.PyCodec_IgnoreErrors + PyCodec_IncrementalDecoder=python36.PyCodec_IncrementalDecoder + PyCodec_IncrementalEncoder=python36.PyCodec_IncrementalEncoder + PyCodec_KnownEncoding=python36.PyCodec_KnownEncoding + PyCodec_LookupError=python36.PyCodec_LookupError ++ PyCodec_NameReplaceErrors=python36.PyCodec_NameReplaceErrors + PyCodec_Register=python36.PyCodec_Register + PyCodec_RegisterError=python36.PyCodec_RegisterError + PyCodec_ReplaceErrors=python36.PyCodec_ReplaceErrors + PyCodec_StreamReader=python36.PyCodec_StreamReader + PyCodec_StreamWriter=python36.PyCodec_StreamWriter + PyCodec_StrictErrors=python36.PyCodec_StrictErrors + PyCodec_XMLCharRefReplaceErrors=python36.PyCodec_XMLCharRefReplaceErrors + PyComplex_FromDoubles=python36.PyComplex_FromDoubles + PyComplex_ImagAsDouble=python36.PyComplex_ImagAsDouble + PyComplex_RealAsDouble=python36.PyComplex_RealAsDouble + PyComplex_Type=python36.PyComplex_Type DATA + PyDescr_NewClassMethod=python36.PyDescr_NewClassMethod + PyDescr_NewGetSet=python36.PyDescr_NewGetSet + PyDescr_NewMember=python36.PyDescr_NewMember + PyDescr_NewMethod=python36.PyDescr_NewMethod + PyDictItems_Type=python36.PyDictItems_Type DATA + PyDictIterItem_Type=python36.PyDictIterItem_Type DATA + PyDictIterKey_Type=python36.PyDictIterKey_Type DATA + PyDictIterValue_Type=python36.PyDictIterValue_Type DATA + PyDictKeys_Type=python36.PyDictKeys_Type DATA + PyDictProxy_New=python36.PyDictProxy_New + PyDictProxy_Type=python36.PyDictProxy_Type DATA + PyDictValues_Type=python36.PyDictValues_Type DATA + PyDict_Clear=python36.PyDict_Clear + PyDict_Contains=python36.PyDict_Contains + PyDict_Copy=python36.PyDict_Copy + PyDict_DelItem=python36.PyDict_DelItem + PyDict_DelItemString=python36.PyDict_DelItemString + PyDict_GetItem=python36.PyDict_GetItem + PyDict_GetItemString=python36.PyDict_GetItemString + PyDict_GetItemWithError=python36.PyDict_GetItemWithError + PyDict_Items=python36.PyDict_Items + PyDict_Keys=python36.PyDict_Keys + PyDict_Merge=python36.PyDict_Merge + PyDict_MergeFromSeq2=python36.PyDict_MergeFromSeq2 + PyDict_New=python36.PyDict_New + PyDict_Next=python36.PyDict_Next + PyDict_SetItem=python36.PyDict_SetItem + PyDict_SetItemString=python36.PyDict_SetItemString + PyDict_Size=python36.PyDict_Size + PyDict_Type=python36.PyDict_Type DATA + PyDict_Update=python36.PyDict_Update + PyDict_Values=python36.PyDict_Values + PyEllipsis_Type=python36.PyEllipsis_Type DATA + PyEnum_Type=python36.PyEnum_Type DATA + PyErr_BadArgument=python36.PyErr_BadArgument + PyErr_BadInternalCall=python36.PyErr_BadInternalCall + PyErr_CheckSignals=python36.PyErr_CheckSignals + PyErr_Clear=python36.PyErr_Clear + PyErr_Display=python36.PyErr_Display + PyErr_ExceptionMatches=python36.PyErr_ExceptionMatches + PyErr_Fetch=python36.PyErr_Fetch + PyErr_Format=python36.PyErr_Format + PyErr_FormatV=python36.PyErr_FormatV ++ PyErr_GetExcInfo=python36.PyErr_GetExcInfo + PyErr_GivenExceptionMatches=python36.PyErr_GivenExceptionMatches + PyErr_NewException=python36.PyErr_NewException + PyErr_NewExceptionWithDoc=python36.PyErr_NewExceptionWithDoc + PyErr_NoMemory=python36.PyErr_NoMemory + PyErr_NormalizeException=python36.PyErr_NormalizeException + PyErr_Occurred=python36.PyErr_Occurred + PyErr_Print=python36.PyErr_Print + PyErr_PrintEx=python36.PyErr_PrintEx + PyErr_ProgramText=python36.PyErr_ProgramText ++ PyErr_ResourceWarning=python36.PyErr_ResourceWarning + PyErr_Restore=python36.PyErr_Restore ++ PyErr_SetExcInfo=python36.PyErr_SetExcInfo + PyErr_SetFromErrno=python36.PyErr_SetFromErrno + PyErr_SetFromErrnoWithFilename=python36.PyErr_SetFromErrnoWithFilename + PyErr_SetFromErrnoWithFilenameObject=python36.PyErr_SetFromErrnoWithFilenameObject ++ PyErr_SetFromErrnoWithFilenameObjects=python36.PyErr_SetFromErrnoWithFilenameObjects ++ PyErr_SetImportError=python36.PyErr_SetImportError ++ PyErr_SetImportErrorSubclass=python36.PyErr_SetImportErrorSubclass + PyErr_SetInterrupt=python36.PyErr_SetInterrupt + PyErr_SetNone=python36.PyErr_SetNone + PyErr_SetObject=python36.PyErr_SetObject + PyErr_SetString=python36.PyErr_SetString + PyErr_SyntaxLocation=python36.PyErr_SyntaxLocation ++ PyErr_SyntaxLocationEx=python36.PyErr_SyntaxLocationEx + PyErr_WarnEx=python36.PyErr_WarnEx + PyErr_WarnExplicit=python36.PyErr_WarnExplicit + PyErr_WarnFormat=python36.PyErr_WarnFormat + PyErr_WriteUnraisable=python36.PyErr_WriteUnraisable + PyEval_AcquireLock=python36.PyEval_AcquireLock + PyEval_AcquireThread=python36.PyEval_AcquireThread + PyEval_CallFunction=python36.PyEval_CallFunction + PyEval_CallMethod=python36.PyEval_CallMethod + PyEval_CallObjectWithKeywords=python36.PyEval_CallObjectWithKeywords + PyEval_EvalCode=python36.PyEval_EvalCode + PyEval_EvalCodeEx=python36.PyEval_EvalCodeEx + PyEval_EvalFrame=python36.PyEval_EvalFrame + PyEval_EvalFrameEx=python36.PyEval_EvalFrameEx + PyEval_GetBuiltins=python36.PyEval_GetBuiltins + PyEval_GetCallStats=python36.PyEval_GetCallStats + PyEval_GetFrame=python36.PyEval_GetFrame + PyEval_GetFuncDesc=python36.PyEval_GetFuncDesc + PyEval_GetFuncName=python36.PyEval_GetFuncName + PyEval_GetGlobals=python36.PyEval_GetGlobals + PyEval_GetLocals=python36.PyEval_GetLocals + PyEval_InitThreads=python36.PyEval_InitThreads + PyEval_ReInitThreads=python36.PyEval_ReInitThreads + PyEval_ReleaseLock=python36.PyEval_ReleaseLock + PyEval_ReleaseThread=python36.PyEval_ReleaseThread + PyEval_RestoreThread=python36.PyEval_RestoreThread + PyEval_SaveThread=python36.PyEval_SaveThread + PyEval_ThreadsInitialized=python36.PyEval_ThreadsInitialized + PyExc_ArithmeticError=python36.PyExc_ArithmeticError DATA + PyExc_AssertionError=python36.PyExc_AssertionError DATA + PyExc_AttributeError=python36.PyExc_AttributeError DATA + PyExc_BaseException=python36.PyExc_BaseException DATA ++ PyExc_BlockingIOError=python36.PyExc_BlockingIOError DATA ++ PyExc_BrokenPipeError=python36.PyExc_BrokenPipeError DATA + PyExc_BufferError=python36.PyExc_BufferError DATA + PyExc_BytesWarning=python36.PyExc_BytesWarning DATA ++ PyExc_ChildProcessError=python36.PyExc_ChildProcessError DATA ++ PyExc_ConnectionAbortedError=python36.PyExc_ConnectionAbortedError DATA ++ PyExc_ConnectionError=python36.PyExc_ConnectionError DATA ++ PyExc_ConnectionRefusedError=python36.PyExc_ConnectionRefusedError DATA ++ PyExc_ConnectionResetError=python36.PyExc_ConnectionResetError DATA + PyExc_DeprecationWarning=python36.PyExc_DeprecationWarning DATA + PyExc_EOFError=python36.PyExc_EOFError DATA + PyExc_EnvironmentError=python36.PyExc_EnvironmentError DATA + PyExc_Exception=python36.PyExc_Exception DATA ++ PyExc_FileExistsError=python36.PyExc_FileExistsError DATA ++ PyExc_FileNotFoundError=python36.PyExc_FileNotFoundError DATA + PyExc_FloatingPointError=python36.PyExc_FloatingPointError DATA + PyExc_FutureWarning=python36.PyExc_FutureWarning DATA + PyExc_GeneratorExit=python36.PyExc_GeneratorExit DATA + PyExc_IOError=python36.PyExc_IOError DATA + PyExc_ImportError=python36.PyExc_ImportError DATA + PyExc_ImportWarning=python36.PyExc_ImportWarning DATA + PyExc_IndentationError=python36.PyExc_IndentationError DATA + PyExc_IndexError=python36.PyExc_IndexError DATA ++ PyExc_InterruptedError=python36.PyExc_InterruptedError DATA ++ PyExc_IsADirectoryError=python36.PyExc_IsADirectoryError DATA + PyExc_KeyError=python36.PyExc_KeyError DATA + PyExc_KeyboardInterrupt=python36.PyExc_KeyboardInterrupt DATA + PyExc_LookupError=python36.PyExc_LookupError DATA + PyExc_MemoryError=python36.PyExc_MemoryError DATA ++ PyExc_ModuleNotFoundError=python36.PyExc_ModuleNotFoundError DATA + PyExc_NameError=python36.PyExc_NameError DATA ++ PyExc_NotADirectoryError=python36.PyExc_NotADirectoryError DATA + PyExc_NotImplementedError=python36.PyExc_NotImplementedError DATA + PyExc_OSError=python36.PyExc_OSError DATA + PyExc_OverflowError=python36.PyExc_OverflowError DATA + PyExc_PendingDeprecationWarning=python36.PyExc_PendingDeprecationWarning DATA ++ PyExc_PermissionError=python36.PyExc_PermissionError DATA ++ PyExc_ProcessLookupError=python36.PyExc_ProcessLookupError DATA ++ PyExc_RecursionError=python36.PyExc_RecursionError DATA + PyExc_RecursionErrorInst=python36.PyExc_RecursionErrorInst DATA + PyExc_ReferenceError=python36.PyExc_ReferenceError DATA ++ PyExc_ResourceWarning=python36.PyExc_ResourceWarning DATA + PyExc_RuntimeError=python36.PyExc_RuntimeError DATA + PyExc_RuntimeWarning=python36.PyExc_RuntimeWarning DATA ++ PyExc_StopAsyncIteration=python36.PyExc_StopAsyncIteration DATA + PyExc_StopIteration=python36.PyExc_StopIteration DATA + PyExc_SyntaxError=python36.PyExc_SyntaxError DATA + PyExc_SyntaxWarning=python36.PyExc_SyntaxWarning DATA + PyExc_SystemError=python36.PyExc_SystemError DATA + PyExc_SystemExit=python36.PyExc_SystemExit DATA + PyExc_TabError=python36.PyExc_TabError DATA ++ PyExc_TimeoutError=python36.PyExc_TimeoutError DATA + PyExc_TypeError=python36.PyExc_TypeError DATA + PyExc_UnboundLocalError=python36.PyExc_UnboundLocalError DATA + PyExc_UnicodeDecodeError=python36.PyExc_UnicodeDecodeError DATA + PyExc_UnicodeEncodeError=python36.PyExc_UnicodeEncodeError DATA + PyExc_UnicodeError=python36.PyExc_UnicodeError DATA + PyExc_UnicodeTranslateError=python36.PyExc_UnicodeTranslateError DATA + PyExc_UnicodeWarning=python36.PyExc_UnicodeWarning DATA + PyExc_UserWarning=python36.PyExc_UserWarning DATA + PyExc_ValueError=python36.PyExc_ValueError DATA + PyExc_Warning=python36.PyExc_Warning DATA + PyExc_ZeroDivisionError=python36.PyExc_ZeroDivisionError DATA + PyException_GetCause=python36.PyException_GetCause + PyException_GetContext=python36.PyException_GetContext + PyException_GetTraceback=python36.PyException_GetTraceback + PyException_SetCause=python36.PyException_SetCause + PyException_SetContext=python36.PyException_SetContext + PyException_SetTraceback=python36.PyException_SetTraceback + PyFile_FromFd=python36.PyFile_FromFd + PyFile_GetLine=python36.PyFile_GetLine + PyFile_WriteObject=python36.PyFile_WriteObject + PyFile_WriteString=python36.PyFile_WriteString + PyFilter_Type=python36.PyFilter_Type DATA + PyFloat_AsDouble=python36.PyFloat_AsDouble + PyFloat_FromDouble=python36.PyFloat_FromDouble + PyFloat_FromString=python36.PyFloat_FromString + PyFloat_GetInfo=python36.PyFloat_GetInfo + PyFloat_GetMax=python36.PyFloat_GetMax + PyFloat_GetMin=python36.PyFloat_GetMin + PyFloat_Type=python36.PyFloat_Type DATA + PyFrozenSet_New=python36.PyFrozenSet_New + PyFrozenSet_Type=python36.PyFrozenSet_Type DATA + PyGC_Collect=python36.PyGC_Collect + PyGILState_Ensure=python36.PyGILState_Ensure + PyGILState_GetThisThreadState=python36.PyGILState_GetThisThreadState + PyGILState_Release=python36.PyGILState_Release + PyGetSetDescr_Type=python36.PyGetSetDescr_Type DATA + PyImport_AddModule=python36.PyImport_AddModule ++ PyImport_AddModuleObject=python36.PyImport_AddModuleObject + PyImport_AppendInittab=python36.PyImport_AppendInittab + PyImport_Cleanup=python36.PyImport_Cleanup + PyImport_ExecCodeModule=python36.PyImport_ExecCodeModule + PyImport_ExecCodeModuleEx=python36.PyImport_ExecCodeModuleEx ++ PyImport_ExecCodeModuleObject=python36.PyImport_ExecCodeModuleObject + PyImport_ExecCodeModuleWithPathnames=python36.PyImport_ExecCodeModuleWithPathnames + PyImport_GetImporter=python36.PyImport_GetImporter + PyImport_GetMagicNumber=python36.PyImport_GetMagicNumber + PyImport_GetMagicTag=python36.PyImport_GetMagicTag + PyImport_GetModuleDict=python36.PyImport_GetModuleDict + PyImport_Import=python36.PyImport_Import + PyImport_ImportFrozenModule=python36.PyImport_ImportFrozenModule ++ PyImport_ImportFrozenModuleObject=python36.PyImport_ImportFrozenModuleObject + PyImport_ImportModule=python36.PyImport_ImportModule + PyImport_ImportModuleLevel=python36.PyImport_ImportModuleLevel ++ PyImport_ImportModuleLevelObject=python36.PyImport_ImportModuleLevelObject + PyImport_ImportModuleNoBlock=python36.PyImport_ImportModuleNoBlock + PyImport_ReloadModule=python36.PyImport_ReloadModule + PyInterpreterState_Clear=python36.PyInterpreterState_Clear + PyInterpreterState_Delete=python36.PyInterpreterState_Delete + PyInterpreterState_New=python36.PyInterpreterState_New + PyIter_Next=python36.PyIter_Next + PyListIter_Type=python36.PyListIter_Type DATA + PyListRevIter_Type=python36.PyListRevIter_Type DATA + PyList_Append=python36.PyList_Append + PyList_AsTuple=python36.PyList_AsTuple + PyList_GetItem=python36.PyList_GetItem + PyList_GetSlice=python36.PyList_GetSlice + PyList_Insert=python36.PyList_Insert + PyList_New=python36.PyList_New + PyList_Reverse=python36.PyList_Reverse + PyList_SetItem=python36.PyList_SetItem + PyList_SetSlice=python36.PyList_SetSlice + PyList_Size=python36.PyList_Size + PyList_Sort=python36.PyList_Sort + PyList_Type=python36.PyList_Type DATA + PyLongRangeIter_Type=python36.PyLongRangeIter_Type DATA + PyLong_AsDouble=python36.PyLong_AsDouble + PyLong_AsLong=python36.PyLong_AsLong + PyLong_AsLongAndOverflow=python36.PyLong_AsLongAndOverflow + PyLong_AsLongLong=python36.PyLong_AsLongLong + PyLong_AsLongLongAndOverflow=python36.PyLong_AsLongLongAndOverflow + PyLong_AsSize_t=python36.PyLong_AsSize_t + PyLong_AsSsize_t=python36.PyLong_AsSsize_t + PyLong_AsUnsignedLong=python36.PyLong_AsUnsignedLong + PyLong_AsUnsignedLongLong=python36.PyLong_AsUnsignedLongLong + PyLong_AsUnsignedLongLongMask=python36.PyLong_AsUnsignedLongLongMask + PyLong_AsUnsignedLongMask=python36.PyLong_AsUnsignedLongMask + PyLong_AsVoidPtr=python36.PyLong_AsVoidPtr + PyLong_FromDouble=python36.PyLong_FromDouble + PyLong_FromLong=python36.PyLong_FromLong + PyLong_FromLongLong=python36.PyLong_FromLongLong + PyLong_FromSize_t=python36.PyLong_FromSize_t + PyLong_FromSsize_t=python36.PyLong_FromSsize_t + PyLong_FromString=python36.PyLong_FromString + PyLong_FromUnsignedLong=python36.PyLong_FromUnsignedLong + PyLong_FromUnsignedLongLong=python36.PyLong_FromUnsignedLongLong + PyLong_FromVoidPtr=python36.PyLong_FromVoidPtr + PyLong_GetInfo=python36.PyLong_GetInfo + PyLong_Type=python36.PyLong_Type DATA + PyMap_Type=python36.PyMap_Type DATA + PyMapping_Check=python36.PyMapping_Check + PyMapping_GetItemString=python36.PyMapping_GetItemString + PyMapping_HasKey=python36.PyMapping_HasKey + PyMapping_HasKeyString=python36.PyMapping_HasKeyString + PyMapping_Items=python36.PyMapping_Items + PyMapping_Keys=python36.PyMapping_Keys + PyMapping_Length=python36.PyMapping_Length + PyMapping_SetItemString=python36.PyMapping_SetItemString + PyMapping_Size=python36.PyMapping_Size + PyMapping_Values=python36.PyMapping_Values ++ PyMem_Calloc=python36.PyMem_Calloc + PyMem_Free=python36.PyMem_Free + PyMem_Malloc=python36.PyMem_Malloc + PyMem_Realloc=python36.PyMem_Realloc + PyMemberDescr_Type=python36.PyMemberDescr_Type DATA ++ PyMemoryView_FromMemory=python36.PyMemoryView_FromMemory + PyMemoryView_FromObject=python36.PyMemoryView_FromObject + PyMemoryView_GetContiguous=python36.PyMemoryView_GetContiguous + PyMemoryView_Type=python36.PyMemoryView_Type DATA + PyMethodDescr_Type=python36.PyMethodDescr_Type DATA + PyModuleDef_Init=python36.PyModuleDef_Init + PyModuleDef_Type=python36.PyModuleDef_Type DATA ++ PyModule_AddFunctions=python36.PyModule_AddFunctions + PyModule_AddIntConstant=python36.PyModule_AddIntConstant + PyModule_AddObject=python36.PyModule_AddObject + PyModule_AddStringConstant=python36.PyModule_AddStringConstant + PyModule_Create2=python36.PyModule_Create2 ++ PyModule_ExecDef=python36.PyModule_ExecDef ++ PyModule_FromDefAndSpec2=python36.PyModule_FromDefAndSpec2 + PyModule_GetDef=python36.PyModule_GetDef + PyModule_GetDict=python36.PyModule_GetDict + PyModule_GetFilename=python36.PyModule_GetFilename + PyModule_GetFilenameObject=python36.PyModule_GetFilenameObject + PyModule_GetName=python36.PyModule_GetName ++ PyModule_GetNameObject=python36.PyModule_GetNameObject + PyModule_GetState=python36.PyModule_GetState + PyModule_New=python36.PyModule_New ++ PyModule_NewObject=python36.PyModule_NewObject ++ PyModule_SetDocString=python36.PyModule_SetDocString + PyModule_Type=python36.PyModule_Type DATA + PyNullImporter_Type=python36.PyNullImporter_Type DATA + PyNumber_Absolute=python36.PyNumber_Absolute + PyNumber_Add=python36.PyNumber_Add + PyNumber_And=python36.PyNumber_And + PyNumber_AsSsize_t=python36.PyNumber_AsSsize_t + PyNumber_Check=python36.PyNumber_Check + PyNumber_Divmod=python36.PyNumber_Divmod + PyNumber_Float=python36.PyNumber_Float + PyNumber_FloorDivide=python36.PyNumber_FloorDivide + PyNumber_InPlaceAdd=python36.PyNumber_InPlaceAdd + PyNumber_InPlaceAnd=python36.PyNumber_InPlaceAnd + PyNumber_InPlaceFloorDivide=python36.PyNumber_InPlaceFloorDivide + PyNumber_InPlaceLshift=python36.PyNumber_InPlaceLshift ++ PyNumber_InPlaceMatrixMultiply=python36.PyNumber_InPlaceMatrixMultiply + PyNumber_InPlaceMultiply=python36.PyNumber_InPlaceMultiply + PyNumber_InPlaceOr=python36.PyNumber_InPlaceOr + PyNumber_InPlacePower=python36.PyNumber_InPlacePower + PyNumber_InPlaceRemainder=python36.PyNumber_InPlaceRemainder + PyNumber_InPlaceRshift=python36.PyNumber_InPlaceRshift + PyNumber_InPlaceSubtract=python36.PyNumber_InPlaceSubtract + PyNumber_InPlaceTrueDivide=python36.PyNumber_InPlaceTrueDivide + PyNumber_InPlaceXor=python36.PyNumber_InPlaceXor + PyNumber_Index=python36.PyNumber_Index + PyNumber_Invert=python36.PyNumber_Invert + PyNumber_Long=python36.PyNumber_Long + PyNumber_Lshift=python36.PyNumber_Lshift ++ PyNumber_MatrixMultiply=python36.PyNumber_MatrixMultiply + PyNumber_Multiply=python36.PyNumber_Multiply + PyNumber_Negative=python36.PyNumber_Negative + PyNumber_Or=python36.PyNumber_Or + PyNumber_Positive=python36.PyNumber_Positive + PyNumber_Power=python36.PyNumber_Power + PyNumber_Remainder=python36.PyNumber_Remainder + PyNumber_Rshift=python36.PyNumber_Rshift + PyNumber_Subtract=python36.PyNumber_Subtract + PyNumber_ToBase=python36.PyNumber_ToBase + PyNumber_TrueDivide=python36.PyNumber_TrueDivide + PyNumber_Xor=python36.PyNumber_Xor + PyODictItems_Type=python36.PyODictItems_Type DATA + PyODictIter_Type=python36.PyODictIter_Type DATA + PyODictKeys_Type=python36.PyODictKeys_Type DATA + PyODictValues_Type=python36.PyODictValues_Type DATA + PyODict_DelItem=python36.PyODict_DelItem + PyODict_New=python36.PyODict_New + PyODict_SetItem=python36.PyODict_SetItem + PyODict_Type=python36.PyODict_Type DATA + PyOS_AfterFork=python36.PyOS_AfterFork ++ PyOS_FSPath=python36.PyOS_FSPath + PyOS_InitInterrupts=python36.PyOS_InitInterrupts + PyOS_InputHook=python36.PyOS_InputHook DATA + PyOS_InterruptOccurred=python36.PyOS_InterruptOccurred + PyOS_ReadlineFunctionPointer=python36.PyOS_ReadlineFunctionPointer DATA + PyOS_double_to_string=python36.PyOS_double_to_string + PyOS_getsig=python36.PyOS_getsig + PyOS_mystricmp=python36.PyOS_mystricmp + PyOS_mystrnicmp=python36.PyOS_mystrnicmp + PyOS_setsig=python36.PyOS_setsig + PyOS_snprintf=python36.PyOS_snprintf + PyOS_string_to_double=python36.PyOS_string_to_double + PyOS_strtol=python36.PyOS_strtol + PyOS_strtoul=python36.PyOS_strtoul + PyOS_vsnprintf=python36.PyOS_vsnprintf + PyObject_ASCII=python36.PyObject_ASCII + PyObject_AsCharBuffer=python36.PyObject_AsCharBuffer + PyObject_AsFileDescriptor=python36.PyObject_AsFileDescriptor + PyObject_AsReadBuffer=python36.PyObject_AsReadBuffer + PyObject_AsWriteBuffer=python36.PyObject_AsWriteBuffer + PyObject_Bytes=python36.PyObject_Bytes + PyObject_Call=python36.PyObject_Call + PyObject_CallFunction=python36.PyObject_CallFunction + PyObject_CallFunctionObjArgs=python36.PyObject_CallFunctionObjArgs + PyObject_CallMethod=python36.PyObject_CallMethod + PyObject_CallMethodObjArgs=python36.PyObject_CallMethodObjArgs + PyObject_CallObject=python36.PyObject_CallObject ++ PyObject_Calloc=python36.PyObject_Calloc + PyObject_CheckReadBuffer=python36.PyObject_CheckReadBuffer + PyObject_ClearWeakRefs=python36.PyObject_ClearWeakRefs + PyObject_DelItem=python36.PyObject_DelItem + PyObject_DelItemString=python36.PyObject_DelItemString + PyObject_Dir=python36.PyObject_Dir + PyObject_Format=python36.PyObject_Format + PyObject_Free=python36.PyObject_Free + PyObject_GC_Del=python36.PyObject_GC_Del + PyObject_GC_Track=python36.PyObject_GC_Track + PyObject_GC_UnTrack=python36.PyObject_GC_UnTrack + PyObject_GenericGetAttr=python36.PyObject_GenericGetAttr + PyObject_GenericSetAttr=python36.PyObject_GenericSetAttr ++ PyObject_GenericSetDict=python36.PyObject_GenericSetDict + PyObject_GetAttr=python36.PyObject_GetAttr + PyObject_GetAttrString=python36.PyObject_GetAttrString + PyObject_GetItem=python36.PyObject_GetItem + PyObject_GetIter=python36.PyObject_GetIter + PyObject_HasAttr=python36.PyObject_HasAttr + PyObject_HasAttrString=python36.PyObject_HasAttrString + PyObject_Hash=python36.PyObject_Hash + PyObject_HashNotImplemented=python36.PyObject_HashNotImplemented + PyObject_Init=python36.PyObject_Init + PyObject_InitVar=python36.PyObject_InitVar + PyObject_IsInstance=python36.PyObject_IsInstance + PyObject_IsSubclass=python36.PyObject_IsSubclass + PyObject_IsTrue=python36.PyObject_IsTrue + PyObject_Length=python36.PyObject_Length + PyObject_Malloc=python36.PyObject_Malloc + PyObject_Not=python36.PyObject_Not + PyObject_Realloc=python36.PyObject_Realloc + PyObject_Repr=python36.PyObject_Repr + PyObject_RichCompare=python36.PyObject_RichCompare + PyObject_RichCompareBool=python36.PyObject_RichCompareBool + PyObject_SelfIter=python36.PyObject_SelfIter + PyObject_SetAttr=python36.PyObject_SetAttr + PyObject_SetAttrString=python36.PyObject_SetAttrString + PyObject_SetItem=python36.PyObject_SetItem + PyObject_Size=python36.PyObject_Size + PyObject_Str=python36.PyObject_Str + PyObject_Type=python36.PyObject_Type + PyParser_SimpleParseFileFlags=python36.PyParser_SimpleParseFileFlags + PyParser_SimpleParseStringFlags=python36.PyParser_SimpleParseStringFlags ++ PyParser_SimpleParseStringFlagsFilename=python36.PyParser_SimpleParseStringFlagsFilename + PyProperty_Type=python36.PyProperty_Type DATA + PyRangeIter_Type=python36.PyRangeIter_Type DATA + PyRange_Type=python36.PyRange_Type DATA + PyReversed_Type=python36.PyReversed_Type DATA + PySeqIter_New=python36.PySeqIter_New + PySeqIter_Type=python36.PySeqIter_Type DATA + PySequence_Check=python36.PySequence_Check + PySequence_Concat=python36.PySequence_Concat + PySequence_Contains=python36.PySequence_Contains + PySequence_Count=python36.PySequence_Count + PySequence_DelItem=python36.PySequence_DelItem + PySequence_DelSlice=python36.PySequence_DelSlice + PySequence_Fast=python36.PySequence_Fast + PySequence_GetItem=python36.PySequence_GetItem + PySequence_GetSlice=python36.PySequence_GetSlice + PySequence_In=python36.PySequence_In + PySequence_InPlaceConcat=python36.PySequence_InPlaceConcat + PySequence_InPlaceRepeat=python36.PySequence_InPlaceRepeat + PySequence_Index=python36.PySequence_Index + PySequence_Length=python36.PySequence_Length + PySequence_List=python36.PySequence_List + PySequence_Repeat=python36.PySequence_Repeat + PySequence_SetItem=python36.PySequence_SetItem + PySequence_SetSlice=python36.PySequence_SetSlice + PySequence_Size=python36.PySequence_Size + PySequence_Tuple=python36.PySequence_Tuple + PySetIter_Type=python36.PySetIter_Type DATA + PySet_Add=python36.PySet_Add + PySet_Clear=python36.PySet_Clear + PySet_Contains=python36.PySet_Contains + PySet_Discard=python36.PySet_Discard + PySet_New=python36.PySet_New + PySet_Pop=python36.PySet_Pop + PySet_Size=python36.PySet_Size + PySet_Type=python36.PySet_Type DATA + PySlice_GetIndices=python36.PySlice_GetIndices + PySlice_GetIndicesEx=python36.PySlice_GetIndicesEx + PySlice_New=python36.PySlice_New + PySlice_Type=python36.PySlice_Type DATA + PySortWrapper_Type=python36.PySortWrapper_Type DATA + PyState_AddModule=python36.PyState_AddModule + PyState_FindModule=python36.PyState_FindModule + PyState_RemoveModule=python36.PyState_RemoveModule + PyStructSequence_GetItem=python36.PyStructSequence_GetItem + PyStructSequence_New=python36.PyStructSequence_New + PyStructSequence_NewType=python36.PyStructSequence_NewType + PyStructSequence_SetItem=python36.PyStructSequence_SetItem + PySuper_Type=python36.PySuper_Type DATA + PySys_AddWarnOption=python36.PySys_AddWarnOption + PySys_AddWarnOptionUnicode=python36.PySys_AddWarnOptionUnicode ++ PySys_AddXOption=python36.PySys_AddXOption + PySys_FormatStderr=python36.PySys_FormatStderr + PySys_FormatStdout=python36.PySys_FormatStdout + PySys_GetObject=python36.PySys_GetObject ++ PySys_GetXOptions=python36.PySys_GetXOptions + PySys_HasWarnOptions=python36.PySys_HasWarnOptions + PySys_ResetWarnOptions=python36.PySys_ResetWarnOptions + PySys_SetArgv=python36.PySys_SetArgv + PySys_SetArgvEx=python36.PySys_SetArgvEx + PySys_SetObject=python36.PySys_SetObject + PySys_SetPath=python36.PySys_SetPath + PySys_WriteStderr=python36.PySys_WriteStderr + PySys_WriteStdout=python36.PySys_WriteStdout + PyThreadState_Clear=python36.PyThreadState_Clear + PyThreadState_Delete=python36.PyThreadState_Delete + PyThreadState_DeleteCurrent=python36.PyThreadState_DeleteCurrent + PyThreadState_Get=python36.PyThreadState_Get + PyThreadState_GetDict=python36.PyThreadState_GetDict + PyThreadState_New=python36.PyThreadState_New + PyThreadState_SetAsyncExc=python36.PyThreadState_SetAsyncExc + PyThreadState_Swap=python36.PyThreadState_Swap + PyTraceBack_Here=python36.PyTraceBack_Here + PyTraceBack_Print=python36.PyTraceBack_Print + PyTraceBack_Type=python36.PyTraceBack_Type DATA + PyTupleIter_Type=python36.PyTupleIter_Type DATA + PyTuple_ClearFreeList=python36.PyTuple_ClearFreeList + PyTuple_GetItem=python36.PyTuple_GetItem + PyTuple_GetSlice=python36.PyTuple_GetSlice + PyTuple_New=python36.PyTuple_New + PyTuple_Pack=python36.PyTuple_Pack + PyTuple_SetItem=python36.PyTuple_SetItem + PyTuple_Size=python36.PyTuple_Size + PyTuple_Type=python36.PyTuple_Type DATA + PyType_ClearCache=python36.PyType_ClearCache + PyType_FromSpec=python36.PyType_FromSpec + PyType_FromSpecWithBases=python36.PyType_FromSpecWithBases + PyType_GenericAlloc=python36.PyType_GenericAlloc + PyType_GenericNew=python36.PyType_GenericNew + PyType_GetFlags=python36.PyType_GetFlags + PyType_GetSlot=python36.PyType_GetSlot + PyType_IsSubtype=python36.PyType_IsSubtype + PyType_Modified=python36.PyType_Modified + PyType_Ready=python36.PyType_Ready + PyType_Type=python36.PyType_Type DATA + PyUnicodeDecodeError_Create=python36.PyUnicodeDecodeError_Create + PyUnicodeDecodeError_GetEncoding=python36.PyUnicodeDecodeError_GetEncoding + PyUnicodeDecodeError_GetEnd=python36.PyUnicodeDecodeError_GetEnd + PyUnicodeDecodeError_GetObject=python36.PyUnicodeDecodeError_GetObject + PyUnicodeDecodeError_GetReason=python36.PyUnicodeDecodeError_GetReason + PyUnicodeDecodeError_GetStart=python36.PyUnicodeDecodeError_GetStart + PyUnicodeDecodeError_SetEnd=python36.PyUnicodeDecodeError_SetEnd + PyUnicodeDecodeError_SetReason=python36.PyUnicodeDecodeError_SetReason + PyUnicodeDecodeError_SetStart=python36.PyUnicodeDecodeError_SetStart + PyUnicodeEncodeError_GetEncoding=python36.PyUnicodeEncodeError_GetEncoding + PyUnicodeEncodeError_GetEnd=python36.PyUnicodeEncodeError_GetEnd + PyUnicodeEncodeError_GetObject=python36.PyUnicodeEncodeError_GetObject + PyUnicodeEncodeError_GetReason=python36.PyUnicodeEncodeError_GetReason + PyUnicodeEncodeError_GetStart=python36.PyUnicodeEncodeError_GetStart + PyUnicodeEncodeError_SetEnd=python36.PyUnicodeEncodeError_SetEnd + PyUnicodeEncodeError_SetReason=python36.PyUnicodeEncodeError_SetReason + PyUnicodeEncodeError_SetStart=python36.PyUnicodeEncodeError_SetStart + PyUnicodeIter_Type=python36.PyUnicodeIter_Type DATA + PyUnicodeTranslateError_GetEnd=python36.PyUnicodeTranslateError_GetEnd + PyUnicodeTranslateError_GetObject=python36.PyUnicodeTranslateError_GetObject + PyUnicodeTranslateError_GetReason=python36.PyUnicodeTranslateError_GetReason + PyUnicodeTranslateError_GetStart=python36.PyUnicodeTranslateError_GetStart + PyUnicodeTranslateError_SetEnd=python36.PyUnicodeTranslateError_SetEnd + PyUnicodeTranslateError_SetReason=python36.PyUnicodeTranslateError_SetReason + PyUnicodeTranslateError_SetStart=python36.PyUnicodeTranslateError_SetStart + PyUnicode_Append=python36.PyUnicode_Append + PyUnicode_AppendAndDel=python36.PyUnicode_AppendAndDel + PyUnicode_AsASCIIString=python36.PyUnicode_AsASCIIString + PyUnicode_AsCharmapString=python36.PyUnicode_AsCharmapString + PyUnicode_AsDecodedObject=python36.PyUnicode_AsDecodedObject + PyUnicode_AsDecodedUnicode=python36.PyUnicode_AsDecodedUnicode + PyUnicode_AsEncodedObject=python36.PyUnicode_AsEncodedObject + PyUnicode_AsEncodedString=python36.PyUnicode_AsEncodedString + PyUnicode_AsEncodedUnicode=python36.PyUnicode_AsEncodedUnicode + PyUnicode_AsLatin1String=python36.PyUnicode_AsLatin1String + PyUnicode_AsRawUnicodeEscapeString=python36.PyUnicode_AsRawUnicodeEscapeString ++ PyUnicode_AsUCS4=python36.PyUnicode_AsUCS4 ++ PyUnicode_AsUCS4Copy=python36.PyUnicode_AsUCS4Copy + PyUnicode_AsUTF16String=python36.PyUnicode_AsUTF16String + PyUnicode_AsUTF32String=python36.PyUnicode_AsUTF32String + PyUnicode_AsUTF8String=python36.PyUnicode_AsUTF8String + PyUnicode_AsUnicodeEscapeString=python36.PyUnicode_AsUnicodeEscapeString + PyUnicode_AsWideChar=python36.PyUnicode_AsWideChar ++ PyUnicode_AsWideCharString=python36.PyUnicode_AsWideCharString + PyUnicode_BuildEncodingMap=python36.PyUnicode_BuildEncodingMap + PyUnicode_ClearFreeList=python36.PyUnicode_ClearFreeList + PyUnicode_Compare=python36.PyUnicode_Compare + PyUnicode_CompareWithASCIIString=python36.PyUnicode_CompareWithASCIIString + PyUnicode_Concat=python36.PyUnicode_Concat + PyUnicode_Contains=python36.PyUnicode_Contains + PyUnicode_Count=python36.PyUnicode_Count + PyUnicode_Decode=python36.PyUnicode_Decode + PyUnicode_DecodeASCII=python36.PyUnicode_DecodeASCII + PyUnicode_DecodeCharmap=python36.PyUnicode_DecodeCharmap + PyUnicode_DecodeFSDefault=python36.PyUnicode_DecodeFSDefault + PyUnicode_DecodeFSDefaultAndSize=python36.PyUnicode_DecodeFSDefaultAndSize + PyUnicode_DecodeLatin1=python36.PyUnicode_DecodeLatin1 ++ PyUnicode_DecodeLocale=python36.PyUnicode_DecodeLocale ++ PyUnicode_DecodeLocaleAndSize=python36.PyUnicode_DecodeLocaleAndSize + PyUnicode_DecodeRawUnicodeEscape=python36.PyUnicode_DecodeRawUnicodeEscape + PyUnicode_DecodeUTF16=python36.PyUnicode_DecodeUTF16 + PyUnicode_DecodeUTF16Stateful=python36.PyUnicode_DecodeUTF16Stateful + PyUnicode_DecodeUTF32=python36.PyUnicode_DecodeUTF32 + PyUnicode_DecodeUTF32Stateful=python36.PyUnicode_DecodeUTF32Stateful + PyUnicode_DecodeUTF7=python36.PyUnicode_DecodeUTF7 + PyUnicode_DecodeUTF7Stateful=python36.PyUnicode_DecodeUTF7Stateful + PyUnicode_DecodeUTF8=python36.PyUnicode_DecodeUTF8 + PyUnicode_DecodeUTF8Stateful=python36.PyUnicode_DecodeUTF8Stateful + PyUnicode_DecodeUnicodeEscape=python36.PyUnicode_DecodeUnicodeEscape + PyUnicode_EncodeFSDefault=python36.PyUnicode_EncodeFSDefault ++ PyUnicode_EncodeLocale=python36.PyUnicode_EncodeLocale + PyUnicode_FSConverter=python36.PyUnicode_FSConverter + PyUnicode_FSDecoder=python36.PyUnicode_FSDecoder + PyUnicode_Find=python36.PyUnicode_Find ++ PyUnicode_FindChar=python36.PyUnicode_FindChar + PyUnicode_Format=python36.PyUnicode_Format + PyUnicode_FromEncodedObject=python36.PyUnicode_FromEncodedObject + PyUnicode_FromFormat=python36.PyUnicode_FromFormat + PyUnicode_FromFormatV=python36.PyUnicode_FromFormatV + PyUnicode_FromObject=python36.PyUnicode_FromObject + PyUnicode_FromOrdinal=python36.PyUnicode_FromOrdinal + PyUnicode_FromString=python36.PyUnicode_FromString + PyUnicode_FromStringAndSize=python36.PyUnicode_FromStringAndSize + PyUnicode_FromWideChar=python36.PyUnicode_FromWideChar + PyUnicode_GetDefaultEncoding=python36.PyUnicode_GetDefaultEncoding ++ PyUnicode_GetLength=python36.PyUnicode_GetLength + PyUnicode_GetSize=python36.PyUnicode_GetSize + PyUnicode_InternFromString=python36.PyUnicode_InternFromString + PyUnicode_InternImmortal=python36.PyUnicode_InternImmortal + PyUnicode_InternInPlace=python36.PyUnicode_InternInPlace + PyUnicode_IsIdentifier=python36.PyUnicode_IsIdentifier + PyUnicode_Join=python36.PyUnicode_Join + PyUnicode_Partition=python36.PyUnicode_Partition + PyUnicode_RPartition=python36.PyUnicode_RPartition + PyUnicode_RSplit=python36.PyUnicode_RSplit ++ PyUnicode_ReadChar=python36.PyUnicode_ReadChar + PyUnicode_Replace=python36.PyUnicode_Replace + PyUnicode_Resize=python36.PyUnicode_Resize + PyUnicode_RichCompare=python36.PyUnicode_RichCompare + PyUnicode_Split=python36.PyUnicode_Split + PyUnicode_Splitlines=python36.PyUnicode_Splitlines ++ PyUnicode_Substring=python36.PyUnicode_Substring + PyUnicode_Tailmatch=python36.PyUnicode_Tailmatch + PyUnicode_Translate=python36.PyUnicode_Translate + PyUnicode_Type=python36.PyUnicode_Type DATA ++ PyUnicode_WriteChar=python36.PyUnicode_WriteChar + PyWeakref_GetObject=python36.PyWeakref_GetObject + PyWeakref_NewProxy=python36.PyWeakref_NewProxy + PyWeakref_NewRef=python36.PyWeakref_NewRef + PyWrapperDescr_Type=python36.PyWrapperDescr_Type DATA + PyWrapper_New=python36.PyWrapper_New + PyZip_Type=python36.PyZip_Type DATA + Py_AddPendingCall=python36.Py_AddPendingCall + Py_AtExit=python36.Py_AtExit + Py_BuildValue=python36.Py_BuildValue + Py_CompileString=python36.Py_CompileString + Py_DecRef=python36.Py_DecRef ++ Py_DecodeLocale=python36.Py_DecodeLocale ++ Py_EncodeLocale=python36.Py_EncodeLocale + Py_EndInterpreter=python36.Py_EndInterpreter + Py_Exit=python36.Py_Exit + Py_FatalError=python36.Py_FatalError ++ Py_FileSystemDefaultEncodeErrors=python36.Py_FileSystemDefaultEncodeErrors DATA + Py_FileSystemDefaultEncoding=python36.Py_FileSystemDefaultEncoding DATA + Py_Finalize=python36.Py_Finalize + Py_FinalizeEx=python36.Py_FinalizeEx + Py_GetBuildInfo=python36.Py_GetBuildInfo + Py_GetCompiler=python36.Py_GetCompiler + Py_GetCopyright=python36.Py_GetCopyright + Py_GetExecPrefix=python36.Py_GetExecPrefix + Py_GetPath=python36.Py_GetPath + Py_GetPlatform=python36.Py_GetPlatform + Py_GetPrefix=python36.Py_GetPrefix + Py_GetProgramFullPath=python36.Py_GetProgramFullPath + Py_GetProgramName=python36.Py_GetProgramName + Py_GetPythonHome=python36.Py_GetPythonHome + Py_GetRecursionLimit=python36.Py_GetRecursionLimit + Py_GetVersion=python36.Py_GetVersion + Py_HasFileSystemDefaultEncoding=python36.Py_HasFileSystemDefaultEncoding DATA + Py_IncRef=python36.Py_IncRef + Py_Initialize=python36.Py_Initialize + Py_InitializeEx=python36.Py_InitializeEx + Py_IsInitialized=python36.Py_IsInitialized + Py_Main=python36.Py_Main + Py_MakePendingCalls=python36.Py_MakePendingCalls + Py_NewInterpreter=python36.Py_NewInterpreter + Py_ReprEnter=python36.Py_ReprEnter + Py_ReprLeave=python36.Py_ReprLeave ++ Py_SetPath=python36.Py_SetPath + Py_SetProgramName=python36.Py_SetProgramName + Py_SetPythonHome=python36.Py_SetPythonHome + Py_SetRecursionLimit=python36.Py_SetRecursionLimit + Py_SymtableString=python36.Py_SymtableString + Py_VaBuildValue=python36.Py_VaBuildValue + _PyArg_ParseTupleAndKeywords_SizeT=python36._PyArg_ParseTupleAndKeywords_SizeT + _PyArg_ParseTuple_SizeT=python36._PyArg_ParseTuple_SizeT + _PyArg_Parse_SizeT=python36._PyArg_Parse_SizeT + _PyArg_VaParseTupleAndKeywords_SizeT=python36._PyArg_VaParseTupleAndKeywords_SizeT + _PyArg_VaParse_SizeT=python36._PyArg_VaParse_SizeT + _PyErr_BadInternalCall=python36._PyErr_BadInternalCall + _PyObject_CallFunction_SizeT=python36._PyObject_CallFunction_SizeT + _PyObject_CallMethod_SizeT=python36._PyObject_CallMethod_SizeT + _PyObject_GC_Malloc=python36._PyObject_GC_Malloc + _PyObject_GC_New=python36._PyObject_GC_New + _PyObject_GC_NewVar=python36._PyObject_GC_NewVar + _PyObject_GC_Resize=python36._PyObject_GC_Resize + _PyObject_New=python36._PyObject_New + _PyObject_NewVar=python36._PyObject_NewVar + _PyState_AddModule=python36._PyState_AddModule + _PyThreadState_Init=python36._PyThreadState_Init + _PyThreadState_Prealloc=python36._PyThreadState_Prealloc + _PyTrash_delete_later=python36._PyTrash_delete_later DATA + _PyTrash_delete_nesting=python36._PyTrash_delete_nesting DATA + _PyTrash_deposit_object=python36._PyTrash_deposit_object + _PyTrash_destroy_chain=python36._PyTrash_destroy_chain ++ _PyTrash_thread_deposit_object=python36._PyTrash_thread_deposit_object ++ _PyTrash_thread_destroy_chain=python36._PyTrash_thread_destroy_chain + _PyWeakref_CallableProxyType=python36._PyWeakref_CallableProxyType DATA + _PyWeakref_ProxyType=python36._PyWeakref_ProxyType DATA + _PyWeakref_RefType=python36._PyWeakref_RefType DATA + _Py_BuildValue_SizeT=python36._Py_BuildValue_SizeT + _Py_CheckRecursionLimit=python36._Py_CheckRecursionLimit DATA + _Py_CheckRecursiveCall=python36._Py_CheckRecursiveCall + _Py_Dealloc=python36._Py_Dealloc + _Py_EllipsisObject=python36._Py_EllipsisObject DATA + _Py_FalseStruct=python36._Py_FalseStruct DATA + _Py_NoneStruct=python36._Py_NoneStruct DATA + _Py_NotImplementedStruct=python36._Py_NotImplementedStruct DATA + _Py_SwappedOp=python36._Py_SwappedOp DATA + _Py_TrueStruct=python36._Py_TrueStruct DATA + _Py_VaBuildValue_SizeT=python36._Py_VaBuildValue_SizeT