classification
Title: Update What's New for Python 3.4
Type: enhancement Stage: resolved
Components: Documentation Versions: Python 3.4
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: docs@python Nosy List: Jim.Jewett, docs@python, ezio.melotti, larry, loewis, python-dev, r.david.murray, serhiy.storchaka, vstinner, yegle, zach.ware
Priority: normal Keywords:

Created on 2013-12-02 12:23 by serhiy.storchaka, last changed 2014-03-20 19:21 by r.david.murray. This issue is now closed.

Messages (26)
msg205005 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2013-12-02 12:23
Many features and changes were not mentioned in What's New (especially added early). Here is main features which possible worth to mention:

abc:  The ABC class, the get_cache_token function.

aifc:  Any bytes-like objects are now accepted.

audioop:  Any bytes-like objects are now accepted.  Strings no more supported.

base64:  ascii85/base85 codecs.

bz2:  The 'x' mode.

codecs:  The cp1125 encoding.

collections:  New optional parameter in ChainMap.new_child().

dbm:  Support for the context management protocol.

dis:  Added the file parameter to many functions. Added the stack_effect() 
function.

email:  The policy keyword argument was added in email.message.Message 
constructor. The replace keyword argument was added in the set_param() 
method. 
The EmailPolicy.content_manager attribute was added 

filecmp:  Added the clear_cache() function and the dircmp.DEFAULT_IGNORES 
attribute.

functools:  total_ordering now supports the NotImplemented value.

gc:  Added the get_stats() function.

glob:  Added the escape() function.

gzip: The 'x' mode.

http:  HTTP 0.9-style "Simple Responses" are not supported. Added the explain 
argument in BaseHTTPRequestHandler.send_error(). Added the --bind option in 
the http.server module CLI.

ipaddress:  Added the IPv4Address.is_global attribute.

json:  Used ``(',', ': ')`` as default in dump() and dumps() if indent is not 
None. I.e. trailing spaces no more produced by default.

logging:  An instance of a subclass of RawConfigParser is now accepted as a 
value for fname in the fileConfig() function. The verify argument was added in 
the listen() function. The atTime parameter was added in 
TimedRotatingFileHandler constructor.  Added support of Unix domain sockets 
in SocketHandler and DatagramHandler.

lzma:  The 'x' mode.

multiprocessing:  Added following functions: get_all_start_methods(), 
get_context(), get_start_method(), and set_start_method(). set_executable() 
is now supported on Unix when the 'spawn' start method is used. Added the 
context parameter in Pool constructor.

operator:  Added the length_hint() function.

os.path:  samestat() now is supported on Windows.

os:  Add O_TMPFILE constant on Linux.

plistlib:  Added support for binary format. Added load(), loads(), dump(), and 
dumps() functions. Deprecated readPlist(), writePlist() readPlistFromBytes(), 
and writePlistToBytes() functions, the Data class.

select:  epoll() now supports the context management protocol. Added the 
close() and fileno() methods and the closed attribute in the devpoll class.

shelve:  Added context manager support.

shutil:  Added the SameFileError exception.

smtpd:  The map argument was added in SMTPServer constructor.

socket:  The CAN_BCM protocol was added. The AF_LINK family was added.

sqlite3:  Added support for URI.

subprocess: The input parameter was added in the check_output() function.

sunau:  Added support for 24-bit samples. Any bytes-like objects are now 
accepted.

sys:  Added the getallocatedblocks() function. Added the __interactivehook__ 
hook.

tarfile:  Added command-line interface.

textwrap:  Added support for truncating.

threading:  Added the main_thread() function.

unittest:  Added the TestCase.assertLogs() method. The TestSuite no more held 
references to each TestCase after TestSuite.run(). Modules that raise SkipTest 
on import are recorded as skips, not errors. Paths are sorted before being 
imported to ensure execution order for a given test suite is the same.

urllib:  Added the HTTPError.headers attribute. Added the Request.full_url 
attribute and the Request.remove_header() and Request.get_full_url() methods. 
Default Request.method may be indicated at the class level.

venv:  Added the ``with_pip`` parameter in EnvBuilder.

wave:  Any bytes-like objects are now accepted. Added support for unseekable 
files.

xml.etree.elementtree:  Added support to output empty elements in short form.

zipfile:  ZIP64 extensions are enabled by default.


Other enhancements:le.

memoryview is now registered automatically with collections.abc.Sequence.

Deprecations:

The 'U' mode in open() for file objects, in the fileinput and zipfile modules. A couple of plistlib functions. The html argument of XMLParser() and the parser argument of iterparse() in the xml.etree.elementtree module.
msg206746 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2013-12-21 14:25
There is a command to generate a list a list versionchanged, but I don't remember it.
msg206761 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2013-12-21 15:56
The command is listed in 'make help'.

It was seeing this issue go by that reminded me that this job needed to be done, but it's a big one and will probably take me until the actual release to finish it, assuming I manage to finish.  (The 3.3 What's New was never finished, but I started contributing to that rather late in the game.)
msg206853 - (view) Author: yegle (yegle) Date: 2013-12-23 08:55
Hi all,

It's my first time commenting on this issue tracker so bear with me if this looks naive.

For the `plistlib` package, from Apple's own manual[1], there's actually a third JSON format.

It'll be good to indicate that `plistlib` doesn't support JSON format in the what's new page and corresponding document page.

It takes me sometime before I realize `plistlib` in Python 3.3 doesn't support the so called binary property list format. So if the JSON format won't be supported in this Python version, it'll save someone's time by just reading the manual.

[1]: https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/plutil.1.html
msg206855 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2013-12-23 09:53
> For the `plistlib` package, from Apple's own 
manual[1], there's actually a
> third JSON format.

See *issue14455.*
msg206862 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2013-12-23 14:53
Unless I missed something, the changes to plistlib didn't make the Beta cutoff for 3.4, so there's nothing to be done for whatsnew with regard to it.  If the current documentation needs clarification, please open a new issue for that topic.
msg206863 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2013-12-23 14:57
Ah, looks like I did miss something.  I'll have to sort out what actually changed, since issue 14455 is still open.  I'll have to think about whether or not it is appropriate to discuss something that *hasn't* been added yet in whatsnew...
msg212617 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2014-03-03 08:14
I don't think this issue is actually release-critical. The current status of the document is fine for the release, any additions that people find can be added to bugfix releases (and online, of course).

The question also is how long this issue itself stays open. Serhiy, can you please update your original list to report which of the changes you had listed are still not documented? I suggest to close the issue when all changes from msg205005 have been dealt with.
msg212723 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2014-03-04 15:14
David did and does a great job (many thanks to him), but surprisingly many of changes from msg205005 are still not mentioned in What's New.

Improvements and changes in modules:

aifc:  Any bytes-like objects are now accepted.

audioop:  Any bytes-like objects are now accepted.  Strings no more supported.

base64:  ascii85/base85 codecs.

codecs:  The cp1125 encoding.

collections:  New optional parameter in ChainMap.new_child().

dbm:  Support for the context management protocol.

dis:  Added the stack_effect() function.

email:  The policy keyword argument was added in email.message.Message 
constructor. The replace keyword argument was added in the set_param() 
method. 
The EmailPolicy.content_manager attribute was added 

filecmp:  Added the dircmp.DEFAULT_IGNORES  attribute.

functools:  total_ordering now supports the NotImplemented value.

glob:  Added the escape() function.

ipaddress:  Added the IPv4Address.is_global attribute.

json:  Used ``(',', ': ')`` as default in dump() and dumps() if indent is not 
None. I.e. trailing spaces no more produced by default.

logging:  An instance of a subclass of RawConfigParser is now accepted as a 
value for fname in the fileConfig() function. The verify argument was added in 
the listen() function.

multiprocessing:  Added following functions: get_all_start_methods(), 
get_context(), get_start_method(), and set_start_method(). set_executable() 
is now supported on Unix when the 'spawn' start method is used. Added the 
context parameter in Pool constructor.

operator:  Added the length_hint() function.

os:  Add O_TMPFILE constant on Linux.

plistlib:  Deprecated readPlist(), writePlist() readPlistFromBytes(), 
and writePlistToBytes() functions, the Data class.

shutil:  Added the SameFileError exception.

sunau:  Added support for 24-bit samples. Any bytes-like objects are now 
accepted.

sys:  Added the __interactivehook__ 
hook.

tarfile:  Added command-line interface.

urllib:  Added the HTTPError.headers attribute. Added the Request.full_url 
attribute and the Request.remove_header() and Request.get_full_url() methods.

venv:  Added the ``with_pip`` parameter in EnvBuilder.

wave:  Any bytes-like objects are now accepted. Added support for unseekable 
files.

zipfile:  ZIP64 extensions are enabled by default.


Deprecations:

The 'U' mode in open() for file objects, in the fileinput and zipfile modules. A couple of plistlib functions. The html argument of XMLParser() and the parser argument of iterparse() in the xml.etree.elementtree module.
msg213120 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2014-03-11 07:09
Now almost all listed changes are documented. Great work, David!

But you perhaps forgot about changed multiprocessing.set_executable() and new urllib.error.HTTPError.headers.
msg213122 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2014-03-11 07:18
Ah, and please document backward-incompatible changes in OSError signature (issue20517).
msg213144 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2014-03-11 13:02
I did not forget about set_executable...that method now works on unix *because* spawn is supported on unix now, so I don't see any need to document that separately.  (It didn't previously have an 'availability windows' line, so I think its docs need some improvement if it only applies to spawn, but that's a separate issue.)

HTTPError.headers I did forget about, thanks.
msg213145 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2014-03-11 13:07
Not sure how I missed issue 20517, because I remember reading it.  Must have been a late night session ;)
msg213153 - (view) Author: Jim Jewett (Jim.Jewett) (Python triager) Date: 2014-03-11 17:22
Many people will not realize that the interactive help is affected by inspect or pydoc; it would be courteous to mention this.


(Viewing http://docs.python.org/dev/whatsnew/3.4.html#summary-release-highlights )

In the highlights (table of contents?) section, subsection "Significantly Improved Library Modules:"

"The inspect and pydoc modules are now capable of correct introspection of a much wider variety of callable objects"

-->

"The inspect and pydoc modules (and therefore interactive help) are now capable of correct introspection of a much wider variety of callable objects"
msg213155 - (view) Author: Jim Jewett (Jim.Jewett) (Python triager) Date: 2014-03-11 17:54
I do not think it is sufficient to mention the help change under "Other Language Changes", because the people who know to look at that level of detail (let alone that particular location) are not the ones who will be confused.
msg213156 - (view) Author: Jim Jewett (Jim.Jewett) (Python triager) Date: 2014-03-11 17:58
"(If the installation has Internet access, it is of course possible to upgrade pip to a release more recent than the bundled pip by using the bundled pip command itself once it is installed.)"

-->

"(If the installation has Internet access, it is of course possible to upgrade pip to an external installation of a release more recent than the bundled pip by using the bundled pip command itself once it is installed.)"


There may well be even better wording.  Or maybe the whole comment should be left for the ensurepip documentation.  But if the upgrade is mentioned, it would be best to warn that doing so means pip will no longer be *un*installed along with python.
msg213158 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2014-03-11 18:07
Add help mention to summary in 9ae1707d427a.
msg213159 - (view) Author: Zachary Ware (zach.ware) * (Python committer) Date: 2014-03-11 18:18
It may warrant a mention that doctest now checks method_descriptors' (C methods) __doc__ for doctests.
msg213163 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2014-03-11 18:58
New changeset 9ec36351f684 by R David Murray in branch 'default':
whatsnew: mention that upgrading PIP means it doesn't get unistalled.
http://hg.python.org/cpython/rev/9ec36351f684
msg213165 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2014-03-11 19:13
New changeset 8520e0ff8e36 by R David Murray in branch 'default':
whatsnew: doctest finds tests in extension modules (#3158)
http://hg.python.org/cpython/rev/8520e0ff8e36
msg213190 - (view) Author: Jim Jewett (Jim.Jewett) (Python triager) Date: 2014-03-12 01:49
"wave can now write output to unssekable files. "
-->
"wave can now write output to unseekable files. "
msg213191 - (view) Author: Jim Jewett (Jim.Jewett) (Python triager) Date: 2014-03-12 01:50
Changes in the Python API:

"If you use pyvenv in a script and desire that pip not be installed, you must add --wihtout-pip to your command invocation."
-->
"If you use pyvenv in a script and desire that pip not be installed, you must add --without-pip to your command invocation."
msg213192 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2014-03-12 01:59
New changeset 996652f3c136 by R David Murray in branch 'default':
whatsnew: spelling errors.
http://hg.python.org/cpython/rev/996652f3c136
msg213413 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2014-03-13 16:08
I'm done with everything in my edit queue except the final copy-edit/formatting pass.  So if you know of anything missing, let me know.
msg214256 - (view) Author: Zachary Ware (zach.ware) * (Python committer) Date: 2014-03-20 18:37
Thanks for the #3158 addition, David :)

We've been a week with no more major changes; is this issue done?
msg214263 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2014-03-20 19:21
Oh, yeah, it should be.  Any further changes should be independent bug reports.
History
Date User Action Args
2014-03-20 19:21:17r.david.murraysetstatus: open -> closed
resolution: fixed
messages: + msg214263

stage: resolved
2014-03-20 18:37:41zach.waresetmessages: + msg214256
2014-03-13 16:08:29r.david.murraysetmessages: + msg213413
2014-03-12 01:59:14python-devsetmessages: + msg213192
2014-03-12 01:50:29Jim.Jewettsetmessages: + msg213191
2014-03-12 01:49:10Jim.Jewettsetmessages: + msg213190
2014-03-11 19:13:33python-devsetmessages: + msg213165
2014-03-11 18:58:00python-devsetnosy: + python-dev
messages: + msg213163
2014-03-11 18:18:39zach.waresetnosy: + zach.ware
messages: + msg213159
2014-03-11 18:07:05r.david.murraysetmessages: + msg213158
2014-03-11 17:58:00Jim.Jewettsetmessages: + msg213156
2014-03-11 17:54:14Jim.Jewettsetmessages: + msg213155
2014-03-11 17:22:49Jim.Jewettsetnosy: + Jim.Jewett
messages: + msg213153
2014-03-11 13:07:08r.david.murraysetmessages: + msg213145
2014-03-11 13:02:47r.david.murraysetmessages: + msg213144
2014-03-11 07:18:35serhiy.storchakasetmessages: + msg213122
2014-03-11 07:09:50serhiy.storchakasetmessages: + msg213120
2014-03-04 15:14:46serhiy.storchakasetmessages: + msg212723
2014-03-03 08:14:25loewissetpriority: release blocker -> normal
nosy: + loewis
messages: + msg212617

2014-02-15 14:33:34ezio.melottisetnosy: + ezio.melotti
2013-12-23 14:57:27r.david.murraysetmessages: + msg206863
2013-12-23 14:53:03r.david.murraysetmessages: + msg206862
2013-12-23 09:53:19serhiy.storchakasetmessages: + msg206855
2013-12-23 08:55:54yeglesetnosy: + yegle
messages: + msg206853
2013-12-21 15:56:58r.david.murraysetmessages: + msg206761
2013-12-21 14:25:00vstinnersetnosy: + vstinner
messages: + msg206746
2013-12-21 14:00:36serhiy.storchakasetnosy: + r.david.murray
2013-12-02 12:23:02serhiy.storchakacreate