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(-)
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)
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=...
Thanks, Quentin
linux-kselftest-mirror@lists.linaro.org