annotations: move sys.dont_write_bytecode to main script
authorAndrea Righi <andrea.righi@canonical.com>
Mon, 11 Dec 2023 14:21:36 +0000 (15:21 +0100)
committerAndrea Righi <andrea.righi@canonical.com>
Mon, 11 Dec 2023 14:21:36 +0000 (15:21 +0100)
Move sys.dont_write_bytecode to the main script and put a comment that
describe why we need this to be enabled.

Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
annotations
kconfig/run.py

index 34d70da68b9a1417d46c74570fb11b77ac4a55cb..3a05fe96343e33266cfcb631f1478b95ace201ec 100755 (executable)
@@ -4,8 +4,21 @@
 # This file is not installed; it's just to run annotations from inside a source
 # distribution without installing it in the system.
 
-import os
-from kconfig import run
+import sys
+
+# Prevent generating .pyc files on import
+#
+# We may end up adding these files to our git repos by mistake, so simply
+# prevent generating them in advance.
+#
+# There's a tiny performance penalty with this, because python needs to
+# re-generate the bytecode on-the-fly every time the script is executed, but
+# this overhead is absolutely negligible compared the rest of the kernel build
+# time.
+sys.dont_write_bytecode = True
+
+import os  # noqa: E402 Import not at top of file
+from kconfig import run  # noqa: E402 Import not at top of file
 
 
 # Update PATH to make sure that annotations can be executed directly from the
index 5171dfc6fd0f6ce0bde5db7bd3ac7e94a2a09a9b..e857d5620a723064a874b8aa970e11062cac0c6e 100644 (file)
@@ -3,13 +3,10 @@
 # Copyright © 2022 Canonical Ltd.
 
 import sys
-
-sys.dont_write_bytecode = True
-
-import os  # noqa: E402 Import not at top of file
-import argparse  # noqa: E402 Import not at top of file
-import json  # noqa: E402 Import not at top of file
-from signal import signal, SIGPIPE, SIG_DFL  # noqa: E402 Import not at top of file
+import os
+import argparse
+import json
+from signal import signal, SIGPIPE, SIG_DFL
 
 try:
     from argcomplete import autocomplete