Re: [PATCH 2/8] Documentation/sphinx: fix Python string escapes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 14/8/23 11:35 pm, Jonathan Corbet wrote:
Benjamin Gray <bgray@xxxxxxxxxxxxx> writes:

Python 3.6 introduced a DeprecationWarning for invalid escape sequences.
This is upgraded to a SyntaxWarning in Python 3.12, and will eventually
be a syntax error.

Fix these now to get ahead of it before it's an error.

Signed-off-by: Benjamin Gray <bgray@xxxxxxxxxxxxx>
---
  Documentation/sphinx/cdomain.py             | 2 +-
  Documentation/sphinx/kernel_abi.py          | 2 +-
  Documentation/sphinx/kernel_feat.py         | 2 +-
  Documentation/sphinx/kerneldoc.py           | 2 +-
  Documentation/sphinx/maintainers_include.py | 8 ++++----
  5 files changed, 8 insertions(+), 8 deletions(-)

So I am the maintainer for this stuff...is there a reason you didn't
copy me on this work?

Sorry, I thought the list linux-doc@xxxxxxxxxxxxxxx itself was enough. I haven't done a cross tree series before, I was a bit adverse to CC'ing everyone that appears as a maintainer for every patch.


diff --git a/Documentation/sphinx/cdomain.py b/Documentation/sphinx/cdomain.py
index ca8ac9e59ded..dbdc74bd0772 100644
--- a/Documentation/sphinx/cdomain.py
+++ b/Documentation/sphinx/cdomain.py
@@ -93,7 +93,7 @@ def markup_ctype_refs(match):
  #
  RE_expr = re.compile(r':c:(expr|texpr):`([^\`]+)`')
  def markup_c_expr(match):
-    return '\ ``' + match.group(2) + '``\ '
+    return '\\ ``' + match.group(2) + '``\\ '

I have to wonder about this one; I doubt the intent was to insert a
literal backslash.  I have to fire up my ancient build environment to
even try this, but even if it's right...

Yeah, there is even a file that just has a syntax error. I don't have a way to verify the original script was correct, but I have verified this series doesn't change the parsed AST.

In this case though, it's generating reST, so it might just be conservatively guarding against generating bad markup[1]

[1]: https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html#inline-markup

  #
  # Parse Sphinx 3.x C markups, replacing them by backward-compatible ones
diff --git a/Documentation/sphinx/kernel_abi.py b/Documentation/sphinx/kernel_abi.py
index b5feb5b1d905..b9f026f016fd 100644
--- a/Documentation/sphinx/kernel_abi.py
+++ b/Documentation/sphinx/kernel_abi.py
@@ -138,7 +138,7 @@ class KernelCmd(Directive):
                  code_block += "\n    " + l
              lines = code_block + "\n\n"
- line_regex = re.compile("^\.\. LINENO (\S+)\#([0-9]+)$")
+        line_regex = re.compile("^\\.\\. LINENO (\\S+)\\#([0-9]+)$")

All of these really just want to be raw strings - a much more minimal
fix that makes the result quite a bit more readable:

      line_regex = re.compile(r"^\.\. LINENO (\S+)\#([0-9]+)$")
                              ^
                              |
   ---------------------------+

That, I think, is how these should be fixed.

Yup, I mentioned that at the end of the cover letter. I can automate and verify the conversion, but automating what _should_ be treated as a 'regex' string is fuzzier. Checking if there's a `re.*(` prefix on the string should work for most though. I'll give it a shot.

Thanks,

jon




[Index of Archives]     [Linux Kernel]     [Sparc Linux]     [DCCP]     [Linux ARM]     [Yosemite News]     [Linux SCSI]     [Linux x86_64]     [Linux for Ham Radio]

  Powered by Linux