Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update What's New for Python 3.4 #64060

Closed
serhiy-storchaka opened this issue Dec 2, 2013 · 26 comments
Closed

Update What's New for Python 3.4 #64060

serhiy-storchaka opened this issue Dec 2, 2013 · 26 comments
Labels
docs Documentation in the Doc dir type-feature A feature request or enhancement

Comments

@serhiy-storchaka
Copy link
Member

BPO 19861
Nosy @loewis, @vstinner, @larryhastings, @ezio-melotti, @bitdancer, @JimJJewett, @zware, @serhiy-storchaka

Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

Show more details

GitHub fields:

assignee = None
closed_at = <Date 2014-03-20.19:21:17.472>
created_at = <Date 2013-12-02.12:23:02.010>
labels = ['type-feature', 'docs']
title = "Update What's New for Python 3.4"
updated_at = <Date 2014-03-20.19:21:17.471>
user = 'https://github.com/serhiy-storchaka'

bugs.python.org fields:

activity = <Date 2014-03-20.19:21:17.471>
actor = 'r.david.murray'
assignee = 'docs@python'
closed = True
closed_date = <Date 2014-03-20.19:21:17.472>
closer = 'r.david.murray'
components = ['Documentation']
creation = <Date 2013-12-02.12:23:02.010>
creator = 'serhiy.storchaka'
dependencies = []
files = []
hgrepos = []
issue_num = 19861
keywords = []
message_count = 26.0
messages = ['205005', '206746', '206761', '206853', '206855', '206862', '206863', '212617', '212723', '213120', '213122', '213144', '213145', '213153', '213155', '213156', '213158', '213159', '213163', '213165', '213190', '213191', '213192', '213413', '214256', '214263']
nosy_count = 11.0
nosy_names = ['loewis', 'vstinner', 'larry', 'ezio.melotti', 'r.david.murray', 'docs@python', 'python-dev', 'Jim.Jewett', 'zach.ware', 'serhiy.storchaka', 'yegle']
pr_nums = []
priority = 'normal'
resolution = 'fixed'
stage = 'resolved'
status = 'closed'
superseder = None
type = 'enhancement'
url = 'https://bugs.python.org/issue19861'
versions = ['Python 3.4']

@serhiy-storchaka
Copy link
Member Author

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.

@serhiy-storchaka serhiy-storchaka added docs Documentation in the Doc dir type-feature A feature request or enhancement labels Dec 2, 2013
@vstinner
Copy link
Member

There is a command to generate a list a list versionchanged, but I don't remember it.

@bitdancer
Copy link
Member

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.)

@yegle
Copy link
Mannequin

yegle mannequin commented Dec 23, 2013

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 manual1, 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.

@serhiy-storchaka
Copy link
Member Author

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

See *bpo-14455.*

@bitdancer
Copy link
Member

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.

@bitdancer
Copy link
Member

Ah, looks like I did miss something. I'll have to sort out what actually changed, since bpo-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...

@loewis
Copy link
Mannequin

loewis mannequin commented Mar 3, 2014

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.

@loewis loewis mannequin removed the release-blocker label Mar 3, 2014
@serhiy-storchaka
Copy link
Member Author

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.

@serhiy-storchaka
Copy link
Member Author

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.

@serhiy-storchaka
Copy link
Member Author

Ah, and please document backward-incompatible changes in OSError signature (bpo-20517).

@bitdancer
Copy link
Member

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.

@bitdancer
Copy link
Member

Not sure how I missed bpo-20517, because I remember reading it. Must have been a late night session ;)

@jimjjewett
Copy link
Mannequin

jimjjewett mannequin commented Mar 11, 2014

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"

@jimjjewett
Copy link
Mannequin

jimjjewett mannequin commented Mar 11, 2014

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.

@jimjjewett
Copy link
Mannequin

jimjjewett mannequin commented Mar 11, 2014

"(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.

@bitdancer
Copy link
Member

Add help mention to summary in 9ae1707d427a.

@zware
Copy link
Member

zware commented Mar 11, 2014

It may warrant a mention that doctest now checks method_descriptors' (C methods) __doc__ for doctests.

@python-dev
Copy link
Mannequin

python-dev mannequin commented Mar 11, 2014

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

@python-dev
Copy link
Mannequin

python-dev mannequin commented Mar 11, 2014

New changeset 8520e0ff8e36 by R David Murray in branch 'default':
whatsnew: doctest finds tests in extension modules (bpo-3158)
http://hg.python.org/cpython/rev/8520e0ff8e36

@jimjjewett
Copy link
Mannequin

jimjjewett mannequin commented Mar 12, 2014

"wave can now write output to unssekable files. "
-->
"wave can now write output to unseekable files. "

@jimjjewett
Copy link
Mannequin

jimjjewett mannequin commented Mar 12, 2014

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."

@python-dev
Copy link
Mannequin

python-dev mannequin commented Mar 12, 2014

New changeset 996652f3c136 by R David Murray in branch 'default':
whatsnew: spelling errors.
http://hg.python.org/cpython/rev/996652f3c136

@bitdancer
Copy link
Member

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.

@zware
Copy link
Member

zware commented Mar 20, 2014

Thanks for the bpo-3158 addition, David :)

We've been a week with no more major changes; is this issue done?

@bitdancer
Copy link
Member

Oh, yeah, it should be. Any further changes should be independent bug reports.

@ezio-melotti ezio-melotti transferred this issue from another repository Apr 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs Documentation in the Doc dir type-feature A feature request or enhancement
Projects
None yet
Development

No branches or pull requests

4 participants