.. c:function:: PyObject* PyDateTime_FromTimestamp(PyObject *args)
Create and return a new :class:`datetime.datetime` object given an argument
- tuple suitable for passing to :meth:`datetime.datetime.fromtimestamp()`.
+ tuple suitable for passing to :meth:`datetime.datetime.fromtimestamp`.
.. c:function:: PyObject* PyDate_FromTimestamp(PyObject *args)
Create and return a new :class:`datetime.date` object given an argument
- tuple suitable for passing to :meth:`datetime.date.fromtimestamp()`.
+ tuple suitable for passing to :meth:`datetime.date.fromtimestamp`.
* Implicit ``None`` on return values.
* :mod:`logging`: the ``warn()`` method has been deprecated
- since Python 3.3, use :meth:`~logging.warning()` instead.
+ since Python 3.3, use :meth:`~logging.warning` instead.
* :mod:`mailbox`: Use of StringIO input and text mode is deprecated, use
BytesIO and binary mode instead.
though we can make sure the members are initialized to non-``NULL`` values, the
members can be set to ``NULL`` if the attributes are deleted.
-We define a single method, :meth:`!Custom.name()`, that outputs the objects name as the
+We define a single method, :meth:`!Custom.name`, that outputs the objects name as the
concatenation of the first and last names. ::
static PyObject *
For simple input parsing, the easiest approach is usually to split the line into
whitespace-delimited words using the :meth:`~str.split` method of string objects
and then convert decimal strings to numeric values using :func:`int` or
-:func:`float`. :meth:`!split()` supports an optional "sep" parameter which is useful
+:func:`float`. :meth:`!split` supports an optional "sep" parameter which is useful
if the line uses something other than whitespace as a separator.
For more complicated input parsing, regular expressions are more powerful
Summary of invocation logic
---------------------------
-The mechanism for descriptors is embedded in the :meth:`__getattribute__()`
+The mechanism for descriptors is embedded in the :meth:`__getattribute__`
methods for :class:`object`, :class:`type`, and :func:`super`.
The important points to remember are:
Run the event loop until :meth:`stop` is called.
- If :meth:`stop` is called before :meth:`run_forever()` is called,
+ If :meth:`stop` is called before :meth:`run_forever` is called,
the loop will poll the I/O selector once with a timeout of zero,
run all callbacks scheduled in response to I/O events (and
those that were already scheduled), and then exit.
.. coroutinemethod:: loop.shutdown_asyncgens()
Schedule all currently open :term:`asynchronous generator` objects to
- close with an :meth:`~agen.aclose()` call. After calling this method,
+ close with an :meth:`~agen.aclose` call. After calling this method,
the event loop will issue a warning if a new asynchronous generator
is iterated. This should be used to reliably finalize all scheduled
asynchronous generators.
This method should not be overloaded in subclassed
event loops. For custom exception handling, use
- the :meth:`set_exception_handler()` method.
+ the :meth:`set_exception_handler` method.
Enabling debug mode
^^^^^^^^^^^^^^^^^^^
* *stdin* can be any of these:
* a file-like object
- * an existing file descriptor (a positive integer), for example those created with :meth:`os.pipe()`
+ * an existing file descriptor (a positive integer), for example those created with :meth:`os.pipe`
* the :const:`subprocess.PIPE` constant (default) which will create a new
pipe and connect it,
* the value ``None`` which will make the subprocess inherit the file
* - :meth:`loop.close`
- Close the event loop.
- * - :meth:`loop.is_running()`
+ * - :meth:`loop.is_running`
- Return ``True`` if the event loop is running.
- * - :meth:`loop.is_closed()`
+ * - :meth:`loop.is_closed`
- Return ``True`` if the event loop is closed.
* - ``await`` :meth:`loop.shutdown_asyncgens`
Return ``True`` if there are :attr:`maxsize` items in the queue.
If the queue was initialized with ``maxsize=0`` (the default),
- then :meth:`full()` never returns ``True``.
+ then :meth:`full` never returns ``True``.
.. coroutinemethod:: get()
When *converters* is given, it should be a dictionary where each key
represents the name of a type converter and each value is a callable
implementing the conversion from string to the desired datatype. Every
- converter gets its own corresponding :meth:`!get*()` method on the parser
+ converter gets its own corresponding :meth:`!get*` method on the parser
object and section proxies.
It is possible to read several configurations into a single
The *converters* argument was added.
.. versionchanged:: 3.7
- The *defaults* argument is read with :meth:`read_dict()`,
+ The *defaults* argument is read with :meth:`read_dict`,
providing consistent behavior across the parser: non-string
keys and values are implicitly converted to strings.
- *unsafe_hash*: If ``False`` (the default), a :meth:`~object.__hash__` method
is generated according to how *eq* and *frozen* are set.
- :meth:`!__hash__` is used by built-in :meth:`hash()`, and when objects are
+ :meth:`!__hash__` is used by built-in :meth:`hash`, and when objects are
added to hashed collections such as dictionaries and sets. Having a
:meth:`!__hash__` implies that instances of the class are immutable.
Mutability is a complicated property that depends on the programmer's
.. versionadded:: 3.7
.. versionchanged:: 3.11
Previously, this method only supported formats that could be emitted by
- :meth:`date.isoformat()` or :meth:`datetime.isoformat()`.
+ :meth:`date.isoformat` or :meth:`datetime.isoformat`.
.. classmethod:: datetime.fromisocalendar(year, week, day)
.. versionadded:: 3.7
.. versionchanged:: 3.11
Previously, this method only supported formats that could be emitted by
- :meth:`time.isoformat()`.
+ :meth:`time.isoformat`.
Instance methods:
.. method:: __str__()
- Equivalent to :meth:`.as_string()`. Allows ``str(msg)`` to produce a
+ Equivalent to :meth:`.as_string`. Allows ``str(msg)`` to produce a
string containing the formatted message.
.. method:: __bytes__()
- Equivalent to :meth:`.as_bytes()`. Allows ``bytes(msg)`` to produce a
+ Equivalent to :meth:`.as_bytes`. Allows ``bytes(msg)`` to produce a
bytes object containing the formatted message.
.. versionadded:: 3.4
.. method:: __bytes__()
- Equivalent to :meth:`.as_bytes()`. Allows ``bytes(msg)`` to produce a
+ Equivalent to :meth:`.as_bytes`. Allows ``bytes(msg)`` to produce a
bytes object containing the serialized message.
Adds a blank line
(indicating the end of the HTTP headers in the response)
- to the headers buffer and calls :meth:`flush_headers()`.
+ to the headers buffer and calls :meth:`flush_headers`.
.. versionchanged:: 3.2
The buffered headers are written to the output stream.
encoding and decoding of data is made transparently as well as optional
translation of platform-specific newline characters.
-The easiest way to create a text stream is with :meth:`open()`, optionally
+The easiest way to create a text stream is with :meth:`open`, optionally
specifying an encoding::
f = open("myfile.txt", "r", encoding="utf-8")
category of streams can be used for all kinds of non-text data, and also when
manual control over the handling of text data is desired.
-The easiest way to create a binary stream is with :meth:`open()` with ``'b'`` in
+The easiest way to create a binary stream is with :meth:`open` with ``'b'`` in
the mode string::
f = open("myfile.jpg", "rb")
dictConfigClass(config).configure()
For example, a subclass of :class:`DictConfigurator` could call
- ``DictConfigurator.__init__()`` in its own :meth:`__init__()`, then
+ ``DictConfigurator.__init__()`` in its own :meth:`__init__`, then
set up custom prefixes which would be usable in the subsequent
:meth:`configure` call. :attr:`dictConfigClass` would be bound to
this new subclass, and then :func:`dictConfig` could be called exactly as
The constructor should always be called with keyword arguments. *group*
should always be ``None``; it exists solely for compatibility with
:class:`threading.Thread`. *target* is the callable object to be invoked by
- the :meth:`run()` method. It defaults to ``None``, meaning nothing is
+ the :meth:`run` method. It defaults to ``None``, meaning nothing is
called. *name* is the process name (see :attr:`name` for more details).
*args* is the argument tuple for the target invocation. *kwargs* is a
dictionary of keyword arguments for the target invocation. If provided,
You can use this value if you want to wait on several events at
once using :func:`multiprocessing.connection.wait`. Otherwise
- calling :meth:`join()` is simpler.
+ calling :meth:`join` is simpler.
On Windows, this is an OS handle usable with the ``WaitForSingleObject``
and ``WaitForMultipleObjects`` family of API calls. On POSIX, this is
.. method:: kill()
- Same as :meth:`terminate()` but using the ``SIGKILL`` signal on POSIX.
+ Same as :meth:`terminate` but using the ``SIGKILL`` signal on POSIX.
.. versionadded:: 3.7
.. exception:: BufferTooShort
- Exception raised by :meth:`Connection.recv_bytes_into()` when the supplied
+ Exception raised by :meth:`Connection.recv_bytes_into` when the supplied
buffer object is too small for the message read.
If ``e`` is an instance of :exc:`BufferTooShort` then ``e.args[0]`` will give
resulting in a bad file descriptor error, but introduces a potential danger
to applications which replace :func:`sys.stdin` with a "file-like object"
with output buffering. This danger is that if multiple processes call
- :meth:`~io.IOBase.close()` on this file-like object, it could result in the same
+ :meth:`~io.IOBase.close` on this file-like object, it could result in the same
data being flushed to the object multiple times, resulting in corruption.
If you write a file-like object and implement your own caching, you can
to the environment made after this time are not reflected in :data:`os.environ`,
except for changes made by modifying :data:`os.environ` directly.
- The :meth:`!os.environ.refresh()` method updates :data:`os.environ` with
+ The :meth:`!os.environ.refresh` method updates :data:`os.environ` with
changes to the environment made by :func:`os.putenv`, by
:func:`os.unsetenv`, or made outside Python in the same process.
Updated to support :pep:`584`'s merge (``|``) and update (``|=``) operators.
.. versionchanged:: 3.14
- Added the :meth:`!os.environ.refresh()` method.
+ Added the :meth:`!os.environ.refresh` method.
.. data:: environb
.. versionchanged:: 3.8
- :meth:`~Path.exists()`, :meth:`~Path.is_dir()`, :meth:`~Path.is_file()`,
- :meth:`~Path.is_mount()`, :meth:`~Path.is_symlink()`,
- :meth:`~Path.is_block_device()`, :meth:`~Path.is_char_device()`,
- :meth:`~Path.is_fifo()`, :meth:`~Path.is_socket()` now return ``False``
+ :meth:`~Path.exists`, :meth:`~Path.is_dir`, :meth:`~Path.is_file`,
+ :meth:`~Path.is_mount`, :meth:`~Path.is_symlink`,
+ :meth:`~Path.is_block_device`, :meth:`~Path.is_char_device`,
+ :meth:`~Path.is_fifo`, :meth:`~Path.is_socket` now return ``False``
instead of raising an exception for paths that contain characters
unrepresentable at the OS level.
This can be used to prune the search, or to impose a specific order of visiting,
or even to inform :meth:`Path.walk` about directories the caller creates or
renames before it resumes :meth:`Path.walk` again. Modifying *dirnames* when
- *top_down* is false has no effect on the behavior of :meth:`Path.walk()` since the
+ *top_down* is false has no effect on the behavior of :meth:`Path.walk` since the
directories in *dirnames* have already been generated by the time *dirnames*
is yielded to the caller.
of :meth:`socket.getpeername` but not the actual OS resource. Unlike
:func:`socket.fromfd`, *fileno* will return the same socket and not a
duplicate. This may help close a detached socket using
- :meth:`socket.close()`.
+ :meth:`socket.close`.
The newly created socket is :ref:`non-inheritable <fd_inheritance>`.
.. method:: socket.close()
Mark the socket closed. The underlying system resource (e.g. a file
- descriptor) is also closed when all file objects from :meth:`makefile()`
+ descriptor) is also closed when all file objects from :meth:`makefile`
are closed. Once that happens, all future operations on the socket
object will fail. The remote end will receive no more data (after
queued data is flushed).
.. note::
- :meth:`close()` releases the resource associated with a connection but
+ :meth:`close` releases the resource associated with a connection but
does not necessarily close the connection immediately. If you want
- to close the connection in a timely fashion, call :meth:`shutdown()`
- before :meth:`close()`.
+ to close the connection in a timely fashion, call :meth:`shutdown`
+ before :meth:`close`.
.. method:: socket.connect(address)
in non-blocking mode. Also, the blocking and timeout modes are shared between
file descriptors and socket objects that refer to the same network endpoint.
This implementation detail can have visible consequences if e.g. you decide
- to use the :meth:`~socket.fileno()` of a socket.
+ to use the :meth:`~socket.fileno` of a socket.
Timeouts and the ``connect`` method
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
We can see that the table has been created,
as the query returns a :class:`tuple` containing the table's name.
If we query ``sqlite_master`` for a non-existent table ``spam``,
-:meth:`!res.fetchone()` will return ``None``:
+:meth:`!res.fetchone` will return ``None``:
.. doctest::
SSL sockets provide the following methods of :ref:`socket-objects`:
- - :meth:`~socket.socket.accept()`
- - :meth:`~socket.socket.bind()`
- - :meth:`~socket.socket.close()`
- - :meth:`~socket.socket.connect()`
- - :meth:`~socket.socket.detach()`
- - :meth:`~socket.socket.fileno()`
- - :meth:`~socket.socket.getpeername()`, :meth:`~socket.socket.getsockname()`
- - :meth:`~socket.socket.getsockopt()`, :meth:`~socket.socket.setsockopt()`
- - :meth:`~socket.socket.gettimeout()`, :meth:`~socket.socket.settimeout()`,
- :meth:`~socket.socket.setblocking()`
- - :meth:`~socket.socket.listen()`
- - :meth:`~socket.socket.makefile()`
- - :meth:`~socket.socket.recv()`, :meth:`~socket.socket.recv_into()`
+ - :meth:`~socket.socket.accept`
+ - :meth:`~socket.socket.bind`
+ - :meth:`~socket.socket.close`
+ - :meth:`~socket.socket.connect`
+ - :meth:`~socket.socket.detach`
+ - :meth:`~socket.socket.fileno`
+ - :meth:`~socket.socket.getpeername`, :meth:`~socket.socket.getsockname`
+ - :meth:`~socket.socket.getsockopt`, :meth:`~socket.socket.setsockopt`
+ - :meth:`~socket.socket.gettimeout`, :meth:`~socket.socket.settimeout`,
+ :meth:`~socket.socket.setblocking`
+ - :meth:`~socket.socket.listen`
+ - :meth:`~socket.socket.makefile`
+ - :meth:`~socket.socket.recv`, :meth:`~socket.socket.recv_into`
(but passing a non-zero ``flags`` argument is not allowed)
- - :meth:`~socket.socket.send()`, :meth:`~socket.socket.sendall()` (with
+ - :meth:`~socket.socket.send`, :meth:`~socket.socket.sendall` (with
the same limitation)
- - :meth:`~socket.socket.sendfile()` (but :mod:`os.sendfile` will be used
- for plain-text sockets only, else :meth:`~socket.socket.send()` will be used)
- - :meth:`~socket.socket.shutdown()`
+ - :meth:`~socket.socket.sendfile` (but :mod:`os.sendfile` will be used
+ for plain-text sockets only, else :meth:`~socket.socket.send` will be used)
+ - :meth:`~socket.socket.shutdown`
However, since the SSL (and TLS) protocol has its own framing atop
of TCP, the SSL sockets abstraction can, in certain respects, diverge from
dangling resources) as soon as possible.
After this method has been called, any further operation on the view
- raises a :class:`ValueError` (except :meth:`release()` itself which can
+ raises a :class:`ValueError` (except :meth:`release` itself which can
be called multiple times)::
>>> m = memoryview(b'abc')
Added the :class:`!PhotoImage` method :meth:`!copy_replace` to copy a region
from one image to other image, possibly with pixel zooming and/or
subsampling.
- Add *from_coords* parameter to :class:`!PhotoImage` methods :meth:`!copy()`,
- :meth:`!zoom()` and :meth:`!subsample()`.
+ Add *from_coords* parameter to :class:`!PhotoImage` methods :meth:`!copy`,
+ :meth:`!zoom` and :meth:`!subsample`.
Add *zoom* and *subsample* parameters to :class:`!PhotoImage` method
- :meth:`!copy()`.
+ :meth:`!copy`.
The image object can then be used wherever an ``image`` option is supported by
some widget (e.g. labels, buttons, menus). In these cases, Tk will not keep a
*method* should be a string that indicates the HTTP request method that
will be used (e.g. ``'HEAD'``). If provided, its value is stored in the
- :attr:`~Request.method` attribute and is used by :meth:`get_method()`.
+ :attr:`~Request.method` attribute and is used by :meth:`get_method`.
The default is ``'GET'`` if *data* is ``None`` or ``'POST'`` otherwise.
Subclasses may indicate a different default method by setting the
:attr:`~Request.method` attribute in the class itself.
the file object.
The :func:`.open` function may be used in a :keyword:`with` statement. When
- the :keyword:`!with` block completes, the :meth:`Wave_read.close()` or
- :meth:`Wave_write.close()` method is called.
+ the :keyword:`!with` block completes, the :meth:`Wave_read.close` or
+ :meth:`Wave_write.close` method is called.
.. versionchanged:: 3.4
Added support for unseekable files.
.. coroutinemethod:: agen.asend(value)
Returns an awaitable which when run resumes the execution of the
- asynchronous generator. As with the :meth:`~generator.send()` method for a
+ asynchronous generator. As with the :meth:`~generator.send` method for a
generator, this "sends" a value into the asynchronous generator function,
and the *value* argument becomes the result of the current yield expression.
The awaitable returned by the :meth:`asend` method will return the next
searches :data:`sys.meta_path`, which contains a list of meta path finder
objects. These finders are queried in order to see if they know how to handle
the named module. Meta path finders must implement a method called
-:meth:`~importlib.abc.MetaPathFinder.find_spec()` which takes three arguments:
+:meth:`~importlib.abc.MetaPathFinder.find_spec` which takes three arguments:
a name, an import path, and (optionally) a target module. The meta path
finder can use any strategy it wants to determine whether it can handle
the named module or not.
a spec, then a :exc:`ModuleNotFoundError` is raised. Any other exceptions
raised are simply propagated up, aborting the import process.
-The :meth:`~importlib.abc.MetaPathFinder.find_spec()` method of meta path
+The :meth:`~importlib.abc.MetaPathFinder.find_spec` method of meta path
finders is called with two or three arguments. The first is the fully
qualified name of the module being imported, for example ``foo.bar.baz``.
The second argument is the path entries to use for the module search. For
Fraction(5, 3)
For converting floating-point numbers to rationals,
-the float type now has an :meth:`as_integer_ratio()` method that returns
+the float type now has an :meth:`as_integer_ratio` method that returns
the numerator and denominator for a fraction that evaluates to the same
floating-point value::
(Contributed by Guido van Rossum from work for Google App Engine;
:issue:`3487`.)
-* The :mod:`rlcompleter` module's :meth:`Completer.complete()` method
+* The :mod:`rlcompleter` module's :meth:`Completer.complete` method
will now ignore exceptions triggered while evaluating a name.
(Fixed by Lorenz Quack; :issue:`2250`.)
:meth:`tracer`, and :meth:`speed` methods.
* The ability to set new shapes for the turtle, and to
define a new coordinate system.
- * Turtles now have an :meth:`undo()` method that can roll back actions.
+ * Turtles now have an :meth:`undo` method that can roll back actions.
* Simple support for reacting to input events such as mouse and keyboard
activity, making it possible to write simple games.
* A :file:`turtle.cfg` file can be used to customize the starting appearance
configuration files can now be read, modified, and then written back
in their original order.
-* The :meth:`~collections.somenamedtuple._asdict()` method for
+* The :meth:`~collections.somenamedtuple._asdict` method for
:func:`collections.namedtuple` now returns an ordered dictionary with the
values appearing in the same order as the underlying tuple indices.
It was introduced in Python 3.4 but has been broken since Python 3.7.
(Contributed by Inada Naoki in :issue:`23882`.)
-* Removed the undocumented private :meth:`!float.__set_format__()` method,
- previously known as :meth:`!float.__setformat__()` in Python 3.7.
+* Removed the undocumented private :meth:`!float.__set_format__` method,
+ previously known as :meth:`!float.__setformat__` in Python 3.7.
Its docstring said: "You probably don't want to use this function.
It exists mainly to be used in Python's test suite."
(Contributed by Victor Stinner in :issue:`46852`.)
* Many previously deprecated cleanups in :mod:`importlib` have now been
completed:
- * References to, and support for :meth:`!module_repr()` has been removed.
+ * References to, and support for :meth:`!module_repr` has been removed.
(Contributed by Barry Warsaw in :gh:`97850`.)
* ``importlib.util.set_package``, ``importlib.util.set_loader`` and
* Hard-coded breakpoints (:func:`breakpoint` and :func:`pdb.set_trace`) now
reuse the most recent :class:`~pdb.Pdb` instance that calls
- :meth:`~pdb.Pdb.set_trace()`, instead of creating a new one each time.
+ :meth:`~pdb.Pdb.set_trace`, instead of creating a new one each time.
As a result, all the instance specific data like :pdbcmd:`display` and
:pdbcmd:`commands` are preserved across hard-coded breakpoints.
(Contributed by Tian Gao in :gh:`121450`.)
(Proposed and implemented by Mark Dickinson; :issue:`9337`.)
-* :class:`memoryview` objects now have a :meth:`~memoryview.release()` method
+* :class:`memoryview` objects now have a :meth:`~memoryview.release` method
and they also now support the context management protocol. This allows timely
release of any resources that were acquired when requesting a buffer from the
original object.
and :class:`fractions.Fraction` (:issue:`2531` and :issue:`8188`).
Similar changes were made to :class:`fractions.Fraction` so that the
-:meth:`~fractions.Fraction.from_float()` and :meth:`~fractions.Fraction.from_decimal`
+:meth:`~fractions.Fraction.from_float` and :meth:`~fractions.Fraction.from_decimal`
methods are no longer needed (:issue:`8294`):
>>> from decimal import Decimal
The :mod:`socket` module has two new improvements.
-* Socket objects now have a :meth:`~socket.socket.detach()` method which puts
+* Socket objects now have a :meth:`~socket.socket.detach` method which puts
the socket into closed state without actually closing the underlying file
descriptor. The latter can then be reused for other purposes.
(Added by Antoine Pitrou; :issue:`8524`.)
--------
:class:`!asyncore.dispatcher` now provides a
-:meth:`!handle_accepted()` method
+:meth:`!handle_accepted` method
returning a ``(sock, addr)`` pair which is called when a connection has actually
been established with a new remote endpoint. This is supposed to be used as a
-replacement for old :meth:`!handle_accept()` and avoids
-the user to call :meth:`!accept()` directly.
+replacement for old :meth:`!handle_accept` and avoids
+the user to call :meth:`!accept` directly.
(Contributed by Giampaolo RodolĂ ; :issue:`6706`.)
accept a *decode_data* keyword argument to determine if the ``DATA`` portion of
the SMTP transaction is decoded using the ``"utf-8"`` codec or is instead
provided to the
-:meth:`!SMTPServer.process_message()`
+:meth:`!SMTPServer.process_message`
method as a byte string. The default is ``True`` for backward compatibility
reasons, but will change to ``False`` in Python 3.6. If *decode_data* is set
to ``False``, the ``process_message`` method must be prepared to accept keyword
The :class:`!SMTPServer` class now advertises the ``8BITMIME`` extension
(:rfc:`6152`) if *decode_data* has been set ``True``. If the client
specifies ``BODY=8BITMIME`` on the ``MAIL`` command, it is passed to
-:meth:`!SMTPServer.process_message()`
+:meth:`!SMTPServer.process_message`
via the *mail_options* keyword.
(Contributed by Milan Oberkirch and R. David Murray in :issue:`21795`.)
The :class:`!SMTPServer` class now also supports the ``SMTPUTF8``
extension (:rfc:`6531`: Internationalized Email). If the client specified
``SMTPUTF8 BODY=8BITMIME`` on the ``MAIL`` command, they are passed to
-:meth:`!SMTPServer.process_message()`
+:meth:`!SMTPServer.process_message`
via the *mail_options* keyword. It is the responsibility of the
``process_message`` method to correctly handle the ``SMTPUTF8`` data.
(Contributed by Milan Oberkirch in :issue:`21725`.)
error-prone and has been removed in Python 3.5. See :issue:`13936` for full
details.
-* The :meth:`ssl.SSLSocket.send()` method now raises either
+* The :meth:`ssl.SSLSocket.send` method now raises either
:exc:`ssl.SSLWantReadError` or :exc:`ssl.SSLWantWriteError`
on a non-blocking socket if the operation would block. Previously,
it would return ``0``. (Contributed by Nikolaus Rath in :issue:`20951`.)
new ABC for access to, opening, and reading *resources* inside packages.
Resources are roughly similar to files inside packages, but they needn't
be actual files on the physical file system. Module loaders can provide a
-:meth:`get_resource_reader()` function which returns
+:meth:`get_resource_reader` function which returns
a :class:`importlib.abc.ResourceReader` instance to support this
new API. Built-in file path loaders and zip file loaders both support this.
msilib
------
-The new :meth:`!Database.Close()` method can be used
+The new :meth:`!Database.Close` method can be used
to close the :abbr:`MSI` database.
(Contributed by Berker Peksag in :issue:`20486`.)
---------
Methods
-:meth:`!MetaPathFinder.find_module()`
+:meth:`!MetaPathFinder.find_module`
(replaced by
:meth:`MetaPathFinder.find_spec() <importlib.abc.MetaPathFinder.find_spec>`)
and
-:meth:`!PathEntryFinder.find_loader()`
+:meth:`!PathEntryFinder.find_loader`
(replaced by
:meth:`PathEntryFinder.find_spec() <importlib.abc.PathEntryFinder.find_spec>`)
both deprecated in Python 3.4 now emit :exc:`DeprecationWarning`.
to :meth:`ArgumentParser.add_subparsers() <argparse.ArgumentParser.add_subparsers>`.
(Contributed by Anthony Sottile in :issue:`26510`.)
-* :meth:`ast.literal_eval()` is now stricter. Addition and subtraction of
+* :meth:`ast.literal_eval` is now stricter. Addition and subtraction of
arbitrary numbers are no longer allowed.
(Contributed by Serhiy Storchaka in :issue:`31778`.)
-------
:mod:`pathlib.Path` methods that return a boolean result like
-:meth:`~pathlib.Path.exists()`, :meth:`~pathlib.Path.is_dir()`,
-:meth:`~pathlib.Path.is_file()`, :meth:`~pathlib.Path.is_mount()`,
-:meth:`~pathlib.Path.is_symlink()`, :meth:`~pathlib.Path.is_block_device()`,
-:meth:`~pathlib.Path.is_char_device()`, :meth:`~pathlib.Path.is_fifo()`,
-:meth:`~pathlib.Path.is_socket()` now return ``False`` instead of raising
+:meth:`~pathlib.Path.exists`, :meth:`~pathlib.Path.is_dir`,
+:meth:`~pathlib.Path.is_file`, :meth:`~pathlib.Path.is_mount`,
+:meth:`~pathlib.Path.is_symlink`, :meth:`~pathlib.Path.is_block_device`,
+:meth:`~pathlib.Path.is_char_device`, :meth:`~pathlib.Path.is_fifo`,
+:meth:`~pathlib.Path.is_socket` now return ``False`` instead of raising
:exc:`ValueError` or its subclass :exc:`UnicodeEncodeError` for paths that
contain characters unrepresentable at the OS level.
(Contributed by Serhiy Storchaka in :issue:`33721`.)
-Added :meth:`!pathlib.Path.link_to()` which creates a hard link pointing
+Added :meth:`!pathlib.Path.link_to` which creates a hard link pointing
to a path.
(Contributed by Joannah Nanjekye in :issue:`26978`)
Note that ``link_to`` was deprecated in 3.10 and removed in 3.12 in
socket
------
-Added :meth:`~socket.create_server()` and :meth:`~socket.has_dualstack_ipv6()`
+Added :meth:`~socket.create_server` and :meth:`~socket.has_dualstack_ipv6`
convenience functions to automate the necessary tasks usually involved when
creating a server socket, including accepting both IPv4 and IPv6 connections
on the same socket. (Contributed by Giampaolo RodolĂ in :issue:`17561`.)
(Contributed by Lisa Roach in :issue:`26467`).
Added :func:`~unittest.addModuleCleanup` and
-:meth:`~unittest.TestCase.addClassCleanup()` to unittest to support
+:meth:`~unittest.TestCase.addClassCleanup` to unittest to support
cleanups for :func:`~unittest.setUpModule` and
-:meth:`~unittest.TestCase.setUpClass()`.
+:meth:`~unittest.TestCase.setUpClass`.
(Contributed by Lisa Roach in :issue:`24412`.)
Several mock assert functions now also print a list of actual calls upon
the ``l*gettext()`` functions.
(Contributed by Serhiy Storchaka in :issue:`33710`.)
-* The :meth:`~threading.Thread.isAlive()` method of :class:`threading.Thread`
+* The :meth:`~threading.Thread.isAlive` method of :class:`threading.Thread`
has been deprecated.
(Contributed by Donghee Na in :issue:`35283`.)
datetime
--------
-The :meth:`~datetime.date.isocalendar()` of :class:`datetime.date`
-and :meth:`~datetime.datetime.isocalendar()` of :class:`datetime.datetime`
+The :meth:`~datetime.date.isocalendar` of :class:`datetime.date`
+and :meth:`~datetime.datetime.isocalendar` of :class:`datetime.datetime`
methods now returns a :func:`~collections.namedtuple` instead of a :class:`tuple`.
(Contributed by Donghee Na in :issue:`24416`.)
pathlib
-------
-Added :meth:`pathlib.Path.readlink()` which acts similarly to
+Added :meth:`pathlib.Path.readlink` which acts similarly to
:func:`os.readlink`.
(Contributed by Girts Folkmanis in :issue:`30618`)
removed. They were deprecated since Python 3.7.
(Contributed by Victor Stinner in :issue:`37320`.)
-* The :meth:`!isAlive()` method of :class:`threading.Thread`
+* The :meth:`!isAlive` method of :class:`threading.Thread`
has been removed. It was deprecated since Python 3.8.
- Use :meth:`~threading.Thread.is_alive()` instead.
+ Use :meth:`~threading.Thread.is_alive` instead.
(Contributed by Donghee Na in :issue:`37804`.)
* Methods ``getchildren()`` and ``getiterator()`` of classes
.. nonce: AkRzjb
.. section: Core and Builtins
-Add :meth:`int.bit_count()`, counting the number of ones in the binary
+Add :meth:`int.bit_count`, counting the number of ones in the binary
representation of an integer. Patch by Niklas Fiekas.
..
.. nonce: X-TJZO
.. section: Library
-Fix :meth:`IMAP4.noop()` when debug mode is enabled (ex: ``imaplib.Debug =
+Fix :meth:`IMAP4.noop` when debug mode is enabled (ex: ``imaplib.Debug =
3``).
..
.. nonce: jd_gkA
.. section: Library
-:meth:`sched.scheduler.cancel()` will now cancel the correct event, if two
+:meth:`sched.scheduler.cancel` will now cancel the correct event, if two
events with same priority are scheduled for the same time. Patch by Bar
Harel.
if the basename of current user's home directory does not match their
username.
-:meth:`pathlib.Path.expanduser()` and :meth:`~pathlib.Path.home()` now
+:meth:`pathlib.Path.expanduser` and :meth:`~pathlib.Path.home` now
consistently raise :exc:`RuntimeError` exception when a home directory
cannot be resolved. Previously a :exc:`KeyError` exception could be raised
on Windows when the ``"USERNAME"`` environment variable was unset.
.. nonce: F0Cg6X
.. section: Windows
-Avoid raising errors from :meth:`pathlib.Path.exists()` when passed an
+Avoid raising errors from :meth:`pathlib.Path.exists` when passed an
invalid filename.
..
.. nonce: ZI05b5
.. section: Core and Builtins
-Improved the performance of :meth:`list.append()` and list comprehensions by
+Improved the performance of :meth:`list.append` and list comprehensions by
optimizing for the common case, where no resize is needed. Patch by Dennis
Sweeney.
* Don't overwrite :exc:`BufferError` with :exc:`ValueError` when conversion to
BLOB fails.
* Raise :exc:`~sqlite3.ProgrammingError` instead of :exc:`~sqlite3.Warning` if
- user tries to :meth:`~sqlite3.Cursor.execute()` more than one SQL statement.
+ user tries to :meth:`~sqlite3.Cursor.execute` more than one SQL statement.
* Raise :exc:`~sqlite3.ProgrammingError` instead of :exc:`ValueError` if an SQL
query contains null characters.
.. nonce: 7uCiIB
.. section: Library
-:meth:`pathlib.PurePath.relative_to()` now treats naked Windows drive paths
+:meth:`pathlib.PurePath.relative_to` now treats naked Windows drive paths
as relative. This brings its behaviour in line with other parts of pathlib.
..
.. nonce: jLWGlr
.. section: Library
-:meth:`asyncio.futures.Future.set_exception()` now transforms
+:meth:`asyncio.futures.Future.set_exception` now transforms
:exc:`StopIteration` into :exc:`RuntimeError` instead of hanging or other
misbehavior. Patch contributed by Jamie Phan.
.. nonce: Me7fJe
.. section: Library
-Fix :meth:`multiprocessing.connection.Listener.accept()` to accept empty
+Fix :meth:`multiprocessing.connection.Listener.accept` to accept empty
bytes as authkey. Not accepting empty bytes as key causes it to hang
indefinitely.
Add the :class:`!PhotoImage` method :meth:`!copy_replace` to copy a region
from one image to other image, possibly with pixel zooming and/or
subsampling. Add *from_coords* parameter to :class:`!PhotoImage` methods
-:meth:`!copy()`, :meth:`!zoom()` and :meth:`!subsample()`. Add *zoom* and
-*subsample* parameters to :class:`!PhotoImage` method :meth:`!copy()`.
+:meth:`!copy`, :meth:`!zoom` and :meth:`!subsample`. Add *zoom* and
+*subsample* parameters to :class:`!PhotoImage` method :meth:`!copy`.
..
Add :mod:`importlib.resources` and :class:`importlib.abc.ResourceReader` as
the unified API for reading resources contained within packages. Loaders
wishing to support resource reading must implement the
-:meth:`get_resource_reader()` method. File-based and zipimport-based
+:meth:`get_resource_reader` method. File-based and zipimport-based
loaders both implement these APIs. :class:`importlib.abc.ResourceLoader` is
deprecated in favor of these new APIs.
.. nonce: 37IdsA
.. section: Library
-Fixed integer overflow in the :meth:`~hashlib.shake.digest()` and
-:meth:`~hashlib.shake.hexdigest()` methods for the SHAKE algorithm in the
+Fixed integer overflow in the :meth:`~hashlib.shake.digest` and
+:meth:`~hashlib.shake.hexdigest` methods for the SHAKE algorithm in the
:mod:`hashlib` module.
..
.. section: Library
Add :func:`~unittest.addModuleCleanup` and
-:meth:`~unittest.TestCase.addClassCleanup()` to unittest to support cleanups
+:meth:`~unittest.TestCase.addClassCleanup` to unittest to support cleanups
for :func:`~unittest.setUpModule` and
-:meth:`~unittest.TestCase.setUpClass()`. Patch by Lisa Roach.
+:meth:`~unittest.TestCase.setUpClass`. Patch by Lisa Roach.
..
.. section: Library
The default asyncio task class now always has a name which can be get or set
-using two new methods (:meth:`~asyncio.Task.get_name()` and
+using two new methods (:meth:`~asyncio.Task.get_name` and
:meth:`~asyncio.Task.set_name`) and is visible in the :func:`repr` output.
An initial name can also be set using the new ``name`` keyword argument to
:func:`asyncio.create_task` or the
:func:`~os.path.exists`, :func:`~os.path.lexists`, :func:`~os.path.isdir`,
:func:`~os.path.isfile`, :func:`~os.path.islink`, and
:func:`~os.path.ismount`, and :mod:`pathlib.Path` methods that return a
-boolean result like :meth:`~pathlib.Path.exists()`,
-:meth:`~pathlib.Path.is_dir()`, :meth:`~pathlib.Path.is_file()`,
-:meth:`~pathlib.Path.is_mount()`, :meth:`~pathlib.Path.is_symlink()`,
-:meth:`~pathlib.Path.is_block_device()`,
-:meth:`~pathlib.Path.is_char_device()`, :meth:`~pathlib.Path.is_fifo()`,
-:meth:`~pathlib.Path.is_socket()` now return ``False`` instead of raising
+boolean result like :meth:`~pathlib.Path.exists`,
+:meth:`~pathlib.Path.is_dir`, :meth:`~pathlib.Path.is_file`,
+:meth:`~pathlib.Path.is_mount`, :meth:`~pathlib.Path.is_symlink`,
+:meth:`~pathlib.Path.is_block_device`,
+:meth:`~pathlib.Path.is_char_device`, :meth:`~pathlib.Path.is_fifo`,
+:meth:`~pathlib.Path.is_socket` now return ``False`` instead of raising
:exc:`ValueError` or its subclasses :exc:`UnicodeEncodeError` and
:exc:`UnicodeDecodeError` for paths that contain characters or bytes
unrepresentable at the OS level.
.. nonce: QmfNmY
.. section: Library
-Added :meth:`~socket.create_server()` and
-:meth:`~socket.has_dualstack_ipv6()` convenience functions to automate the
+Added :meth:`~socket.create_server` and
+:meth:`~socket.has_dualstack_ipv6` convenience functions to automate the
necessary tasks usually involved when creating a server socket, including
accepting both IPv4 and IPv6 connections on the same socket. (Contributed
by Giampaolo Rodola in :issue:`17561`.)
.. nonce: TQFOR4
.. section: Library
-:meth:`!msilib.Directory.start_component()` no longer fails if *keyfile* is
+:meth:`!msilib.Directory.start_component` no longer fails if *keyfile* is
not ``None``.
..
.. nonce: d8djAJ
.. section: Library
-Fix :meth:`asyncio.SelectorEventLoop.subprocess_exec()` leaks file
+Fix :meth:`asyncio.SelectorEventLoop.subprocess_exec` leaks file
descriptors if ``Popen`` fails and called with ``stdin=subprocess.PIPE``.
Patch by Niklas Fiekas.
.. nonce: r_wGRc
.. section: Documentation
-Documented that in :meth:`datetime.datetime.strptime()`, the leading zero in
+Documented that in :meth:`datetime.datetime.strptime`, the leading zero in
some two-digit formats is optional. Patch by Mike Gleen.
..
.. nonce: X7FRaN
.. section: Windows
-:meth:`~pathlib.Path.home()` and :meth:`~pathlib.Path.expanduser()` on
+:meth:`~pathlib.Path.home` and :meth:`~pathlib.Path.expanduser` on
Windows now prefer :envvar:`USERPROFILE` and no longer use :envvar:`HOME`,
which is not normally set for regular user accounts. This makes them again
behave like :func:`os.path.expanduser`, which was changed to ignore
.. nonce: pDZR6V
.. section: Library
-Added :meth:`pathlib.Path.with_stem()` to create a new Path with the stem
+Added :meth:`pathlib.Path.with_stem` to create a new Path with the stem
replaced.
..
.. section: Library
Added default arguments to
-:meth:`difflib.SequenceMatcher.find_longest_match()`.
+:meth:`difflib.SequenceMatcher.find_longest_match`.
..
-:exc:`ValueError` messages for :meth:`!list.index()`, :meth:`!range.index()`,
-:meth:`!deque.index()`, :meth:`!deque.remove()` and
-:meth:`!ShareableList.index()` no longer contain the repr of the searched
+:exc:`ValueError` messages for :meth:`!list.index`, :meth:`!range.index`,
+:meth:`!deque.index`, :meth:`!deque.remove` and
+:meth:`!ShareableList.index` no longer contain the repr of the searched
value (which can be arbitrary large) and are consistent with error messages
-for other :meth:`!index()` and :meth:`!remove()` methods.
+for other :meth:`!index` and :meth:`!remove` methods.