aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Doc
diff options
context:
space:
mode:
Diffstat (limited to 'Doc')
-rw-r--r--Doc/c-api/capsule.rst10
-rw-r--r--Doc/c-api/init.rst2
-rw-r--r--Doc/c-api/long.rst2
-rw-r--r--Doc/extending/newtypes_tutorial.rst2
-rw-r--r--Doc/library/ctypes.rst2
-rw-r--r--Doc/library/email.header.rst4
-rw-r--r--Doc/library/exceptions.rst2
-rw-r--r--Doc/library/faulthandler.rst2
-rw-r--r--Doc/library/math.rst10
-rw-r--r--Doc/library/mmap.rst2
-rw-r--r--Doc/library/pathlib.rst2
-rw-r--r--Doc/library/socketserver.rst2
-rw-r--r--Doc/library/threading.rst2
-rw-r--r--Doc/using/cmdline.rst4
-rw-r--r--Doc/using/ios.rst11
-rw-r--r--Doc/whatsnew/3.13.rst2
-rw-r--r--Doc/whatsnew/3.15.rst3
17 files changed, 46 insertions, 18 deletions
diff --git a/Doc/c-api/capsule.rst b/Doc/c-api/capsule.rst
index cdb8aa33e9f..64dc4f5275b 100644
--- a/Doc/c-api/capsule.rst
+++ b/Doc/c-api/capsule.rst
@@ -105,9 +105,19 @@ Refer to :ref:`using-capsules` for more information on using these objects.
``module.attribute``. The *name* stored in the capsule must match this
string exactly.
+ This function splits *name* on the ``.`` character, and imports the first
+ element. It then processes further elements using attribute lookups.
+
Return the capsule's internal *pointer* on success. On failure, set an
exception and return ``NULL``.
+ .. note::
+
+ If *name* points to an attribute of some submodule or subpackage, this
+ submodule or subpackage must be previously imported using other means
+ (for example, by using :c:func:`PyImport_ImportModule`) for the
+ attribute lookups to succeed.
+
.. versionchanged:: 3.3
*no_block* has no effect anymore.
diff --git a/Doc/c-api/init.rst b/Doc/c-api/init.rst
index 3106bf9808f..41fd4ea14ef 100644
--- a/Doc/c-api/init.rst
+++ b/Doc/c-api/init.rst
@@ -1250,7 +1250,7 @@ All of the following functions must be called after :c:func:`Py_Initialize`.
.. c:function:: void PyInterpreterState_Clear(PyInterpreterState *interp)
Reset all information in an interpreter state object. There must be
- an :term:`attached thread state` for the the interpreter.
+ an :term:`attached thread state` for the interpreter.
.. audit-event:: cpython.PyInterpreterState_Clear "" c.PyInterpreterState_Clear
diff --git a/Doc/c-api/long.rst b/Doc/c-api/long.rst
index 25d9e62e387..2d0bda76697 100644
--- a/Doc/c-api/long.rst
+++ b/Doc/c-api/long.rst
@@ -439,7 +439,7 @@ distinguished from a number. Use :c:func:`PyErr_Occurred` to disambiguate.
All *n_bytes* of the buffer are written: large buffers are padded with
zeroes.
- If the returned value is greater than than *n_bytes*, the value was
+ If the returned value is greater than *n_bytes*, the value was
truncated: as many of the lowest bits of the value as could fit are written,
and the higher bits are ignored. This matches the typical behavior
of a C-style downcast.
diff --git a/Doc/extending/newtypes_tutorial.rst b/Doc/extending/newtypes_tutorial.rst
index f14690de4f8..3bbee33bd50 100644
--- a/Doc/extending/newtypes_tutorial.rst
+++ b/Doc/extending/newtypes_tutorial.rst
@@ -277,7 +277,7 @@ be an instance of a subclass.
The explicit cast to ``CustomObject *`` above is needed because we defined
``Custom_dealloc`` to take a ``PyObject *`` argument, as the ``tp_dealloc``
function pointer expects to receive a ``PyObject *`` argument.
- By assigning to the the ``tp_dealloc`` slot of a type, we declare
+ By assigning to the ``tp_dealloc`` slot of a type, we declare
that it can only be called with instances of our ``CustomObject``
class, so the cast to ``(CustomObject *)`` is safe.
This is object-oriented polymorphism, in C!
diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst
index e00fe9c8145..846cece3761 100644
--- a/Doc/library/ctypes.rst
+++ b/Doc/library/ctypes.rst
@@ -2965,7 +2965,7 @@ fields, or any other data types containing pointer type fields.
.. attribute:: is_anonymous
True if this field is anonymous, that is, it contains nested sub-fields
- that should be be merged into a containing structure or union.
+ that should be merged into a containing structure or union.
.. _ctypes-arrays-pointers:
diff --git a/Doc/library/email.header.rst b/Doc/library/email.header.rst
index c3392a62b8e..f49885b8785 100644
--- a/Doc/library/email.header.rst
+++ b/Doc/library/email.header.rst
@@ -206,7 +206,7 @@ The :mod:`email.header` module also provides the following convenient functions.
.. note::
- This function exists for for backwards compatibility only. For
+ This function exists for backwards compatibility only. For
new code, we recommend using :class:`email.headerregistry.HeaderRegistry`.
@@ -225,5 +225,5 @@ The :mod:`email.header` module also provides the following convenient functions.
.. note::
- This function exists for for backwards compatibility only, and is
+ This function exists for backwards compatibility only, and is
not recommended for use in new code.
diff --git a/Doc/library/exceptions.rst b/Doc/library/exceptions.rst
index bb72032891e..9806ae80905 100644
--- a/Doc/library/exceptions.rst
+++ b/Doc/library/exceptions.rst
@@ -1048,7 +1048,7 @@ their subgroups based on the types of the contained exceptions.
subclasses that need a different constructor signature need to
override that rather than :meth:`~object.__init__`. For example, the following
defines an exception group subclass which accepts an exit_code and
- and constructs the group's message from it. ::
+ constructs the group's message from it. ::
class Errors(ExceptionGroup):
def __new__(cls, errors, exit_code):
diff --git a/Doc/library/faulthandler.rst b/Doc/library/faulthandler.rst
index 5058b85bffb..1977f4d3ba3 100644
--- a/Doc/library/faulthandler.rst
+++ b/Doc/library/faulthandler.rst
@@ -90,7 +90,7 @@ An error will be printed instead of the stack.
Additionally, some compilers do not support :term:`CPython's <CPython>`
implementation of C stack dumps. As a result, a different error may be printed
-instead of the stack, even if the the operating system supports dumping stacks.
+instead of the stack, even if the operating system supports dumping stacks.
.. note::
diff --git a/Doc/library/math.rst b/Doc/library/math.rst
index ecb1d4102ca..03da0e4713c 100644
--- a/Doc/library/math.rst
+++ b/Doc/library/math.rst
@@ -59,6 +59,7 @@ noted otherwise, all return values are floats.
:func:`isnan(x) <isnan>` Check if *x* is a NaN (not a number)
:func:`ldexp(x, i) <ldexp>` ``x * (2**i)``, inverse of function :func:`frexp`
:func:`nextafter(x, y, steps) <nextafter>` Floating-point value *steps* steps after *x* towards *y*
+:func:`signbit(x) <signbit>` Check if *x* is a negative number
:func:`ulp(x) <ulp>` Value of the least significant bit of *x*
**Power, exponential and logarithmic functions**
@@ -431,6 +432,15 @@ Floating point manipulation functions
Added the *steps* argument.
+.. function:: signbit(x)
+
+ Return ``True`` if the sign of *x* is negative and ``False`` otherwise.
+
+ This is useful to detect the sign bit of zeroes, infinities and NaNs.
+
+ .. versionadded:: next
+
+
.. function:: ulp(x)
Return the value of the least significant bit of the float *x*:
diff --git a/Doc/library/mmap.rst b/Doc/library/mmap.rst
index 4e20c07331a..8fca79b23e4 100644
--- a/Doc/library/mmap.rst
+++ b/Doc/library/mmap.rst
@@ -269,7 +269,7 @@ To map anonymous memory, -1 should be passed as the fileno along with the length
Resizing a map created with *access* of :const:`ACCESS_READ` or
:const:`ACCESS_COPY`, will raise a :exc:`TypeError` exception.
- Resizing a map created with with *trackfd* set to ``False``,
+ Resizing a map created with *trackfd* set to ``False``,
will raise a :exc:`ValueError` exception.
**On Windows**: Resizing the map will raise an :exc:`OSError` if there are other
diff --git a/Doc/library/pathlib.rst b/Doc/library/pathlib.rst
index 86351e65dc4..47986a2d960 100644
--- a/Doc/library/pathlib.rst
+++ b/Doc/library/pathlib.rst
@@ -1985,7 +1985,7 @@ The :mod:`pathlib.types` module provides types for static type checking.
If *follow_symlinks* is ``False``, return ``True`` only if the path
is a file (without following symlinks); return ``False`` if the path
- is a directory or other other non-file, or if it doesn't exist.
+ is a directory or other non-file, or if it doesn't exist.
.. method:: is_symlink()
diff --git a/Doc/library/socketserver.rst b/Doc/library/socketserver.rst
index 753f12460b8..7fb629f7d2f 100644
--- a/Doc/library/socketserver.rst
+++ b/Doc/library/socketserver.rst
@@ -543,7 +543,7 @@ objects that simplify communication by providing the standard file interface)::
The difference is that the ``readline()`` call in the second handler will call
``recv()`` multiple times until it encounters a newline character, while the
-the first handler had to use a ``recv()`` loop to accumulate data until a
+first handler had to use a ``recv()`` loop to accumulate data until a
newline itself. If it had just used a single ``recv()`` without the loop it
would just have returned what has been received so far from the client.
TCP is stream based: data arrives in the order it was sent, but there no
diff --git a/Doc/library/threading.rst b/Doc/library/threading.rst
index 52fefd590da..cabb41442f8 100644
--- a/Doc/library/threading.rst
+++ b/Doc/library/threading.rst
@@ -621,7 +621,7 @@ since it is impossible to detect the termination of alien threads.
an error to :meth:`~Thread.join` a thread before it has been started
and attempts to do so raise the same exception.
- If an attempt is made to join a running daemonic thread in in late stages
+ If an attempt is made to join a running daemonic thread in late stages
of :term:`Python finalization <interpreter shutdown>` :meth:`!join`
raises a :exc:`PythonFinalizationError`.
diff --git a/Doc/using/cmdline.rst b/Doc/using/cmdline.rst
index a5867b489e0..cad49e2deeb 100644
--- a/Doc/using/cmdline.rst
+++ b/Doc/using/cmdline.rst
@@ -653,7 +653,7 @@ Miscellaneous options
.. versionadded:: 3.13
* :samp:`-X thread_inherit_context={0,1}` causes :class:`~threading.Thread`
- to, by default, use a copy of context of of the caller of
+ to, by default, use a copy of context of the caller of
``Thread.start()`` when starting. Otherwise, threads will start
with an empty context. If unset, the value of this option defaults
to ``1`` on free-threaded builds and to ``0`` otherwise. See also
@@ -1284,7 +1284,7 @@ conflict.
.. envvar:: PYTHON_THREAD_INHERIT_CONTEXT
If this variable is set to ``1`` then :class:`~threading.Thread` will,
- by default, use a copy of context of of the caller of ``Thread.start()``
+ by default, use a copy of context of the caller of ``Thread.start()``
when starting. Otherwise, new threads will start with an empty context.
If unset, this variable defaults to ``1`` on free-threaded builds and to
``0`` otherwise. See also :option:`-X thread_inherit_context<-X>`.
diff --git a/Doc/using/ios.rst b/Doc/using/ios.rst
index 7d5c6331bef..0fb28f8c866 100644
--- a/Doc/using/ios.rst
+++ b/Doc/using/ios.rst
@@ -298,9 +298,9 @@ To add Python to an iOS Xcode project:
* Signal handlers (:c:member:`PyConfig.install_signal_handlers`) are *enabled*;
* System logging (:c:member:`PyConfig.use_system_logger`) is *enabled*
(optional, but strongly recommended; this is enabled by default);
- * ``PYTHONHOME`` for the interpreter is configured to point at the
+ * :envvar:`PYTHONHOME` for the interpreter is configured to point at the
``python`` subfolder of your app's bundle; and
- * The ``PYTHONPATH`` for the interpreter includes:
+ * The :envvar:`PYTHONPATH` for the interpreter includes:
- the ``python/lib/python3.X`` subfolder of your app's bundle,
- the ``python/lib/python3.X/lib-dynload`` subfolder of your app's bundle, and
@@ -324,7 +324,12 @@ modules in your app, some additional steps will be required:
the ``lib-dynload`` folder can be copied and adapted for this purpose.
* If you're using a separate folder for third-party packages, ensure that folder
- is included as part of the ``PYTHONPATH`` configuration in step 10.
+ is included as part of the :envvar:`PYTHONPATH` configuration in step 10.
+
+* If any of the folders that contain third-party packages will contain ``.pth``
+ files, you should add that folder as a *site directory* (using
+ :meth:`site.addsitedir`), rather than adding to :envvar:`PYTHONPATH` or
+ :attr:`sys.path` directly.
Testing a Python package
------------------------
diff --git a/Doc/whatsnew/3.13.rst b/Doc/whatsnew/3.13.rst
index 580a3d8154d..ef7c36d8539 100644
--- a/Doc/whatsnew/3.13.rst
+++ b/Doc/whatsnew/3.13.rst
@@ -1996,7 +1996,7 @@ New Deprecations
(Contributed by Alex Waygood in :gh:`105566` and :gh:`105570`.)
* Deprecate the :func:`typing.no_type_check_decorator` decorator function,
- to be removed in in Python 3.15.
+ to be removed in Python 3.15.
After eight years in the :mod:`typing` module,
it has yet to be supported by any major type checker.
(Contributed by Alex Waygood in :gh:`106309`.)
diff --git a/Doc/whatsnew/3.15.rst b/Doc/whatsnew/3.15.rst
index 9f327cf904d..e58b4250f35 100644
--- a/Doc/whatsnew/3.15.rst
+++ b/Doc/whatsnew/3.15.rst
@@ -115,6 +115,9 @@ math
* Add :func:`math.isnormal` and :func:`math.issubnormal` functions.
(Contributed by Sergey B Kirpichev in :gh:`132908`.)
+* Add :func:`math.signbit` function.
+ (Contributed by Bénédikt Tran in :gh:`135853`.)
+
os.path
-------