On Wed, Jul 31, 2024 at 03:20:47PM +0200, Ján Tomko wrote:
Signed-off-by: Ján Tomko <[email protected]> --- 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
signature.asc
Description: PGP signature
