Linux Kernel Selftest development
 help / color / mirror / Atom feed
* [PATCH 0/6] Address some issues related to Python version
@ 2025-01-29 17:39 Mauro Carvalho Chehab
  2025-01-29 17:39 ` [PATCH 5/6] tools: selftests/bpf: test_bpftool_synctypes: escape raw symbols Mauro Carvalho Chehab
  0 siblings, 1 reply; 3+ messages in thread
From: Mauro Carvalho Chehab @ 2025-01-29 17:39 UTC (permalink / raw)
  To: Jonathan Corbet, Linux Doc Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, linux-kernel,
	Liang, Kan, Adrian Hunter, Alexander Shishkin, Eduard Zingerman,
	Hao Luo, Ian Rogers, Jiri Olsa, John Fastabend, KP Singh,
	Mark Rutland, Martin KaFai Lau, Mykola Lysenko, Shuah Khan,
	Song Liu, Stanislav Fomichev, Yonghong Song, bpf, linux-kselftest,
	linux-perf-users

This series remove compatibility with Python 2.x from scripts that have some
backward compatibility logic on it. The rationale is that, since 
commit 627395716cc3 ("docs: document python version used for compilation"),
the minimal Python version was set to 3.x. Also, Python 2.x is EOL since Jan, 2020.

Patch 1: fix a script that was compatible only with Python 2.x;
Patches 2-4: remove backward-compat code;
Patches 5-6 solves forward-compat with modern Python which warns about using
 raw strings without using "r" format.

Mauro Carvalho Chehab (6):
  docs: trace: decode_msr.py: make it compatible with python 3
  tools: perf: exported-sql-viewer: drop support for Python 2
  tools: perf: tools: perf: exported-sql-viewer: drop support for Python
    2
  tools: perf: task-analyzer: drop support for Python 2
  tools: selftests/bpf: test_bpftool_synctypes: escape raw symbols
  comedi: convert_csv_to_c.py: use r-string for a regex expression

 Documentation/trace/postprocess/decode_msr.py |  2 +-
 .../ni_routing/tools/convert_csv_to_c.py      |  2 +-
 .../scripts/python/exported-sql-viewer.py     |  5 ++--
 tools/perf/scripts/python/task-analyzer.py    | 23 ++++----------
 tools/perf/tests/shell/lib/attr.py            |  6 +---
 .../selftests/bpf/test_bpftool_synctypes.py   | 30 +++++++++----------
 6 files changed, 25 insertions(+), 43 deletions(-)

-- 
2.48.1



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

* [PATCH 5/6] tools: selftests/bpf: test_bpftool_synctypes: escape raw symbols
  2025-01-29 17:39 [PATCH 0/6] Address some issues related to Python version Mauro Carvalho Chehab
@ 2025-01-29 17:39 ` Mauro Carvalho Chehab
  2025-01-29 20:13   ` Quentin Monnet
  0 siblings, 1 reply; 3+ messages in thread
From: Mauro Carvalho Chehab @ 2025-01-29 17:39 UTC (permalink / raw)
  To: Jonathan Corbet, Linux Doc Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Alexei Starovoitov,
	Andrii Nakryiko, Daniel Borkmann, Eduard Zingerman, Hao Luo,
	Jiri Olsa, John Fastabend, KP Singh, Martin KaFai Lau,
	Mykola Lysenko, Shuah Khan, Song Liu, Stanislav Fomichev,
	Yonghong Song, bpf, linux-kernel, linux-kselftest

Modern Python versions complain about usage of "\" inside normal
strings, as they should use r-string notation.

Change the annotations there to avoid such warnings:

	tools/testing/selftests/bpf/test_bpftool_synctypes.py:319: SyntaxWarning: invalid escape sequence '\w' pattern = re.compile('([\w-]+) ?(?:\||}[ }\]"])')

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
---
 .../selftests/bpf/test_bpftool_synctypes.py   | 30 +++++++++----------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/tools/testing/selftests/bpf/test_bpftool_synctypes.py b/tools/testing/selftests/bpf/test_bpftool_synctypes.py
index 0ed67b6b31dd..81f286991012 100755
--- a/tools/testing/selftests/bpf/test_bpftool_synctypes.py
+++ b/tools/testing/selftests/bpf/test_bpftool_synctypes.py
@@ -66,7 +66,7 @@ class ArrayParser(BlockParser):
 
     def __init__(self, reader, array_name):
         self.array_name = array_name
-        self.start_marker = re.compile(f'(static )?const bool {self.array_name}\[.*\] = {{\n')
+        self.start_marker = re.compile(fr'(static )?const bool {self.array_name}\[.*\] = {{\n')
         super().__init__(reader)
 
     def search_block(self):
@@ -80,7 +80,7 @@ class ArrayParser(BlockParser):
         Parse a block and return data as a dictionary. Items to extract must be
         on separate lines in the file.
         """
-        pattern = re.compile('\[(BPF_\w*)\]\s*= (true|false),?$')
+        pattern = re.compile(r'\[(BPF_\w*)\]\s*= (true|false),?$')
         entries = set()
         while True:
             line = self.reader.readline()
@@ -177,9 +177,9 @@ class FileExtractor(object):
 
         @enum_name: name of the enum to parse
         """
-        start_marker = re.compile(f'enum {enum_name} {{\n')
-        pattern = re.compile('^\s*(BPF_\w+),?(\s+/\*.*\*/)?$')
-        end_marker = re.compile('^};')
+        start_marker = re.compile(fr'enum {enum_name} {{\n')
+        pattern = re.compile(r'^\s*(BPF_\w+),?(\s+/\*.*\*/)?$')
+        end_marker = re.compile(r'^};')
         parser = BlockParser(self.reader)
         parser.search_block(start_marker)
         return parser.parse(pattern, end_marker)
@@ -226,8 +226,8 @@ class FileExtractor(object):
 
         @block_name: name of the blog to parse, 'TYPE' in the example
         """
-        start_marker = re.compile(f'\*{block_name}\* := {{')
-        pattern = re.compile('\*\*([\w/-]+)\*\*')
+        start_marker = re.compile(fr'\*{block_name}\* := {{')
+        pattern = re.compile(r'\*\*([\w/-]+)\*\*')
         end_marker = re.compile('}\n')
         return self.__get_description_list(start_marker, pattern, end_marker)
 
@@ -245,8 +245,8 @@ class FileExtractor(object):
 
         @block_name: name of the blog to parse, 'TYPE' in the example
         """
-        start_marker = re.compile(f'"\s*{block_name} := {{')
-        pattern = re.compile('([\w/]+) [|}]')
+        start_marker = re.compile(fr'"\s*{block_name} := {{')
+        pattern = re.compile(r'([\w/]+) [|}]')
         end_marker = re.compile('}')
         return self.__get_description_list(start_marker, pattern, end_marker)
 
@@ -264,8 +264,8 @@ class FileExtractor(object):
 
         @macro: macro starting the block, 'HELP_SPEC_OPTIONS' in the example
         """
-        start_marker = re.compile(f'"\s*{macro}\s*" [|}}]')
-        pattern = re.compile('([\w-]+) ?(?:\||}[ }\]])')
+        start_marker = re.compile(fr'"\s*{macro}\s*" [|}}]')
+        pattern = re.compile(r'([\w-]+) ?(?:\||}[ }\]])')
         end_marker = re.compile('}\\\\n')
         return self.__get_description_list(start_marker, pattern, end_marker)
 
@@ -284,7 +284,7 @@ class FileExtractor(object):
         @block_name: name of the blog to parse, 'TYPE' in the example
         """
         start_marker = re.compile(f'local {block_name}=\'')
-        pattern = re.compile('(?:.*=\')?([\w/]+)')
+        pattern = re.compile(r'(?:.*=\')?([\w/]+)')
         end_marker = re.compile('\'$')
         return self.__get_description_list(start_marker, pattern, end_marker)
 
@@ -316,7 +316,7 @@ class MainHeaderFileExtractor(SourceFileExtractor):
             {'-p', '-d', '--pretty', '--debug', '--json', '-j'}
         """
         start_marker = re.compile(f'"OPTIONS :=')
-        pattern = re.compile('([\w-]+) ?(?:\||}[ }\]"])')
+        pattern = re.compile(r'([\w-]+) ?(?:\||}[ }\]"])')
         end_marker = re.compile('#define')
 
         parser = InlineListParser(self.reader)
@@ -338,8 +338,8 @@ class ManSubstitutionsExtractor(SourceFileExtractor):
 
             {'-p', '-d', '--pretty', '--debug', '--json', '-j'}
         """
-        start_marker = re.compile('\|COMMON_OPTIONS\| replace:: {')
-        pattern = re.compile('\*\*([\w/-]+)\*\*')
+        start_marker = re.compile(r'\|COMMON_OPTIONS\| replace:: {')
+        pattern = re.compile(r'\*\*([\w/-]+)\*\*')
         end_marker = re.compile('}$')
 
         parser = InlineListParser(self.reader)
-- 
2.48.1


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

* Re: [PATCH 5/6] tools: selftests/bpf: test_bpftool_synctypes: escape raw symbols
  2025-01-29 17:39 ` [PATCH 5/6] tools: selftests/bpf: test_bpftool_synctypes: escape raw symbols Mauro Carvalho Chehab
@ 2025-01-29 20:13   ` Quentin Monnet
  0 siblings, 0 replies; 3+ messages in thread
From: Quentin Monnet @ 2025-01-29 20:13 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Jonathan Corbet, Linux Doc Mailing List
  Cc: Daniel Borkmann, Eduard Zingerman, Hao Luo, John Fastabend,
	Martin KaFai Lau, Mykola Lysenko, Stanislav Fomichev,
	Yonghong Song, bpf, linux-kernel, linux-kselftest

2025-01-29 18:39 UTC+0100 ~ Mauro Carvalho Chehab
<mchehab+huawei@kernel.org>
> Modern Python versions complain about usage of "\" inside normal
> strings, as they should use r-string notation.
> 
> Change the annotations there to avoid such warnings:
> 
> 	tools/testing/selftests/bpf/test_bpftool_synctypes.py:319: SyntaxWarning: invalid escape sequence '\w' pattern = re.compile('([\w-]+) ?(?:\||}[ }\]"])')
> 
> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>

Hi, and thanks! But please note we have a fix for this in the bpf-next
tree already:

https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?id=c5d2bac978c513e1f22273cba9c55db3778032e5

Thanks,
Quentin

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

end of thread, other threads:[~2025-01-29 20:13 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-29 17:39 [PATCH 0/6] Address some issues related to Python version Mauro Carvalho Chehab
2025-01-29 17:39 ` [PATCH 5/6] tools: selftests/bpf: test_bpftool_synctypes: escape raw symbols Mauro Carvalho Chehab
2025-01-29 20:13   ` Quentin Monnet

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox