- Issue #17669: Fix crash involving finalization of generators using yield from.
+- Issue #14439: Python now prints the traceback on runpy failure at startup.
+
+- Issue #17469: Fix _Py_GetAllocatedBlocks() and sys.getallocatedblocks()
+ when running on valgrind.
+
- Issue #17619: Make input() check for Ctrl-C correctly on Windows.
+- Issue #17357: Add missing verbosity messages for -v/-vv that were lost during
+ the importlib transition.
+
- Issue #17610: Don't rely on non-standard behavior of the C qsort() function.
-- Issue #17357: Add missing verbosity output when using -v/-vv.
+- Issue #17323: The "[X refs, Y blocks]" printed by debug builds has been
+ disabled by default. It can be re-enabled with the `-X showrefcount` option.
- - Issue #17522: Add the PyGILState_Check() API.
-
- - Issue #17327: Add PyDict_SetDefault.
-
Library
-------
- Issue #14971: unittest test discovery no longer gets confused when a function
has a different __name__ than its name in the TestCase class dictionary.
-- Issue #17678: Fix DeprecationWarning in the http/cookiejar.py by changing the
- usage of get_origin_req_host() to origin_req_host.
-
-- Issue #17666: Fix reading gzip files with an extra field.
-
-- Issue #17502: Process DEFAULT values in mock side_effect that returns iterator.
- Patch by Michael Foord.
-
-- Issue #17572: Avoid chained exceptions while passing bad directives to
- time.strptime(). Initial patch by Claudiu Popa.
+- Issue #17487: The wave getparams method now returns a namedtuple rather than
+ a plain tuple.
-- Issue #17435: threading.Timer's __init__ method no longer uses mutable
- default values for the args and kwargs parameters.
+- Issue #17675: socket repr() provides local and remote addresses (if any).
+ Patch by Giampaolo Rodola'
-- Issue #17526: fix an IndexError raised while passing code without filename to
- inspect.findsource(). Initial patch by Tyler Doyle.
-
-- Issue #16550: Update the opcode descriptions of pickletools to use unsigned
- integers where appropriate. Initial patch by Serhiy Storchaka.
+- Issue #17093: Make the ABCs in importlib.abc provide default values or raise
+ reasonable exceptions for their methods to make them more amenable to super()
+ calls.
-IDLE
-----
+- Issue #17566: Make importlib.abc.Loader.module_repr() optional instead of an
+ abstractmethod and raising NotImplementedError so as to be ignored by default.
-- Issue #17585: Fixed IDLE regression. Now closes when using exit() or quit().
-
-- Issue #17657: Show full Tk version in IDLE's about dialog.
- Patch by Todd Rovito.
-
-- Issue #17613: Prevent traceback when removing syntax colorizer in IDLE.
-
-- Issue #1207589: Backwards-compatibility patch for right-click menu in IDLE.
+- Issue #17678: Remove the use of deprecated method in http/cookiejar.py.
+ Changing the usage of get_origin_req_host() to origin_req_host.
-- Issue #16887: IDLE now accepts Cancel in tabify/untabify dialog box.
+- Issue #17666: Fix reading gzip files with an extra field.
-- Issue #17625: In IDLE, close the replace dialog after it is used.
+- Issue #16475: Support object instancing, recursion and interned strings
+ in marshal
-- Issue #14254: IDLE now handles readline correctly across shell restarts.
+- Issue #17502: Process DEFAULT values in mock side_effect that returns iterator.
- - Use the HTTPS PyPI url for upload, overriding any plain HTTP URL in pypirc.
-
-- Issue #17614: IDLE no longer raises exception when quickly closing a file.
+- Issue #16795: On the ast.arguments object, unify vararg with varargannotation
+ and kwarg and kwargannotation. Change the column offset of ast.Attribute to be
+ at the attribute name.
-- Issue #6698: IDLE now opens just an editor window when configured to do so.
+- Issue #17434: Properly raise a SyntaxError when a string occurs between future
+ imports.
-- Issue #8900: Using keyboard shortcuts in IDLE to open a file no longer
- raises an exception.
+- Issue #17117: Import and @importlib.util.set_loader now set __loader__ when
+ it has a value of None or the attribute doesn't exist.
-- Issue #6649: Fixed missing exit status in IDLE. Patch by Guilherme Polo.
+- Issue #17032: The "global" in the "NameError: global name 'x' is not defined"
+ error message has been removed. Patch by Ram Rachum.
Tests
-----
- Issue #6696: add documentation for the Profile objects, and improve
profile/cProfile docs. Patch by Tom Pinckney.
-
-What's New in Python 3.3.1?
-===========================
-
-*Release date: 07-Apr-2013*
-
-Build
++C-API
+ -----
+
-- Issue #17550: Fix the --enable-profiling configure switch.
-
-IDLE
--------
++- Issue #17522: Add the PyGILState_Check() API.
+
-- Issue #17625: In IDLE, close the replace dialog after it is used.
++- Issue #17327: Add PyDict_SetDefault.
+
What's New in Python 3.3.1 release candidate 1?
===============================================
- Issue #17328: Fix possible refleak in dict.setdefault.
- - Issue #17223: array module: Fix a crasher when converting an array containing
- invalid characters (outside range [U+0000; U+10ffff]) to Unicode:
- repr(array), str(array) and array.tounicode(). Patch written by Manuel Jacob.
-- Issue #17223: Fix PyUnicode_FromUnicode() for string of 1 character outside
- the range U+0000-U+10ffff.
-
-- Issue #1692335: Move initial args assignment to
- BaseException.__new__ to help pickling of naive subclasses.
--
- Issue #17275: Corrected class name in init error messages of the C version of
BufferedWriter and BufferedRandom.
- Issue #14420: Support the full DWORD (unsigned long) range in Py2Reg
when passed a REG_DWORD value. Fixes OverflowError in winreg.SetValueEx.
- - Issue #15422: Get rid of PyCFunction_New macro. Use PyCFunction_NewEx
- function (PyCFunction_New func is still present for backward compatibility).
-
+- Issue #11939: Set the st_dev attribute of stat_result to allow Windows to
+ take advantage of the os.path.samefile/sameopenfile/samestat implementations
+ used by other platforms.
+
+- Issue #16772: The int() constructor's second argument (base) no longer
+ accepts non integer values. Consistent with the behavior in Python 2.
+
+- Issue #14470: Remove w9xpopen support per PEP 11.
+
+- Issue #9856: Replace deprecation warning with raising TypeError
+ in object.__format__. Patch by Florent Xicluna.
+
- Issue #16597: In buffered and text IO, call close() on the underlying stream
if invoking flush() fails.
- Issue #8401: assigning an int to a bytearray slice (e.g. b[3:4] = 5) now
raises an error.
- - Issue #16086: PyTypeObject.tp_flags and PyType_Spec.flags are now unsigned
- (unsigned long and unsigned int) to avoid an undefined behaviour with
- Py_TPFLAGS_TYPE_SUBCLASS ((1 << 31). PyType_GetFlags() result type is
- now unsigned too (unsigned long, instead of long).
-
+- Issue #7317: Display full tracebacks when an error occurs asynchronously.
+ Patch by Alon Horev with update by Alexey Kachayev.
+
+- Issue #16309: Make PYTHONPATH="" behavior the same as if PYTHONPATH
+ not set at all.
+
+- Issue #10189: Improve the error reporting of SyntaxErrors related to global
+ and nonlocal statements.
+
- Fix segfaults on setting __qualname__ on builtin types and attempting to
delete it on any type.
- Issue #16271: Fix strange bugs that resulted from __qualname__ appearing in a
class's __dict__ and on type.
- - Issue #16197: Update winreg docstrings and documentation to match code.
- Patch by Zachary Ware.
-
- - Issue #16241: Document -X faulthandler command line option.
- Patch by Marek Ć uppa.
-
+- Issue #12805: Make bytes.join and bytearray.join faster when the separator
+ is empty. Patch by Serhiy Storchaka.
+
- Issue #6074: Ensure cached bytecode files can always be updated by the
user that created them, even when the source file is read-only.
- - Issue #16166: Add PY_LITTLE_ENDIAN and PY_BIG_ENDIAN macros and unified
- endianness detection and handling.
-
+- Issue #15958: bytes.join and bytearray.join now accept arbitrary buffer
+ objects.
+
- Issue #14783: Improve int() docstring and switch docstrings for str(),
range(), and slice() to use multi-line signatures.
- Issue #17476: Fixed regression relative to Python2 in undocumented pydoc
'allmethods'; it was missing unbound methods on the class.
+- Issue #17474: Remove the deprecated methods of Request class.
+
+- Issue #16709: unittest discover order is no-longer filesystem specific. Patch
+ by Jeff Ramnani.
+
++- Use the HTTPS PyPI url for upload, overriding any plain HTTP URL in pypirc.
++
+- Issue #5024: sndhdr.whichhdr now returns the frame count for WAV files
+ rather than -1.
+
+- Issue #17460: Remove the strict argument of HTTPConnection and removing the
+ DeprecationWarning being issued from 3.2 onwards.
+
- Issue #16880: Do not assume _imp.load_dynamic() is defined in the imp module.
- Issue #16389: Fixed a performance regression relative to Python 3.1 in the
a failure while decoding empty object literals when object_pairs_hook was
specified.
- _ Issue #17385: Fix quadratic behavior in threading.Condition. The FIFO
++- Issue #17385: Fix quadratic behavior in threading.Condition. The FIFO
+ queue now uses a deque instead of a list.
+
+- Issue #15806: Add contextlib.ignored(). This creates a context manager
+ to ignore specified exceptions, replacing the "except Exc: pass" idiom.
+
- Issue #14645: The email generator classes now produce output using the
specified linesep throughout. Previously if the prolog, epilog, or
body were stored with a different linesep, that linesep was used. This
- Issue #16962: Use getdents64 instead of the obsolete getdents syscall
in the subprocess module on Linux.
+- Issue #16935: unittest now counts the module as skipped if it raises SkipTest,
+ instead of counting it as an error. Patch by Zachary Ware.
+
- Issue #17018: Make Process.join() retry if os.waitpid() fails with EINTR.
+ - Issue #17223: array module: Fix a crasher when converting an array containing
+ invalid characters (outside range [U+0000; U+10ffff]) to Unicode:
+ repr(array), str(array) and array.tounicode(). Patch written by Manuel Jacob.
+
+- Issue #17197: profile/cProfile modules refactored so that code of run() and
+ runctx() utility functions is not duplicated in both modules.
+
- Issue #14720: sqlite3: Convert datetime microseconds correctly.
Patch by Lowe Thiderman.
- Issue #16800: tempfile.gettempdir() no longer left temporary files when
the disk is full. Original patch by Amir Szekely.
++- Issue #17192: Import libffi-3.0.12.
++
- Issue #16564: Fixed regression relative to Python2 in the operation of
email.encoders.encode_7or8bit when used with binary data.
- Issue #6975: os.path.realpath() now correctly resolves multiple nested
symlinks on POSIX platforms.
- - Issue #17156: pygettext.py now uses an encoding of source file and correctly
- writes and escapes non-ascii characters.
-
+- Issue #13773: sqlite3.connect() gets a new `uri` parameter to pass the
+ filename as a URI, allowing to pass custom options.
+
- Issue #16564: Fixed regression relative to Python2 in the operation of
email.encoders.encode_noop when used with binary data.
- Issue #16618: Make glob.glob match consistently across strings and bytes
regarding leading dots. Patch by Serhiy Storchaka.
- - Issue #16702: test_urllib2_localnet tests now correctly ignores proxies for
- localhost tests.
-
+- Issue #16788: Add samestat to Lib/ntpath.py
+
- Issue #16713: Parsing of 'tel' urls using urlparse separates params from
path.
was especially problematic for the FileType type, as a default file would
always be opened, even if a file argument was specified on the command line.
-- Issue #15906: Fix a regression in `argparse` caused by the preceding change,
+- Issue #15906: Fix a regression in argparse caused by the preceding change,
when ``action='append'``, ``type='str'`` and ``default=[]``.
- - Issue #17192: Import libffi-3.0.12.
-
- - Issue #12268: The io module file object write methods no longer abort early
- when one of its write system calls is interrupted (EINTR).
-
+- Issue #16113: Added sha3 module based on the Keccak reference implementation
+ 3.2. The `hashlib` module has four additional hash algorithms: `sha3_224`,
+ `sha3_256`, `sha3_384` and `sha3_512`. As part of the patch some common
+ code was moved from _hashopenssl.c to hashlib.h.
+
+- ctypes.call_commethod was removed, since its only usage was in the defunct
+ samples directory.
+
+- Issue #16692: Added TLSv1.1 and TLSv1.2 support for the ssl modules.
+
IDLE
----
- - Issue #17625: In IDLE, close the replace dialog after it is used.
-
- - Issue #16123: IDLE - deprecate running without a subprocess.
- Patch by Roger Serwy.
-
- - Issue #1207589: Add Cut/Copy/Paste items to IDLE right click Context Menu
- Patch by Todd Rovito.
-
- - Issue #16511: Use default IDLE width and height if config param is not valid.
- Patch Serhiy Storchaka.
-
- - Issue #16504: IDLE now catches SyntaxErrors raised by tokenizer. Patch by
- Roger Serwy.
+- Issue #17585: Fixed IDLE regression. Now closes when using exit() or quit().
+
+- Issue #17657: Show full Tk version in IDLE's about dialog.
+ Patch by Todd Rovito.
+
+- Issue #17613: Prevent traceback when removing syntax colorizer in IDLE.
+
+- Issue #1207589: Backwards-compatibility patch for right-click menu in IDLE.
+
+- Issue #16887: IDLE now accepts Cancel in tabify/untabify dialog box.
+
++- Issue #17625: In IDLE, close the replace dialog after it is used.
++
+- Issue #14254: IDLE now handles readline correctly across shell restarts.
+
+- Issue #17614: IDLE no longer raises exception when quickly closing a file.
+
+- Issue #6698: IDLE now opens just an editor window when configured to do so.
+
+- Issue #8900: Using keyboard shortcuts in IDLE to open a file no longer
+ raises an exception.
+
+- Issue #6649: Fixed missing exit status in IDLE. Patch by Guilherme Polo.
+
+ - Issue #17114: IDLE now uses non-strict config parser.
- - Issue #16819: IDLE method completion now correctly works for bytes literals.
+ - Issue #9290: In IDLE the sys.std* streams now implement io.TextIOBase
+ interface and support all mandatory methods and properties.
- - Issue #16491: IDLE now prints chained exception tracebacks.
++- Issue #5066: Update IDLE docs. Patch by Todd Rovito.
+
- Issue #16829: IDLE printing no longer fails if there are spaces or other
special characters in the file path.
- - Issue #5066: Update IDLE docs. Patch by Todd Rovito.
-
- - Issue #9290: In IDLE the sys.std* streams now implement io.TextIOBase
- interface and support all mandatory methods and properties.
-
- - Issue #17114: IDLE now uses non-strict config parser.
-
- - Issue #14254: IDLE now handles readline correctly across shell restarts.
+ - Issue #16491: IDLE now prints chained exception tracebacks.
- - Issue #17614: IDLE no longer raises exception when quickly closing a file.
+ - Issue #16819: IDLE method completion now correctly works for bytes literals.
- - Issue #6698: IDLE now opens just an editor window when configured to do so.
+ - Issue #16504: IDLE now catches SyntaxErrors raised by tokenizer. Patch by
+ Roger Serwy.
- - Issue #8900: Using keyboard shortcuts in IDLE to open a file no longer
- raises an exception.
+ - Issue #16511: Use default IDLE width and height if config param is not valid.
+ Patch Serhiy Storchaka.
- - Issue #6649: Fixed missing exit status in IDLE. Patch by Guilherme Polo.
+ - Issue #1207589: Add Cut/Copy/Paste items to IDLE right click Context Menu
+ Patch by Todd Rovito.
++- Issue #16123: IDLE - deprecate running without a subprocess.
++ Patch by Roger Serwy.
+
Tests
-----
- Issue #17161: make install now also installs a python3 man page.
+ C-API
+ -----
+
+ - Issue #16881: Fix Py_ARRAY_LENGTH macro for GCC < 3.1.
+
++- Issue #15422: Get rid of PyCFunction_New macro. Use PyCFunction_NewEx
++ function (PyCFunction_New func is still present for backward compatibility).
++
++- Issue #16505: Remove unused Py_TPFLAGS_INT_SUBCLASS.
++
++- Issue #16086: PyTypeObject.tp_flags and PyType_Spec.flags are now unsigned
++ (unsigned long and unsigned int) to avoid an undefined behaviour with
++ Py_TPFLAGS_TYPE_SUBCLASS ((1 << 31). PyType_GetFlags() result type is
++ now unsigned too (unsigned long, instead of long).
++
++- Issue #16166: Add PY_LITTLE_ENDIAN and PY_BIG_ENDIAN macros and unified
++ endianness detection and handling.
++
Documentation
-------------
Tools/Demos
-----------
+- Issue #17028: Allowed Python arguments to be supplied to the Windows
+ launcher.
+
+ - Issue #17156: pygettext.py now uses an encoding of source file and correctly
+ writes and escapes non-ascii characters.
+
- Issue #15539: Fix a number of bugs in Tools/scripts/pindent.py. Now
pindent.py works with a "with" statement. pindent.py no longer produces
improper indentation. pindent.py now works with continued lines broken after
"class" or "def" keywords and with continuations at the start of line.
-- Issue #15378: Fix Tools/unicode/comparecodecs.py. Patch by Serhiy Storchaka.
+- Issue #11797: Add a 2to3 fixer that maps reload() to imp.reload().
+
+- Issue #10966: Remove the concept of unexpected skipped tests.
+
+- Issue #9893: Removed the Misc/Vim directory.
+
+- Removed the Misc/TextMate directory.
-- Issue #16476: Fix json.tool to avoid including trailing whitespace.
+- Issue #16245: Add the Tools/scripts/parse_html5_entities.py script to parse
+ the list of HTML5 entities and update the html.entities.html5 dictionary.
+
+- Issue #15378: Fix Tools/unicode/comparecodecs.py. Patch by Serhiy Storchaka.
+ - Issue #16549: Make json.tool work again on Python 3 and add tests.
+ Initial patch by Berker Peksag and Serhiy Storchaka.
+
- Issue #13301: use ast.literal_eval() instead of eval() in Tools/i18n/msgfmt.py
Patch by Serhiy Storchaka.
Library
-------
- - Issue #9803: Don't close IDLE on saving if breakpoint is open.
- Patch by Roger Serwy.
-- Issue #16305: Fix a segmentation fault occurring when interrupting
- math.factorial.
--
- Issue #12288: Consider '0' and '0.0' as valid initialvalue
for tkinter SimpleDialog.
- Issue #13589: Fix some serialization primitives in the aifc module.
Patch by Oleg Plakhotnyuk.
-- Issue #13642: Unquote before b64encoding ``user:password`` during Basic
+- Issue #13642: Unquote before b64encoding user:password during Basic
Authentication. Patch contributed by Joonas Kuorilehto.
- - Issue #13726: Fix the ambiguous -S flag in regrtest. It is -o/--slow for slow
- tests.
-
- Issue #12364: Fix a hang in concurrent.futures.ProcessPoolExecutor.
The hang would occur when retrieving the result of a scheduled future after
the executor had been shut down.
- Issue #12607: In subprocess, fix issue where if stdin, stdout or stderr is
given as a low fd, it gets overwritten.
- - Issue #12590: IDLE editor window now always displays the first line
- when opening a long file. With Tk 8.5, the first line was hidden.
-
-- Issue #12576: Fix urlopen behavior on sites which do not send (or obfuscate)
- a ``Connection: close`` header.
+- Issue #12576: Fix urlopen behavior on sites which do not send (or obfuscates)
+ Connection:close header.
- - Issue #12102: Document that buffered files must be flushed before being used
- with mmap. Patch by Steffen Daode Nurpmeso.
-
- Issue #12560: Build libpython.so on OpenBSD. Patch by Stefan Sperling.
- Issue #1813: Fix codec lookup under Turkish locales.