Fix Python build check script. (#911)
* Fix Python build check script. * Update python code check workflow * Update python test script. * Compatible with Python >=3.9 * Compatible with Python >=3.10 * Fix errors in Windows * test * Add Python version in installation.md * Update test_all.pypull/916/head
parent
459697a131
commit
23cce00e09
@ -1,20 +0,0 @@
|
||||
import glob
|
||||
import py_compile as pyc
|
||||
|
||||
if __name__ == "__main__":
|
||||
# find source code files
|
||||
src_paths = sorted(glob.glob("codes/python/**/*.py"))
|
||||
num_src = len(src_paths)
|
||||
num_src_error = 0
|
||||
|
||||
# compile python code
|
||||
for src_path in src_paths:
|
||||
try:
|
||||
pyc.compile(src_path, doraise=True)
|
||||
except pyc.PyCompileError as e:
|
||||
num_src_error += 1
|
||||
print(e)
|
||||
|
||||
print(f"===== Build Complete =====")
|
||||
print(f"Total: {num_src}")
|
||||
print(f"Error: {num_src_error}")
|
@ -0,0 +1,32 @@
|
||||
import os
|
||||
import glob
|
||||
import subprocess
|
||||
|
||||
env = os.environ.copy()
|
||||
env["PYTHONIOENCODING"] = "utf-8"
|
||||
|
||||
if __name__ == "__main__":
|
||||
# find source code files
|
||||
src_paths = sorted(glob.glob("codes/python/chapter_*/*.py"))
|
||||
errors = []
|
||||
|
||||
# run python code
|
||||
for src_path in src_paths:
|
||||
process = subprocess.Popen(
|
||||
["python", src_path],
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE,
|
||||
text=True,
|
||||
env=env,
|
||||
)
|
||||
# Wait for the process to complete, and get the output and error messages
|
||||
stdout, stderr = process.communicate()
|
||||
# Check the exit status
|
||||
exit_status = process.returncode
|
||||
if exit_status != 0:
|
||||
errors.append(stderr)
|
||||
|
||||
print(f"Tested {len(src_paths)} files")
|
||||
print(f"Found exception in {len(errors)} files")
|
||||
if len(errors) > 0:
|
||||
raise RuntimeError("\n\n".join(errors))
|
Loading…
Reference in new issue