]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[doc]: Fix missing space in c-api/init.rst and add rstlint rule (GH-28988)
authorJulien Palard <julien@palard.fr>
Tue, 19 Oct 2021 19:13:24 +0000 (21:13 +0200)
committerGitHub <noreply@github.com>
Tue, 19 Oct 2021 19:13:24 +0000 (21:13 +0200)
Doc/c-api/init.rst
Doc/tools/rstlint.py

index 5e817268a2036bbf84e72b770cf66f3e93bc12e8..09dfc68fee57dc73a87cfadf1c954cfbaea7d17a 100644 (file)
@@ -1177,7 +1177,7 @@ All of the following functions must be called after :c:func:`Py_Initialize`.
 
    Suspend tracing and profiling in the Python thread state *tstate*.
 
-   Resume them using the:c:func:`PyThreadState_LeaveTracing` function.
+   Resume them using the :c:func:`PyThreadState_LeaveTracing` function.
 
    .. versionadded:: 3.11
 
@@ -1185,7 +1185,7 @@ All of the following functions must be called after :c:func:`Py_Initialize`.
 .. c:function:: void PyThreadState_LeaveTracing(PyThreadState *tstate)
 
    Resume tracing and profiling in the Python thread state *tstate* suspended
-   by the:c:func:`PyThreadState_EnterTracing` function.
+   by the :c:func:`PyThreadState_EnterTracing` function.
 
    See also :c:func:`PyEval_SetTrace` and :c:func:`PyEval_SetProfile`
    functions.
index 045b7d7c945df521c4abc48387606a5d95774a7d..33cbaadfce944ece5536338aa1cff345eb8c9a71 100755 (executable)
@@ -43,10 +43,10 @@ directives = [
 ]
 
 roles = [
-    ":class:",
-    ":func:",
-    ":meth:",
-    ":mod:",
+    "(?<!py):class:",
+    "(?<!:c|py):func:",
+    "(?<!py):meth:",
+    "(?<!:py):mod:",
     ":exc:",
     ":issue:",
     ":attr:",
@@ -54,7 +54,7 @@ roles = [
     ":ref:",
     ":const:",
     ":term:",
-    ":data:",
+    "(?<!:c|py):data:",
     ":keyword:",
     ":file:",
     ":pep:",
@@ -128,6 +128,11 @@ double_backtick_role = re.compile(r"(?<!``)%s``" % all_roles)
 # :const:`None`
 role_with_no_backticks = re.compile(r"%s[^` ]" % all_roles)
 
+# Find role glued with another word like:
+# the:c:func:`PyThreadState_LeaveTracing` function.
+# instad of:
+# the :c:func:`PyThreadState_LeaveTracing` function.
+role_glued_with_word = re.compile(r"[a-zA-Z]%s" % all_roles)
 
 default_role_re = re.compile(r"(^| )`\w([^`]*?\w)?`($| )")
 leaked_markup_re = re.compile(r"[a-z]::\s|`|\.\.\s*\w+:")
@@ -176,6 +181,8 @@ def check_suspicious_constructs(fn, lines):
             yield lno, "role use a single backtick, double backtick found."
         if role_with_no_backticks.search(line):
             yield lno, "role use a single backtick, no backtick found."
+        if role_glued_with_word.search(line):
+            yield lno, "missing space before role"
         if ".. productionlist::" in line:
             inprod = True
         elif not inprod and default_role_re.search(line):