On Wed, Jul 31, 2024 at 03:20:47PM +0200, Ján Tomko wrote:
Signed-off-by: Ján Tomko <jtomko@xxxxxxxxxx> --- scripts/group-qemu-caps.py | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/scripts/group-qemu-caps.py b/scripts/group-qemu-caps.py index 8a899a76c2..ec10f24384 100755 --- a/scripts/group-qemu-caps.py +++ b/scripts/group-qemu-caps.py @@ -30,24 +30,26 @@ import sys def load_caps_flags(filename, start_regex, end_regex): capsflags = [] game_on = False + lines = [] with open(filename, "r") as fh: - for line in fh: - line = line.rstrip("\n") - if game_on: - if re.search(r'''.*/\* [0-9]+ \*/.*''', line): - continue - if re.search(r'''^\s*$''', line): - continue - match = re.search(r'''[ ]+([A-Z0-9_]+)''', line) - - if match: - capsflags.append(match[1]) - - if re.search(start_regex, line): - game_on = True - elif game_on and re.search(end_regex, line): - game_on = False + lines = fh.read().splitlines()
What's the point? This way you have to read the whole file into the memory. If you keep it as is and just break on `game_on = False` you skip reading the rest of the file at least. You can even do: for line in open(filename, 'r'):
+ + for line in lines: + if game_on: + if re.search(r'''.*/\* [0-9]+ \*/.*''', line): + continue + if re.search(r'''^\s*$''', line): + continue + match = re.search(r'''[ ]+([A-Z0-9_]+)''', line) + + if match: + capsflags.append(match[1]) + + if re.search(start_regex, line): + game_on = True + elif game_on and re.search(end_regex, line): + game_on = False return capsflags -- 2.45.2
Attachment:
signature.asc
Description: PGP signature