Skip to content

deprecated in 3.2/3.3, should be removed in 3.5 or ??? #57457

Closed

Description

@florentx
mannequin
BPO 13248
Nosy @rhettinger, @terryjreedy, @orsenthil, @pitrou, @vstinner, @larryhastings, @giampaolo, @tiran, @ezio-melotti, @merwok, @florentx, @berkerpeksag, @vadmium, @1st1
Files
  • issue13248_obsolescence_v3.diff
  • issue13248.diff
  • 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 2020-05-19.18:40:32.173>
    created_at = <Date 2011-10-23.17:49:46.072>
    labels = ['type-bug', 'library']
    title = 'deprecated in 3.2/3.3, should be removed in 3.5 or ???'
    updated_at = <Date 2020-05-19.18:40:32.172>
    user = 'https://github.com/florentx'

    bugs.python.org fields:

    activity = <Date 2020-05-19.18:40:32.172>
    actor = 'benjamin.peterson'
    assignee = 'none'
    closed = True
    closed_date = <Date 2020-05-19.18:40:32.173>
    closer = 'benjamin.peterson'
    components = ['Library (Lib)']
    creation = <Date 2011-10-23.17:49:46.072>
    creator = 'flox'
    dependencies = []
    files = ['26301', '32662']
    hgrepos = []
    issue_num = 13248
    keywords = ['patch']
    message_count = 49.0
    messages = ['146236', '146237', '146259', '146284', '146288', '146289', '146344', '146500', '146581', '149145', '149192', '149265', '149297', '149301', '149320', '149322', '155797', '155815', '155836', '155838', '155839', '155841', '164850', '164852', '164865', '164880', '164901', '164924', '164979', '184706', '184925', '185120', '185123', '203111', '217452', '217457', '221491', '233278', '233293', '233296', '233297', '233434', '233444', '247207', '247209', '247689', '247720', '247727', '275206']
    nosy_count = 18.0
    nosy_names = ['rhettinger', 'terry.reedy', 'orsenthil', 'pitrou', 'vstinner', 'larry', 'giampaolo.rodola', 'christian.heimes', 'ezio.melotti', 'eric.araujo', 'Arfrever', 'flox', 'Yaroslav.Halchenko', 'tshepang', 'python-dev', 'berker.peksag', 'martin.panter', 'yselivanov']
    pr_nums = []
    priority = 'normal'
    resolution = 'fixed'
    stage = 'resolved'
    status = 'closed'
    superseder = None
    type = 'behavior'
    url = 'https://bugs.python.org/issue13248'
    versions = ['Python 3.5']

    Activity

    1. florentx commented on Oct 23, 2011

      florentxmannequin
      MannequinAuthor

      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"

    2. added
      stdlibStandard Library Python modules in the Lib/ directory
      type-bugAn unexpected behavior, bug, or error
      on Oct 23, 2011
    3. florentx commented on Oct 23, 2011

      florentxmannequin
      MannequinAuthor

      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"

    4. ezio-melotti commented on Oct 23, 2011

      @ezio-melotti
      Member

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

    5. python-dev commented on Oct 24, 2011

      python-devmannequin
      Mannequin

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

    6. florentx commented on Oct 24, 2011

      florentxmannequin
      MannequinAuthor

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

    7. pitrou commented on Oct 24, 2011

      @pitrou
      Member

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

    8. ezio-melotti commented on Oct 25, 2011

      @ezio-melotti
      Member

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

    9. merwok commented on Oct 27, 2011

      @merwok
      Member

      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.

    10. terryjreedy commented on Oct 28, 2011

      @terryjreedy
      Member

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

    11. python-dev commented on Dec 10, 2011

      python-devmannequin
      Mannequin

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

    12. florentx commented on Dec 10, 2011

      florentxmannequin
      MannequinAuthor

      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.

    13. vstinner commented on Dec 12, 2011

      @vstinner
      Member
      .. versionchanged:: 3.2
      -      The *strict* parameter is deprecated.  HTTP 0.9-style "Simple Responses"
      +      The *strict* parameter is removed.  HTTP 0.9-style "Simple Responses"
             are not supported anymore.

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

    14. pitrou commented on Dec 12, 2011

      @pitrou
      Member

      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:

      • max_buffer_size (io is new and that argument was never used by anybody)
      • get_prefix / set_prefix (the internal lib2to3 API is not documented AFAICT)
      • the argparse things (argparse is new)
    15. 25 remaining items

    16. BreamoreBoy commented on Jan 1, 2015

      BreamoreBoymannequin
      Mannequin

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

    17. terryjreedy commented on Jan 1, 2015

      @terryjreedy
      Member

      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.

    18. changed the 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 ???[/+] on Jan 1, 2015
    19. vadmium commented on Jan 1, 2015

      @vadmium
      Member

      See bpo-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.

    20. vadmium commented on Jan 1, 2015

      @vadmium
      Member

      Make that bpo-19176 for XMLParser.doctype()

    21. vadmium commented on Jan 4, 2015

      @vadmium
      Member

      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.

    22. berkerpeksag commented on Jan 5, 2015

      @berkerpeksag
      Member

      Here is a follow-up list:

      • formatter module (will be removed in Python 3.6)
      • asynchat.fifo() (will be removed in Python 3.6)
      • buffering argument of bz2.BZ2File() (deprecated in 2011)
      • tarfile.filemode() (deprecated in 2012)
      • SO config var (sysconfig.get_config_var()) (deprecated in 2013)
      • platform.popen() (deprecated in 2011)
      • ntpath.splitunc() (deprecated in 2009)
      • inspect.getmoduleinfo() (deprecated in 2012)
    23. python-dev commented on Jul 23, 2015

      python-devmannequin
      Mannequin

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

    24. python-dev commented on Jul 23, 2015

      python-devmannequin
      Mannequin

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

    25. YaroslavHalchenko commented on Jul 30, 2015

      YaroslavHalchenkomannequin
      Mannequin

      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 bpo-13248: Remove deprecated inspect.getargspec and inspect.getmoduleinfo

    26. python-dev commented on Jul 31, 2015

      python-devmannequin
      Mannequin

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

    27. 1st1 commented on Jul 31, 2015

      @1st1
      Member

      Thank you, Berker!

    28. tiran commented on Sep 8, 2016

      @tiran
      Member

      Did you keep this ticket open for a reason?

    29. transferred this issue fromon Apr 10, 2022
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

    Metadata

    Metadata

    Assignees

    No one assigned

      Labels

      stdlibStandard Library Python modules in the Lib/ directorytype-bugAn unexpected behavior, bug, or error

      Projects

      No projects

        Milestone

        No milestone

        Relationships

        None yet

        Development

        No branches or pull requests

        Issue actions