有没有办法在python脚本中创建一个理解(来自Scitools)数据库?

时间:2016-11-09 18:22:45

标签: python python-3.x static-analysis scitools

我正在编写一个python脚本来确定引用给定项目的项目,并且已经从Scitools中了解了解。在研究了理解Python API之后,似乎我需要“打开”数据库以执行任何命令并发现所有关于给定项目的发现。例如,当我执行此命令时:

example.py
{{1}}

我遇到了一个了解.UnderstandError:DBCorrupt错误,因为我没有输入.udb文件而是输入.csproj文件。我假设我必须创建这个.udb文件,这是一个db文件。

我试图避免使用了解GUI并在python脚本中自动化这个静态工具。有没有什么办法可以从给定项目创建数据库,然后执行理解必须提供的许多命令。任何指导都将非常感谢!

1 个答案:

答案 0 :(得分:1)

您可以使用命令行实用程序,udb_path是创建UDB的地方,language是Java / Python / c#/或其他什么,project_root是您的根路径你想要了解的项目。

@staticmethod
def create_udb(udb_path, language, project_root):
    try:
        output = subprocess.check_output(
            "und create -db {udb_path} -languages {lang}".format(udb_path=udb_path, lang=language),
            shell=True)
        logging.info(output)
        output = subprocess.check_output("und add -db {udb_path} {project}".format(
            udb_path=udb_path, project=project_root), shell=True)
        logging.info(output)
    except subprocess.CalledProcessError as e:
        logging.exception(e.output)
        logging.fatal("udb creation failed")
        raise Exception