pmfp.entrypoint.test_.static.test_py 源代码

"""编译python语言模块."""
import subprocess
from pathlib import Path
from pmfp.utils.run_command_utils import run
from pmfp.utils.fs_utils import get_abs_path_str, get_abs_path


[文档]def static_test_py(code: str, model: bool, coverage: bool, output: str, *, cwd: str) -> None: """对python代码做静态检测. Args: code (str): 待检测代码 model (bool): 是否是模块 coverage (bool): 是否输出覆盖率文档 output (str): 覆盖率文档位置 cwd (str): 执行任务的根目录 """ cwdp = get_abs_path(cwd) outputp = get_abs_path(output, cwd=cwdp) codep = get_abs_path(code, cwd=cwdp) command_base = "mypy --ignore-missing-imports --show-column-numbers --follow-imports=silent --check-untyped-defs --disallow-untyped-defs --no-implicit-optional --warn-unused-ignores" if model: if coverage and output: command = command_base + f" --html-report={str(outputp)} -m {str(codep)}" else: command = command_base + f" -m {str(codep)}" else: if codep.is_dir(): if coverage and output: command = command_base + f" --scripts-are-modules --html-report={str(outputp)} {str(codep)}" else: command = command_base + f" --scripts-are-modules {str(codep)}" else: if coverage and output: command = command_base + f" --html-report={str(outputp)} {str(codep)}" else: command = command_base + f" {str(codep)}" run(command, cwd=cwdp, visible=True, fail_exit=True)