Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions Doc/c-api/typeobj.rst
Original file line number Diff line number Diff line change
Expand Up @@ -169,19 +169,19 @@ Quick Reference

**"D"**: default (if slot is set to ``NULL``)

.. code-block:: none
.. parsed-literal::
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These break translations, see #135828.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the pointer to #135828.

If we want to drop parsed-literal from this PR, I see two reasonable replacements:

Option A — keep code-block:: none, just remove the stray emphasis markers

In the original second block, *PyType_Ready* and *NULL* are wrapped in asterisks, but code-block:: renders them verbatim, so they show up as literal * in the output. The first block doesn't have them. The minimal fix is just to remove those asterisks so the second block is consistent with the first:

   .. code-block:: none

-     X - type slot is inherited via *PyType_Ready* if defined with a *NULL* value
+     X - type slot is inherited via PyType_Ready if defined with a NULL value
      % - the slots of the sub-struct are inherited individually
      G - inherited, but only in combination with other slots; see the slot's description
      ? - it's complicated; see the slot's description

The visual layout stays exactly as it is today; we give up the cross-reference / inline-literal improvements.

Option B — switch to a line block (|)

A plain reST line block: no parsed-literal, no syntax-highlighting code path, translation-safe, and inline :c:func: / NULL still work. Visually it's a compact multi-line paragraph (no bullets, no extra spacing) — close to the original block-style legend, just without the gray code-block background:

   **"D"**:  default (if slot is set to ``NULL``)

   | ``X`` -- :c:func:`PyType_Ready` sets this value if it is ``NULL``
   | ``~`` -- :c:func:`PyType_Ready` always sets this value (it should be ``NULL``)
   | ``?`` -- :c:func:`PyType_Ready` may set this value depending on other slots

   Also see the inheritance column ("I").

   **"I"**:  inheritance

   | ``X`` -- type slot is inherited via :c:func:`PyType_Ready` if defined with a ``NULL`` value
   | ``%`` -- the slots of the sub-struct are inherited individually
   | ``G`` -- inherited, but only in combination with other slots; see the slot's description
   | ``?`` -- it's complicated; see the slot's description

make html with --fail-on-warning passes locally on both options.

A keeps the diff minimal; B preserves the original motivation of the PR (PyType_Ready as a cross-reference, NULL as an inline literal).


X - PyType_Ready sets this value if it is NULL
~ - PyType_Ready always sets this value (it should be NULL)
? - PyType_Ready may set this value depending on other slots
X - :c:func:`PyType_Ready` sets this value if it is ``NULL``
~ - :c:func:`PyType_Ready` always sets this value (it should be ``NULL``)
? - :c:func:`PyType_Ready` may set this value depending on other slots

Also see the inheritance column ("I").

**"I"**: inheritance

.. code-block:: none
.. parsed-literal::

X - type slot is inherited via *PyType_Ready* if defined with a *NULL* value
X - type slot is inherited via :c:func:`PyType_Ready` if defined with a ``NULL`` value
% - the slots of the sub-struct are inherited individually
G - inherited, but only in combination with other slots; see the slot's description
? - it's complicated; see the slot's description
Expand Down
Loading