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