脚本接口

模块: polygraphy.tools.script

safe(base_str, *args, **kwargs)[source]

表示字符串可以安全使用,不会危及安全性。

注意:调用者负责检查字符串实际上是安全的。此函数仅用于将字符串标记为安全。

也可以使用格式化字符串。例如

>>> safe("{} is my name", "polygraphy")
"'polygraphy' is my name"
inline(inp)[source]

将安全字符串标记为内联,以便与其他 Script API 一起使用。非内联字符串在使用任何这些 API 时仍将保持字符串形式。例如

>>> make_invocable("print", safe("example"))
"print('example')"

>>> make_invocable("print", inline(safe("example")))
"print(example)"
参数:

inp (Script.String) – 要内联的安全字符串。

make_invocable(type_str, *args, **kwargs)[source]

创建将使用指定参数调用指定对象的字符串表示形式。

参数:
  • type_str (str) – 表示应调用的对象的字符串。

  • args – 传递给对象的参数。如果关键字参数设置为 None,则会省略。

  • kwargs – 传递给对象的参数。如果关键字参数设置为 None,则会省略。

返回值:

调用指定对象的字符串表示形式。

返回类型:

str

例如

>>> make_invocable("MyClass", 0, 1, last=3)
"MyClass(0, 1, last=3)"

>>> make_invocable("my_func", 0, 1, last=None)
"my_func(0, 1)"
make_invocable_if_nondefault(type_str, *args, **kwargs)[source]

类似于 make_invocable,但如果所有参数都是 None,则返回 None

例如

>>> make_invocable_if_nondefault("MyClass", 0, 1, last=3)
"MyClass(0, 1, last=3)"

>>> make_invocable_if_nondefault("my_func", None, None, last=None)
None
make_invocable_if_nondefault_kwargs(type_str, *args, **kwargs)[source]

类似于 make_invocable_if_nondefault,但即使位置参数不是 None,如果所有关键字参数都是 None,则返回 None

例如

>>> make_invocable_if_nondefault("MyClass", 0, 1, last=3)
"MyClass(0, 1, last=3)"

>>> make_invocable_if_nondefault("my_func", 0, 1, last=None)
None
class Script(summary=None, always_create_runners=True)[source]

基类: object

表示使用 Polygraphy API 的 Python 脚本。

参数:
  • summary (str) – 脚本功能的摘要,将作为注释包含在脚本中。

  • always_create_runners (bool) – 即使运行器列表为空,是否创建运行器列表。

class String(s, safe=False, inline=False)[source]

基类: object

表示已通过 Polygraphy 安全检查的字符串。

unwrap()[source]

返回底层的字符串对象。

返回值:

str

add_import(imports, frm=None, imp_as=None)[source]

向此脚本添加导入。

例如

script.add_import("numpy") # Equivalent to: import numpy
script.add_import("numpy", imp_as="np") # Equivalent to: import numpy as np
script.add_import("TrtRunner", frm="polygraphy.backend.trt") # Equivalent to: from polygraphy.backend.trt import TrtRunner
参数:
  • imports (Union[str, List[str]]) – 要导入的对象/子模块或对象/子模块列表。

  • frm (str) – 从哪个模块导入。

  • imp_as (str) – 导入时使用的名称。当指定此项时,imports 必须是字符串而不是列表。

set_data_loader(data_loader_str)[source]

向此脚本添加数据加载器,覆盖任何先前的数据加载器。

参数:

data_loader_str (str) – 构造数据加载器的字符串。

返回值:

脚本中数据加载器的名称;如果提供的数据加载器为空,则为 None。

返回类型:

str

add_loader(loader_str, loader_id)[source]

向脚本添加加载器。如果加载器重复,则返回现有加载器。

参数:
  • loader_str (str) – 构造加载器的字符串。出于安全原因,这必须使用 make_invocablemake_invocable_if_nondefault 生成。

  • loader_id (str) – 加载器的简短人类可读标识符。

返回值:

添加的加载器的名称。

返回类型:

str

add_runner(runner_str)[source]

向脚本添加运行器。

参数:

runner_str (str) – 构造运行器的字符串。例如,这可以通过 make_invocable 生成。

append_preimport(line)[source]

将一行附加到脚本的预导入前缀。

参数:

line (str) – 要附加的行。

append_suffix(line)[source]

将一行附加到脚本的后缀

参数:

line (str) – 要附加的行。

save(dest)[source]

将此脚本保存到指定目标位置。

参数:

dest (file-like) – 类似文件的对象,定义了 write()flush()isatty,并具有 name 属性。