38.1. gensuitemodule —生成 OSA 存根软件包

gensuitemodule模块根据其 AppleScript 字典创建一个 Python 包,以实现由特定应用程序实现的 AppleScript 套件的存根代码。

通常,它是由用户pass PythonIDE 调用的,但是它也可以作为脚本从命令行运行(pass--help获得选项帮助)或从 Python 代码导入。有关其用法的示例,请参见源代码分发中的Mac/scripts/genallsuites.py,该代码生成标准库中包含的存根软件包。

它定义了以下公共Function:

  • gensuitemodule. is_scriptable(* application *)

    • 如果应将application作为路径名传递,则返回 true 可以编写脚本。带着一滴盐就可以得出返回值: Internet Explorer 似乎不是可编写脚本的,但绝对可以。
  • gensuitemodule. processfile(* application * [,* output basepkgname edit_modnames creatorsignature dump verbose *])

    • application创建一个存根包,该存根包应作为完整路径名传递。对于.appBinding 包,这是 Binding 包的路径名,而不是 Binding 包内的可执行文件的路径名;对于非 Binding 的 CFM 应用程序,您传递应用程序二进制文件的文件名。

该函数向应用程序询问其 OSA 术语资源,对这些资源进行解码,然后使用所得数据为实现 Client 端存根的程序包创建 Python 代码。

output是存储结果包的路径名,如果未指定,则向用户显示标准的“另存为”对话框。 basepkgname是将在其上构建的基础软件包,默认为StdSuites。仅当生成StdSuites本身时,才需要指定它。 edit_modnames是字典,可用于更改名称修改后过于难看的模块名称。 creator_signature可用于覆盖 4 个字符的创建者代码,该代码通常是从包中的PkgInfo文件或 CFM 文件创建者签名中获得的。给定dump时,它应引用文件对象,并且processfile将在解码资源并将其资源的 Python 表示形式转储到此文件后停止。 verbose也应该是文件对象,指定它会导致processfile告诉您它在做什么。

  • gensuitemodule. processfile_fromresource(* application * [,* output basepkgname edit_modnames creatorsignature dump verbose *])
    • 此函数与processfile相同,只是它使用不同的方法来获取术语资源。它打开application作为资源文件,并从该文件中读取所有"aete""aeut"资源。