All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 1/2] docs: python: abi_regex: catch the right exception for a bad regex
@ 2026-08-07 22:10 Alison Schofield
  2026-08-07 22:10 ` [PATCH v2 2/2] docs: python: abi_regex: convert adjacent index placeholders Alison Schofield
  2026-08-11 16:40 ` [PATCH v2 1/2] docs: python: abi_regex: catch the right exception for a bad regex Jonathan Corbet
  0 siblings, 2 replies; 4+ messages in thread
From: Alison Schofield @ 2026-08-07 22:10 UTC (permalink / raw)
  To: Jonathan Corbet, Shuah Khan; +Cc: Alison Schofield, linux-doc, linux-cxl

While validating recent CXL ABI documentation updates with
get_abi.py, the 'undefined' mode was found to abort instead of
reporting undocumented ABI entries.

Older Python releases raise re.error, while newer releases expose
re.PatternError. Catching the compatible re.error exception handles
both cases.

Use re.error so the scan continues and reports the remaining
results.

Signed-off-by: Alison Schofield <alison.schofield@intel.com>
---

Changes in v2:
- Update commit msg to say catches the compatible re.error (Sashiko)
- No code change


 tools/lib/python/abi/abi_regex.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/tools/lib/python/abi/abi_regex.py b/tools/lib/python/abi/abi_regex.py
index d0c5e3ede6b5..69d8507b7382 100644
--- a/tools/lib/python/abi/abi_regex.py
+++ b/tools/lib/python/abi/abi_regex.py
@@ -155,7 +155,7 @@ class AbiRegex(AbiParser):
             if self.search_string:
                 if what.find(self.search_string) >= 0:
                     print(f"What: {what}")
-        except re.PatternError:
+        except re.error:
             self.log.warning("Ignoring '%s' as it produced an invalid regex:\n"
                              "           '%s'", what, new)
 
@@ -194,7 +194,7 @@ class AbiRegex(AbiParser):
 
                 try:
                     self.re_string = re.compile(self.search_string)
-                except re.PatternError as e:
+                except re.error as e:
                     msg = f"{self.search_string} is not a valid regular expression"
                     raise ValueError(msg) from e
 
@@ -223,9 +223,9 @@ class AbiRegex(AbiParser):
                 for r, s in self.re_whats:
                     try:
                         new = r.sub(s, new)
-                    except re.PatternError as e:
+                    except re.error as e:
                         # Help debugging troubles with new regexes
-                        raise re.PatternError(f"{e}\nwhile re.sub('{r.pattern}', {s}, str)") from e
+                        raise re.error(f"{e}\nwhile re.sub('{r.pattern}', {s}, str)") from e
 
                 v["regex"].append(new)
 

base-commit: 075b74841bd0065a3bda3440873c747938e69b68
-- 
2.37.3


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH v2 2/2] docs: python: abi_regex: convert adjacent index placeholders
  2026-08-07 22:10 [PATCH v2 1/2] docs: python: abi_regex: catch the right exception for a bad regex Alison Schofield
@ 2026-08-07 22:10 ` Alison Schofield
  2026-08-11 16:40   ` Jonathan Corbet
  2026-08-11 16:40 ` [PATCH v2 1/2] docs: python: abi_regex: catch the right exception for a bad regex Jonathan Corbet
  1 sibling, 1 reply; 4+ messages in thread
From: Alison Schofield @ 2026-08-07 22:10 UTC (permalink / raw)
  To: Jonathan Corbet, Shuah Khan; +Cc: Alison Schofield, linux-doc, linux-cxl

While validating recent CXL ABI documentation updates with
get_abi.py, every decoderX.Y entry was reported as undocumented.

The placeholder conversion mishandles adjacent index placeholders,
producing patterns that cannot match the corresponding sysfs paths.
As a result, valid ABI entries are reported as undocumented.

Handle adjacent placeholders independently so generated patterns match
the documented paths. This fixes decoderX.Y entries in the CXL ABI and
other ABI documentation that uses the same naming convention.

Signed-off-by: Alison Schofield <alison.schofield@intel.com>
---

Changes in v2:
- No changes


 tools/lib/python/abi/abi_regex.py | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/tools/lib/python/abi/abi_regex.py b/tools/lib/python/abi/abi_regex.py
index 69d8507b7382..198ecbf49c51 100644
--- a/tools/lib/python/abi/abi_regex.py
+++ b/tools/lib/python/abi/abi_regex.py
@@ -65,8 +65,7 @@ class AbiRegex(AbiParser):
         (re.compile(r"\[[^\]]+\]"), "\\\\w\xf7"),
 
         (re.compile(r"XX+"), "\\\\w\xf7"),
-        (re.compile(r"([^A-Z])[XYZ]([^A-Z])"), "\\1\\\\w\xf7\\2"),
-        (re.compile(r"([^A-Z])[XYZ]$"), "\\1\\\\w\xf7"),
+        (re.compile(r"(?<![A-Z])[XYZ](?![A-Z])"), "\\\\w\xf7"),
         (re.compile(r"_[AB]_"), "_\\\\w\xf7_"),
 
         # Recover [0-9] type of patterns
-- 
2.37.3


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 1/2] docs: python: abi_regex: catch the right exception for a bad regex
  2026-08-07 22:10 [PATCH v2 1/2] docs: python: abi_regex: catch the right exception for a bad regex Alison Schofield
  2026-08-07 22:10 ` [PATCH v2 2/2] docs: python: abi_regex: convert adjacent index placeholders Alison Schofield
@ 2026-08-11 16:40 ` Jonathan Corbet
  1 sibling, 0 replies; 4+ messages in thread
From: Jonathan Corbet @ 2026-08-11 16:40 UTC (permalink / raw)
  To: Alison Schofield, Shuah Khan; +Cc: Alison Schofield, linux-doc, linux-cxl

Alison Schofield <alison.schofield@intel.com> writes:

> While validating recent CXL ABI documentation updates with
> get_abi.py, the 'undefined' mode was found to abort instead of
> reporting undocumented ABI entries.
>
> Older Python releases raise re.error, while newer releases expose
> re.PatternError. Catching the compatible re.error exception handles
> both cases.
>
> Use re.error so the scan continues and reports the remaining
> results.
>
> Signed-off-by: Alison Schofield <alison.schofield@intel.com>
> ---
>
> Changes in v2:
> - Update commit msg to say catches the compatible re.error (Sashiko)
> - No code change
>
>
>  tools/lib/python/abi/abi_regex.py | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)

Applied, thanks.

jon

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 2/2] docs: python: abi_regex: convert adjacent index placeholders
  2026-08-07 22:10 ` [PATCH v2 2/2] docs: python: abi_regex: convert adjacent index placeholders Alison Schofield
@ 2026-08-11 16:40   ` Jonathan Corbet
  0 siblings, 0 replies; 4+ messages in thread
From: Jonathan Corbet @ 2026-08-11 16:40 UTC (permalink / raw)
  To: Alison Schofield, Shuah Khan; +Cc: Alison Schofield, linux-doc, linux-cxl

Alison Schofield <alison.schofield@intel.com> writes:

> While validating recent CXL ABI documentation updates with
> get_abi.py, every decoderX.Y entry was reported as undocumented.
>
> The placeholder conversion mishandles adjacent index placeholders,
> producing patterns that cannot match the corresponding sysfs paths.
> As a result, valid ABI entries are reported as undocumented.
>
> Handle adjacent placeholders independently so generated patterns match
> the documented paths. This fixes decoderX.Y entries in the CXL ABI and
> other ABI documentation that uses the same naming convention.
>
> Signed-off-by: Alison Schofield <alison.schofield@intel.com>
> ---
>
> Changes in v2:
> - No changes
>
>
>  tools/lib/python/abi/abi_regex.py | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/tools/lib/python/abi/abi_regex.py b/tools/lib/python/abi/abi_regex.py
> index 69d8507b7382..198ecbf49c51 100644
> --- a/tools/lib/python/abi/abi_regex.py
> +++ b/tools/lib/python/abi/abi_regex.py
> @@ -65,8 +65,7 @@ class AbiRegex(AbiParser):
>          (re.compile(r"\[[^\]]+\]"), "\\\\w\xf7"),
>  
>          (re.compile(r"XX+"), "\\\\w\xf7"),
> -        (re.compile(r"([^A-Z])[XYZ]([^A-Z])"), "\\1\\\\w\xf7\\2"),
> -        (re.compile(r"([^A-Z])[XYZ]$"), "\\1\\\\w\xf7"),
> +        (re.compile(r"(?<![A-Z])[XYZ](?![A-Z])"), "\\\\w\xf7"),
>          (re.compile(r"_[AB]_"), "_\\\\w\xf7_"),

Sigh ... these regexes are absolutely unreadable.  Not your fault, of
course, and I've applied the patch, but it sure would be nice to get
some documentation in there at some point.

Thanks,

jon

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-08-11 16:40 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-07 22:10 [PATCH v2 1/2] docs: python: abi_regex: catch the right exception for a bad regex Alison Schofield
2026-08-07 22:10 ` [PATCH v2 2/2] docs: python: abi_regex: convert adjacent index placeholders Alison Schofield
2026-08-11 16:40   ` Jonathan Corbet
2026-08-11 16:40 ` [PATCH v2 1/2] docs: python: abi_regex: catch the right exception for a bad regex Jonathan Corbet

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.