Issue 13248: deprecated in 3.2/3.3, should be removed in 3.5 or ??? (original) (raw)

Created on 2011-10-23 17:49 by flox, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Messages (49)

msg146236 - (view)

Author: Florent Xicluna (flox) * (Python committer)

Date: 2011-10-23 17:49

The PEP 387 suggests that deprecated objects or arguments are removed in version (n+1). I've listed these DeprecationWarnings in 3.2, which are still in 3.3. I assume that most of these deprecated objects or arguments could be removed before next release.

_pyio argument "max_buffer_size" of BufferedWriter and BufferedRWPair argparse argument "version" and related methods of ArgumentParser asyncore shortcut "dispatcher." for "dispatcher.socket." attributes base64 functions "encodestring" and "decodestring" cgi functions "parse_qs" and "parse_qsl" configparser "ParsingError.filename", "RawConfigParser.readfp", "SafeConfigParser" decimal "Context._clamp" difflib "SequenceMatcher.isbjunk", "SequenceMatcher.isbpopular" gzip "GzipFile.filename" http.client argument "strict" of HTTPResponse and HTTPConnection lib2to3 methods "set_prefix" and "get_prefix" of "pytree.Base" mailbox argument of type "StringIO" or "text mode files" ntpath function "splitunc" tarfile argument "exclude" of "TarFile.add" trace old API unittest "assert{DictContainsSubset,RaisesRegexp,RegexpMatches}", "fail*" xml.etree "Element.getchildren", "XMLParser.doctype"

msg146237 - (view)

Author: Florent Xicluna (flox) * (Python committer)

Date: 2011-10-23 18:01

In addition, we have some object and attributes which are triggering "PendingDeprecationWarning" in 3.2. We may keep these warnings in 3.3, or choose to turn some of them into "DeprecationWarning", to prepare their removal in 3.5.

cgi "cgi.escape" distutils" argument compress="compress" of make_tarball function "check_metadata" in "command.register" option "force-manifest" of "command.sdist" importlib "abc.PyLoader" and "abc.PyPycLoader" nntplib "NNTPBase.xgtitle" and "NNTPBase.xpath" smtpd the class-private "" attributes xml.etree method "getiterator" of "Element" and "ElementTree"

msg146259 - (view)

Author: Ezio Melotti (ezio.melotti) * (Python committer)

Date: 2011-10-23 21:30

unittest "assert{DictContainsSubset,RaisesRegexp,RegexpMatches}", "fail*"

The "fail*" should stay.

The general idea is that with Python3 we can wait a bit more before getting rid of things, because if someone jumps from 2.7 to 3.3, he might not find things that got deprecated in 3.2 and disappeared on 3.3.

That said, some of the more obscure functions/method/attributes can probably go.

Also I think that PendingDeprecations are now quite useless, since DeprecationWarnings are silenced by default. I think we can convert them to DeprecationWarnings, even if we leave them there for a couple of versions.

msg146284 - (view)

Author: Roundup Robot (python-dev) (Python triager)

Date: 2011-10-24 09:32

New changeset 221638ba5d2a by Mark Dickinson in branch 'default': Issue #13248, issue #8540: Remove deprecated Context._clamp attribute from Decimal module. http://hg.python.org/cpython/rev/221638ba5d2a

msg146288 - (view)

Author: Florent Xicluna (flox) * (Python committer)

Date: 2011-10-24 10:32

I missed these warnings in C modules.

array "fromstring" and "tostring" methods io (like _pyio) argument "max_buffer_size" of BufferedWriter and BufferedRWPair sys "sys.getcheckinterval" and "sys.setcheckinterval"

and some complaints from Objects/typeobject.c:

"object.init() takes no parameters" "object.new() takes no parameters" "object.format with a non-empty format string is deprecated" "Type %.100s defines tp_reserved (formerly tp_compare) but not " "tp_richcompare. Comparisons may not behave as intended."

msg146289 - (view)

Author: Antoine Pitrou (pitrou) * (Python committer)

Date: 2011-10-24 10:41

array "fromstring" and "tostring" methods

I think these ones (and other well-known 2.x methods) should be kept to ease porting to 3.x.

msg146344 - (view)

Author: Ezio Melotti (ezio.melotti) * (Python committer)

Date: 2011-10-25 06:36

Maybe a 2to3 fixer to convert the names should be added?

msg146500 - (view)

Author: Éric Araujo (eric.araujo) * (Python committer)

Date: 2011-10-27 16:11

distutils will not change. I’ll ask if removing the deprecation warnings is okay, otherwise they’ll stay.

For ConfigParser.readfp, it would ease porting between 2.x and 3.x if the method could stay longer, or forever.

msg146581 - (view)

Author: Terry J. Reedy (terry.reedy) * (Python committer)

Date: 2011-10-28 23:42

The difflib deprecations are mine and I think they should happen in 3.3. This will serve as a reminder.

msg149145 - (view)

Author: Roundup Robot (python-dev) (Python triager)

Date: 2011-12-10 10:08

New changeset f82ebf9b3a52 by Florent Xicluna in branch 'default': Issue #13248: turn 3.2's PendingDeprecationWarning into 3.3's DeprecationWarning (cgi, importlib, nntplib, smtpd). http://hg.python.org/cpython/rev/f82ebf9b3a52

msg149192 - (view)

Author: Florent Xicluna (flox) * (Python committer)

Date: 2011-12-10 21:36

I know it won't be committed as-is, but this is the patch with most of the deprecated things removed.

I skipped all the modules where a veto has been pronounced explicitly.

msg149265 - (view)

Author: STINNER Victor (vstinner) * (Python committer)

Date: 2011-12-12 01:11

.. versionchanged:: 3.2

Such change looks wrong: the parameter exists in Python 3.2.

msg149297 - (view)

Author: Antoine Pitrou (pitrou) * (Python committer)

Date: 2011-12-12 13:01

I think most of these shouldn't be removed, as it would make porting from 2.x significantly more tedious.

Things that I think can be removed:

msg149301 - (view)

Author: Florent Xicluna (flox) * (Python committer)

Date: 2011-12-12 14:03

I removed object.format from the patch because it is not planned for removal in 3.3, but in 3.4 (see issue #9856).

I've fixed the documentation versionchanged and split the patch in two. The first is less controversial. The second might be delayed a little to ease the migration from 2.x to 3.x.

msg149320 - (view)

Author: Éric Araujo (eric.araujo) * (Python committer)

Date: 2011-12-12 16:02

Given the discussions we’ve had this month and a few months earlier about people porting directly to 3.2 or 3.3, I think the second patch needs to wait for 3.4 or 3.5. (I have no opinion on the first patch, not being a customer of lib2to3 or pyio.)

msg149322 - (view)

Author: Ezio Melotti (ezio.melotti) * (Python committer)

Date: 2011-12-12 16:04

I think it would be better to decide in what version each thing will be removed and then mark them with the deprecated-removed directive in the doc.

msg155797 - (view)

Author: Raymond Hettinger (rhettinger) * (Python committer)

Date: 2012-03-14 21:39

In unittest, DictContainsSubset() should be removed from 3.3. It was defective by design (wrong argument order). I concur with Ezio that the other unittest methods should remain intact. I'm not sure whether assertSameElements() should stay or go (when Google's code search was still up, it showed zero uptake for that test method, so it may be better to remove it now).

The Decimal module's Context._clamp should also be removed from 3.3. It was a private API from the outset and won't be mirrored in the C version. It looks like Mark has already done this one.

I also agree Antoine that most of the other changes shouldn't be made in 3.3 except for the three he listed: max_buffer_size, get_prefix/set_prefix, and the argparse deprecations.

msg155815 - (view)

Author: Roundup Robot (python-dev) (Python triager)

Date: 2012-03-14 22:41

New changeset b30171bbc571 by Benjamin Peterson in branch 'default': remove get_prefix and set_prefix (#13248) http://hg.python.org/cpython/rev/b30171bbc571

msg155836 - (view)

Author: Roundup Robot (python-dev) (Python triager)

Date: 2012-03-15 01:17

New changeset 0ddb78341290 by Raymond Hettinger in branch 'default': Issue #13248: Removed docs for two deprecated unittest features. To be conservative, the code is left in for one more release. http://hg.python.org/cpython/rev/0ddb78341290

msg155838 - (view)

Author: Ezio Melotti (ezio.melotti) * (Python committer)

Date: 2012-03-15 01:23

Raymond, I think it's better to leave the documentation and use "deprecated-removed" to signal clearly that those functions are deprecated and when they will be removed (even if this means 3.4).

IME removing documentation creates more confusion because people that find those functions in some codebase will have an hard time figuring out what they are, where do they come from, if they are deprecated or not and when they will be removed.

msg155839 - (view)

Author: Raymond Hettinger (rhettinger) * (Python committer)

Date: 2012-03-15 01:27

Ezio, I'm was thinking of marking the code and its docstring as removed/unused, but if you want the code removed altogether, that would be fine.

msg155841 - (view)

Author: Ezio Melotti (ezio.melotti) * (Python committer)

Date: 2012-03-15 01:33

I don't mind if they are removed in 3.3 or 3.4, as long as they are documented in all the versions where they are present.

msg164850 - (view)

Author: Florent Xicluna (flox) * (Python committer)

Date: 2012-07-07 14:03

Do we agree to remove the "max_buffer_size" from the "io" module in 3.3?

This argument is unused, and deprecated. Just dead code. See attachment.

msg164852 - (view)

Author: Antoine Pitrou (pitrou) * (Python committer)

Date: 2012-07-07 14:06

Do we agree to remove the "max_buffer_size" from the "io" module in 3.3?

Yes!

msg164865 - (view)

Author: Roundup Robot (python-dev) (Python triager)

Date: 2012-07-07 15:04

New changeset 5393382c1b1d by Florent Xicluna in branch 'default': Issue #13248: argparse: Remove obsolete argument "version" of ArgumentParser. http://hg.python.org/cpython/rev/5393382c1b1d

New changeset 700f989afbad by Florent Xicluna in branch 'default': Issue #13248: io: Remove obsolete argument "max_buffer_size" of BufferedWriter and BufferedRWPair. http://hg.python.org/cpython/rev/700f989afbad

msg164880 - (view)

Author: Éric Araujo (eric.araujo) * (Python committer)

Date: 2012-07-07 15:40

Flox, could you put versionchanged (or versiondeprecated-removed, which could also go into 3.2) to note the removals in the doc?

msg164901 - (view)

Author: Florent Xicluna (flox) * (Python committer)

Date: 2012-07-07 16:11

Eric, I will check but I thought they were not documented.

msg164924 - (view)

Author: Terry J. Reedy (terry.reedy) * (Python committer)

Date: 2012-07-07 19:29

We do not document removals after they are done as they are not an issue for back-compatibility (unlike changes and additions).

Deprecation Warnings are optionally available for checking forward-compatibility. Deprecations are sometimes noted in the regular text flow with things like "encodestring is a deprecated alias", but they are not set off with separate versionchanged: notices, as nothing has changed yet. Some deprecated features are not even documented.

The 'version' arg of class ArgumentParser is already not documented in 3.2, which is why the patch does not change argparse.rst.

"A third argument, max_buffer_size, is supported, but unused and deprecated." and "A fourth argument, max_buffer_size, is supported, but unused and deprecated." is enough for that parameter (and the patch removes those lines -- the param was already left out of the signature).

msg164979 - (view)

Author: Florent Xicluna (flox) * (Python committer)

Date: 2012-07-08 09:16

The other changes are in the patch "issue13248_obsolescence_v3.diff". AFAIU, they will not be removed in 3.3, in order to facilitate transition from Python 2.

asyncore shortcut "dispatcher." for "dispatcher.socket." attributes

base64 functions "encodestring" and "decodestring"

cgi functions "parse_qs" and "parse_qsl"

gzip "GzipFile.filename"

http.client argument "strict" of HTTPResponse and HTTPConnection

mailbox argument of type "StringIO" or "text mode files"

ntpath function "splitunc"

tarfile argument "exclude" of "TarFile.add"

trace old API

msg184706 - (view)

Author: Roundup Robot (python-dev) (Python triager)

Date: 2013-03-19 23:44

New changeset 612d8bbcfa3a by Terry Jan Reedy in branch 'default': Issue #13248: removed deprecated and undocumented difflib.isbjunk, isbpopular. http://hg.python.org/cpython/rev/612d8bbcfa3a

msg184925 - (view)

Author: Roundup Robot (python-dev) (Python triager)

Date: 2013-03-21 23:36

New changeset 62a988b3bf2e by Terry Jan Reedy in branch 'default': Issue #13248: NEWS and What's New items http://hg.python.org/cpython/rev/62a988b3bf2e

msg185120 - (view)

Author: Éric Araujo (eric.araujo) * (Python committer)

Date: 2013-03-24 07:05

We do not document removals after they are done as they are not an issue for back-compatibility (unlike changes and additions).

I learned that people may use the (for example) 2.7 docs even though they are using 2.6, so I think we do want to use things like the deprecated-removed directive to tell these users that they should start looking for a replacement. Removing documentation would lead them to look in other places and discover the removals later.

msg185123 - (view)

Author: Ezio Melotti (ezio.melotti) * (Python committer)

Date: 2013-03-24 09:48

IMHO deprecated-removed should be used on versions where the feature exists, and a versionchanged should be added once the feature has been removed.

msg203111 - (view)

Author: Ezio Melotti (ezio.melotti) * (Python committer)

Date: 2013-11-17 00:39

The attached patch removes assertDictContainsSubset().

msg217452 - (view)

Author: Antoine Pitrou (pitrou) * (Python committer)

Date: 2014-04-28 23:48

Apparently we missed some of the stuff here.

msg217457 - (view)

Author: Roundup Robot (python-dev) (Python triager)

Date: 2014-04-29 00:04

New changeset 2cceb8cb552b by Giampaolo Rodola' in branch 'default': fix isuse #13248: remove previously deprecated asyncore.dispatcher getattr cheap inheritance hack. http://hg.python.org/cpython/rev/2cceb8cb552b

msg221491 - (view)

Author: Mark Lawrence (BreamoreBoy) *

Date: 2014-06-24 20:15

Anything else left to do on this?

msg233278 - (view)

Author: Mark Lawrence (BreamoreBoy) *

Date: 2015-01-01 11:12

Can this be closed as plenty of changesets have been pushed?

msg233293 - (view)

Author: Terry J. Reedy (terry.reedy) * (Python committer)

Date: 2015-01-01 19:39

At most half of the items listed in the original post have been dealt with. Each remaining 'deprecated items should be removed in 3.5, undeprecated, or a decision recorded to leave it deprecated indefinitely.

msg233296 - (view)

Author: Martin Panter (martin.panter) * (Python committer)

Date: 2015-01-01 22:11

See Issue 19167 for a patch to remove the xml.etree.XMLParser.doctype() method. I’m happy for it to be removed, since the logic for generating the DeprecationWarning is buggy.

msg233297 - (view)

Author: Martin Panter (martin.panter) * (Python committer)

Date: 2015-01-01 22:12

Make that Issue 19176 for XMLParser.doctype()

msg233434 - (view)

Author: Martin Panter (martin.panter) * (Python committer)

Date: 2015-01-04 22:51

Another one to deal with one way or the other: html.parser.HTMLParser.unescape()

It is apparently due to be removed in 3.5. It was meant to be an undocumented internal function, and there is now an public alternative. However I would be inclined to leave it around a little longer, because it seems to have been widely recommended for decoding HTML entities in the past (e.g. <https://wiki.python.org/moin/EscapingHtml>), and keeping it would simplify maintaining Python 2 compatible code.

msg233444 - (view)

Author: Berker Peksag (berker.peksag) * (Python committer)

Date: 2015-01-05 07:45

Here is a follow-up list:

msg247207 - (view)

Author: Roundup Robot (python-dev) (Python triager)

Date: 2015-07-23 14:36

New changeset a565aad5d6e1 by Yury Selivanov in branch 'default': Issue #13248: Remove inspect.getargspec from 3.6 (deprecated from 3.0) https://hg.python.org/cpython/rev/a565aad5d6e1

msg247209 - (view)

Author: Roundup Robot (python-dev) (Python triager)

Date: 2015-07-23 14:49

New changeset 558199e060fd by Yury Selivanov in branch 'default': Issue #13248: Remove inspect.getmoduleinfo() from 3.6 (deprecated in 3.3) https://hg.python.org/cpython/rev/558199e060fd

msg247689 - (view)

Author: Yaroslav Halchenko (Yaroslav.Halchenko)

Date: 2015-07-30 18:31

the function getargspec was removed but references to it within docstrings remained:

$> git grep getargspec Doc/library/inspect.rst: The first four items in the tuple correspond to :func:getargspec. Doc/library/inspect.rst: :func:getargspec or :func:getfullargspec. Doc/whatsnew/3.4.rst::func:~inspect.getfullargspec and :func:~inspect.getargspec Doc/whatsnew/3.5.rst:* :func:inspect.getargspec is deprecated and scheduled to be removed in Doc/whatsnew/3.6.rst:* inspect.getargspec() was removed (was deprecated since CPython 3.0). Lib/inspect.py: getargspec(), getargvalues(), getcallargs() - get info about function arguments Lib/inspect.py: The first four items in the tuple correspond to getargspec(). Lib/inspect.py: """Format an argument spec from the values returned by getargspec Lib/test/test_inspect.py:# getclasstree, getargspec, getargvalues, formatargspec, formatargvalues, Misc/NEWS:- Issue #13248: Remove deprecated inspect.getargspec and inspect.getmoduleinfo

msg247720 - (view)

Author: Roundup Robot (python-dev) (Python triager)

Date: 2015-07-31 01:11

New changeset ad4c1bfe257f by Berker Peksag in branch 'default': Issue #13248: Delete remaining references of inspect.getargspec(). https://hg.python.org/cpython/rev/ad4c1bfe257f

msg247727 - (view)

Author: Yury Selivanov (yselivanov) * (Python committer)

Date: 2015-07-31 02:41

Thank you, Berker!

msg275206 - (view)

Author: Christian Heimes (christian.heimes) * (Python committer)

Date: 2016-09-08 23:04

Did you keep this ticket open for a reason?

History

Date

User

Action

Args

2022-04-11 14:57:23

admin

set

github: 57457

2020-05-19 18:40:32

benjamin.peterson

set

status: open -> closed
resolution: fixed
stage: patch review -> resolved

2019-02-24 22:09:57

BreamoreBoy

set

nosy: - BreamoreBoy

2016-09-08 23:04:38

christian.heimes

set

nosy: + christian.heimes
messages: +

2015-07-31 02:41:43

yselivanov

set

messages: +

2015-07-31 01:11:39

python-dev

set

messages: +

2015-07-30 18:31:41

Yaroslav.Halchenko

set

nosy: + Yaroslav.Halchenko
messages: +

2015-07-23 14:49:38

python-dev

set

messages: +

2015-07-23 14:36:37

python-dev

set

messages: +

2015-06-05 19:30:17

yselivanov

set

nosy: + yselivanov

2015-01-05 07:45:54

berker.peksag

set

messages: +

2015-01-04 22:51:35

martin.panter

set

messages: +

2015-01-01 22:12:19

martin.panter

set

messages: +

2015-01-01 22:11:33

martin.panter

set

nosy: + martin.panter
messages: +

2015-01-01 19:40:05

terry.reedy

set

title: deprecated in 3.2/3.3, should be removed in 3.4 -> deprecated in 3.2/3.3, should be removed in 3.5 or ???
versions: + Python 3.5, - Python 3.4

2015-01-01 19:39:41

terry.reedy

set

messages: +

2015-01-01 11:12:05

BreamoreBoy

set

messages: +

2014-06-24 20:15:31

BreamoreBoy

set

nosy: + BreamoreBoy
messages: +

2014-04-29 00:04:24

python-dev

set

messages: +

2014-04-28 23:48:06

pitrou

set

messages: +

2013-11-17 00:39:46

ezio.melotti

set

files: + issue13248.diff

messages: +

2013-11-10 01:40:56

ezio.melotti

set

stage: patch review

2013-08-15 17:35:25

orsenthil

set

nosy: + orsenthil

2013-08-15 17:08:04

larry

set

nosy: + larry

2013-06-10 18:17:23

berker.peksag

set

nosy: + berker.peksag

2013-03-24 09:48:04

ezio.melotti

set

messages: +

2013-03-24 07:05:06

eric.araujo

set

messages: +

2013-03-21 23:36:55

python-dev

set

messages: +

2013-03-19 23:44:34

python-dev

set

messages: +

2012-09-26 18:52:47

ezio.melotti

set

title: deprecated in 3.2, should be removed in 3.3 -> deprecated in 3.2/3.3, should be removed in 3.4
versions: + Python 3.4, - Python 3.3

2012-07-08 09:16:33

flox

set

messages: +

2012-07-08 09:05:26

flox

set

files: - issue13248_io_max_buffer_size.diff

2012-07-07 19:29:15

terry.reedy

set

messages: +

2012-07-07 16:11:07

flox

set

messages: +

2012-07-07 15:40:00

eric.araujo

set

messages: +

2012-07-07 15:04:32

python-dev

set

messages: +

2012-07-07 14:35:36

flox

set

files: + issue13248_obsolescence_v3.diff

2012-07-07 14:34:35

flox

set

files: - issue13248_obsolescence_v2.diff

2012-07-07 14:06:51

pitrou

set

messages: +

2012-07-07 14:03:59

flox

set

files: - issue13248_argparse_io_lib2to3.diff

2012-07-07 14:03:37

flox

set

files: + issue13248_io_max_buffer_size.diff

messages: +

2012-03-15 01:33:06

ezio.melotti

set

messages: +

2012-03-15 01:27:39

rhettinger

set

messages: +

2012-03-15 01:23:43

ezio.melotti

set

messages: +

2012-03-15 01:17:29

python-dev

set

messages: +

2012-03-14 22:41:27

python-dev

set

messages: +

2012-03-14 21:39:03

rhettinger

set

nosy: + rhettinger
messages: +

2012-03-14 21:17:00

giampaolo.rodola

set

nosy: + giampaolo.rodola

2012-02-19 14:57:00

tshepang

set

nosy: + tshepang

2012-02-14 10:49:58

Arfrever

set

nosy: + Arfrever

2011-12-12 16:04:14

ezio.melotti

set

messages: +

2011-12-12 16:02:17

eric.araujo

set

messages: +

2011-12-12 14:04:03

flox

set

files: + issue13248_obsolescence_v2.diff

messages: +

2011-12-12 13:57:18

flox

set

files: + issue13248_argparse_io_lib2to3.diff
dependencies: - Change object.__format__(s) where s is non-empty to a TypeError

2011-12-12 13:56:34

flox

set

files: - issue13248_obsolescence.diff

2011-12-12 13:01:26

pitrou

set

messages: +

2011-12-12 12:47:27

flox

set

dependencies: + Change object.__format__(s) where s is non-empty to a TypeError

2011-12-12 01:11:33

vstinner

set

messages: +

2011-12-10 21:36:11

flox

set

files: + issue13248_obsolescence.diff
keywords: + patch
messages: +

2011-12-10 10:08:23

python-dev

set

messages: +

2011-11-15 22:17:17

vstinner

set

nosy: + vstinner

2011-10-28 23:42:05

terry.reedy

set

nosy: + terry.reedy
messages: +

2011-10-27 16:11:16

eric.araujo

set

nosy: + eric.araujo
messages: +

2011-10-25 06:36:08

ezio.melotti

set

messages: +

2011-10-24 10:41:04

pitrou

set

nosy: + pitrou
messages: +

2011-10-24 10:32:44

flox

set

messages: +

2011-10-24 09:32:08

python-dev

set

nosy: + python-dev
messages: +

2011-10-23 21:30:16

ezio.melotti

set

nosy: + ezio.melotti
messages: +

2011-10-23 18:01:50

flox

set

messages: +

2011-10-23 17:49:46

flox

create