Improve errors when compiling python code
Now a stacktrace involving precompile_python.py won't be shown, and it will show all errors instead of just the first one. Bug: 331488610 Test: Presubmits Change-Id: I47376ca6764c0f84d1aaf5db329664e20143640a
This commit is contained in:
parent
f875565c7f
commit
5a8f533a29
1 changed files with 14 additions and 1 deletions
|
@ -13,6 +13,7 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
from __future__ import print_function
|
||||||
import argparse
|
import argparse
|
||||||
import py_compile
|
import py_compile
|
||||||
import os
|
import os
|
||||||
|
@ -63,11 +64,23 @@ def main():
|
||||||
parser.add_argument('dst_zip')
|
parser.add_argument('dst_zip')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
errors = []
|
||||||
with open(args.dst_zip, 'wb') as outf, open(args.src_zip, 'rb') as inf:
|
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:
|
with zipfile.ZipFile(outf, mode='w') as outzip, zipfile.ZipFile(inf, mode='r') as inzip:
|
||||||
for name in inzip.namelist():
|
for name in inzip.namelist():
|
||||||
with inzip.open(name, mode='r') as inzipf:
|
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__":
|
if __name__ == "__main__":
|
||||||
|
|
Loading…
Reference in a new issue