Skip to content

Latest commit

 

History

History
149 lines (116 loc) · 5.79 KB

pending-removal-in-future.rst

File metadata and controls

149 lines (116 loc) · 5.79 KB

Pending Removal in Future Versions

The following APIs will be removed in the future, although there is currently no date scheduled for their removal.

  • :mod:`argparse`: Nesting argument groups and nesting mutually exclusive groups are deprecated.
  • :mod:`array`'s 'u' format code (:gh:`57281`)
  • :mod:`builtins`:
    • ~bool, bitwise inversion on bool.
    • bool(NotImplemented).
    • Generators: throw(type, exc, tb) and athrow(type, exc, tb) signature is deprecated: use throw(exc) and athrow(exc) instead, the single argument signature.
    • Currently Python accepts numeric literals immediately followed by keywords, for example 0in x, 1or x, 0if 1else 2. It allows confusing and ambiguous expressions like [0x1for x in y] (which can be interpreted as [0x1 for x in y] or [0x1f or x in y]). A syntax warning is raised if the numeric literal is immediately followed by one of keywords :keyword:`and`, :keyword:`else`, :keyword:`for`, :keyword:`if`, :keyword:`in`, :keyword:`is` and :keyword:`or`. In a future release it will be changed to a syntax error. (:gh:`87999`)
    • Support for __index__() and __int__() method returning non-int type: these methods will be required to return an instance of a strict subclass of :class:`int`.
    • Support for __float__() method returning a strict subclass of :class:`float`: these methods will be required to return an instance of :class:`float`.
    • Support for __complex__() method returning a strict subclass of :class:`complex`: these methods will be required to return an instance of :class:`complex`.
    • Delegation of int() to __trunc__() method.
  • :mod:`calendar`: calendar.January and calendar.February constants are deprecated and replaced by :data:`calendar.JANUARY` and :data:`calendar.FEBRUARY`. (Contributed by Prince Roshan in :gh:`103636`.)
  • :attr:`codeobject.co_lnotab`: use the :meth:`codeobject.co_lines` method instead.
  • :mod:`datetime`:
    • :meth:`~datetime.datetime.utcnow`: use datetime.datetime.now(tz=datetime.UTC).
    • :meth:`~datetime.datetime.utcfromtimestamp`: use datetime.datetime.fromtimestamp(timestamp, tz=datetime.UTC).
  • :mod:`gettext`: Plural value must be an integer.
  • :mod:`importlib`:
    • load_module() method: use exec_module() instead.
    • :func:`~importlib.util.cache_from_source` debug_override parameter is deprecated: use the optimization parameter instead.
  • :mod:`importlib.metadata`:
    • EntryPoints tuple interface.
    • Implicit None on return values.
  • :mod:`mailbox`: Use of StringIO input and text mode is deprecated, use BytesIO and binary mode instead.
  • :mod:`os`: Calling :func:`os.register_at_fork` in multi-threaded process.
  • :class:`!pydoc.ErrorDuringImport`: A tuple value for exc_info parameter is deprecated, use an exception instance.
  • :mod:`re`: More strict rules are now applied for numerical group references and group names in regular expressions. Only sequence of ASCII digits is now accepted as a numerical reference. The group name in bytes patterns and replacement strings can now only contain ASCII letters and digits and underscore. (Contributed by Serhiy Storchaka in :gh:`91760`.)
  • :mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!sre_parse` modules.
  • :mod:`shutil`: :func:`~shutil.rmtree`'s onerror parameter is deprecated in Python 3.12; use the onexc parameter instead.
  • :mod:`ssl` options and protocols:
    • :class:`ssl.SSLContext` without protocol argument is deprecated.
    • :class:`ssl.SSLContext`: :meth:`~ssl.SSLContext.set_npn_protocols` and :meth:`!selected_npn_protocol` are deprecated: use ALPN instead.
    • ssl.OP_NO_SSL* options
    • ssl.OP_NO_TLS* options
    • ssl.PROTOCOL_SSLv3
    • ssl.PROTOCOL_TLS
    • ssl.PROTOCOL_TLSv1
    • ssl.PROTOCOL_TLSv1_1
    • ssl.PROTOCOL_TLSv1_2
    • ssl.TLSVersion.SSLv3
    • ssl.TLSVersion.TLSv1
    • ssl.TLSVersion.TLSv1_1
  • :func:`sysconfig.is_python_build` check_home parameter is deprecated and ignored.
  • :mod:`threading` methods:
    • :meth:`!threading.Condition.notifyAll`: use :meth:`~threading.Condition.notify_all`.
    • :meth:`!threading.Event.isSet`: use :meth:`~threading.Event.is_set`.
    • :meth:`!threading.Thread.isDaemon`, :meth:`threading.Thread.setDaemon`: use :attr:`threading.Thread.daemon` attribute.
    • :meth:`!threading.Thread.getName`, :meth:`threading.Thread.setName`: use :attr:`threading.Thread.name` attribute.
    • :meth:`!threading.currentThread`: use :meth:`threading.current_thread`.
    • :meth:`!threading.activeCount`: use :meth:`threading.active_count`.
  • :class:`typing.Text` (:gh:`92332`).
  • :class:`unittest.IsolatedAsyncioTestCase`: it is deprecated to return a value that is not None from a test case.
  • :mod:`urllib.parse` deprecated functions: :func:`~urllib.parse.urlparse` instead
    • splitattr()
    • splithost()
    • splitnport()
    • splitpasswd()
    • splitport()
    • splitquery()
    • splittag()
    • splittype()
    • splituser()
    • splitvalue()
    • to_bytes()
  • :mod:`urllib.request`: :class:`~urllib.request.URLopener` and :class:`~urllib.request.FancyURLopener` style of invoking requests is deprecated. Use newer :func:`~urllib.request.urlopen` functions and methods.
  • :mod:`wsgiref`: SimpleHandler.stdout.write() should not do partial writes.
  • :mod:`xml.etree.ElementTree`: Testing the truth value of an :class:`~xml.etree.ElementTree.Element` is deprecated. In a future release it will always return True. Prefer explicit len(elem) or elem is not None tests instead.
  • :meth:`zipimport.zipimporter.load_module` is deprecated: use :meth:`~zipimport.zipimporter.exec_module` instead.