summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2024-03-29 02:50:30 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2024-03-29 02:50:30 +0000
commit4fcfd0123c1e633435899f2de5eede4f9bab3876 (patch)
tree1deedde60eb77ddaf33b9285c20eeea739653bbb /python
parent3520b9488ec99db61d7d8fa6367ab591a6cd7577 (diff)
parent5a8f533a29197bf674d8ace004a389307e53a9c9 (diff)
Merge "Improve errors when compiling python code" into main
Diffstat (limited to 'python')
-rw-r--r--python/scripts/precompile_python.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/python/scripts/precompile_python.py b/python/scripts/precompile_python.py
index aa1a5df53..07b8fe97b 100644
--- a/python/scripts/precompile_python.py
+++ b/python/scripts/precompile_python.py
@@ -13,6 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+from __future__ import print_function
import argparse
import py_compile
import os
@@ -63,11 +64,23 @@ def main():
parser.add_argument('dst_zip')
args = parser.parse_args()
+ errors = []
with open(args.dst_zip, 'wb') as outf, open(args.src_zip, 'rb') as inf:
with zipfile.ZipFile(outf, mode='w') as outzip, zipfile.ZipFile(inf, mode='r') as inzip:
for name in inzip.namelist():
with inzip.open(name, mode='r') as inzipf:
- process_one_file(name, inzipf, outzip)
+ try:
+ process_one_file(name, inzipf, outzip)
+ except py_compile.PyCompileError as e:
+ errors.append(e)
+
+ if errors:
+ for i, error in enumerate(errors):
+ # Print an empty line in between each error
+ if i > 0:
+ print(file=sys.stderr)
+ print(str(error).strip(), file=sys.stderr)
+ sys.exit(1)
if __name__ == "__main__":