diff --git a/Doc/deprecations/soft-deprecations.rst b/Doc/deprecations/soft-deprecations.rst index a270052788e..d1dd2b2d8c5 100644 --- a/Doc/deprecations/soft-deprecations.rst +++ b/Doc/deprecations/soft-deprecations.rst @@ -19,3 +19,8 @@ There are no plans to remove :term:`soft deprecated` APIs. (Contributed by Gregory P. Smith in :gh:`86519` and Hugo van Kemenade in :gh:`148100`.) + +* Using ``'F'`` and ``'D'`` format type codes of the :mod:`struct` module + now are :term:`soft deprecated` in favor of two-letter forms ``'Zf'`` + and ``'Zd'``. + (Contributed by Sergey B Kirpichev in :gh:`121249`.) diff --git a/Doc/library/struct.rst b/Doc/library/struct.rst index 05662c6c2d8..ef535e3ca6e 100644 --- a/Doc/library/struct.rst +++ b/Doc/library/struct.rst @@ -260,10 +260,6 @@ platform-dependent. +--------+--------------------------+--------------------+----------------+------------+ | ``d`` | :c:expr:`double` | float | 8 | \(4) | +--------+--------------------------+--------------------+----------------+------------+ -| ``F`` | :c:expr:`float complex` | complex | 8 | \(10) | -+--------+--------------------------+--------------------+----------------+------------+ -| ``D`` | :c:expr:`double complex` | complex | 16 | \(10) | -+--------+--------------------------+--------------------+----------------+------------+ | ``Zf`` | :c:expr:`float complex` | complex | 8 | \(10) | +--------+--------------------------+--------------------+----------------+------------+ | ``Zd`` | :c:expr:`double complex` | complex | 16 | \(10) | @@ -286,6 +282,7 @@ platform-dependent. .. versionchanged:: 3.15 Added support for the ``'Zf'`` and ``'Zd'`` formats. + ``'F'`` and ``'D'`` formats are :term:`soft deprecated`. .. seealso:: @@ -376,13 +373,15 @@ Notes: are accepted. (10) - For the ``'F'`` and ``'D'`` format characters, the packed representation uses + For the ``'Zf'`` and ``'Zd'`` type codes, the packed representation uses the IEEE 754 binary32 and binary64 format for components of the complex number, regardless of the floating-point format used by the platform. - Note that complex types (``F``/``Zf`` and ``D``/``Zd``) are available unconditionally, + Note that complex types are available unconditionally, despite complex types being an optional feature in C. As specified in the C11 standard, each complex type is represented by a two-element C array containing, respectively, the real and imaginary parts. + The ``'F'`` and ``'D'`` (for ``'Zf'`` and ``'Zd'``, respectively) format + characters are supported for compatibility. A format character may be preceded by an integral repeat count. For example, diff --git a/Doc/whatsnew/3.15.rst b/Doc/whatsnew/3.15.rst index 88b238c709d..bad9e2d8dff 100644 --- a/Doc/whatsnew/3.15.rst +++ b/Doc/whatsnew/3.15.rst @@ -2280,6 +2280,11 @@ New deprecations (Contributed by Sergey B Kirpichev and Serhiy Storchaka in :gh:`143715`.) + * Using ``'F'`` and ``'D'`` type codes now are :term:`soft deprecated` + in favor of two-letter forms ``'Zf'`` and ``'Zd'``. + (Contributed by Sergey B Kirpichev in :gh:`121249`.) + + * :mod:`typing`: * The following statements now cause ``DeprecationWarning``\ s to be emitted