speechbrain.utils.importutils 模块
模块导入相关的实用工具。
- Author
Sylvain de Langen 2024
摘要
类:
定义了一个模块类型,该类型使用 |
|
定义了一种模块类型,该类型会延迟导入目标模块,从而在不必要导入目标模块的情况下暴露内容。 |
函数:
修补模块列表以添加从 |
|
返回与指定文件在同一模块中可导入的脚本列表。 |
|
使 |
|
使得模块下的所有模块仅通过访问即可延迟导入;例如, |
参考
- class speechbrain.utils.importutils.LazyModule(name: str, target: str, package: str | None)[source]
基础:
ModuleType定义了一种模块类型,该类型会延迟导入目标模块,从而在不必要导入目标模块的情况下暴露内容。
- Parameters:
name (str) – 模块的名称。
target (str) – 需要延迟加载的模块。
package (str, optional) – 如果指定,目标模块的加载将相对于此包进行。 根据您如何将惰性模块注入到环境中,您可以选择在此处指定包,或者您可以选择将其包含到
name中使用点语法。 例如,参见lazy_export()和deprecated_redirect()的不同之处。
- ensure_module(stacklevel: int) ModuleType[source]
确保目标模块被导入并可用作
self.lazy_module,同时返回它。- Parameters:
stacklevel (int) – 导致导入发生的函数的堆栈跟踪级别,相对于此函数的调用者(例如,如果在函数
f中调用ensure_module(1),它将引用调用f的函数)。- Raises:
AttributeError – 当发现负责导入尝试的函数是
inspect.py时,我们在这里引发一个AttributeError。这是因为某些代码会无意中导致我们的模块被导入,例如 PyTorch 的一些操作注册机制。- Return type:
确保导入后的目标模块。
- class speechbrain.utils.importutils.DeprecatedModuleRedirect(old_import: str, new_import: str, extra_reason: str | None = None)[source]
基础类:
LazyModule定义了一种模块类型,该类型使用
LazyModule延迟导入目标模块,但在实际执行导入时记录弃用警告。这仅是模块类型本身;如果你想定义一个重定向,请使用
deprecated_redirect()代替。- Parameters:
- ensure_module(stacklevel: int) ModuleType[source]
- speechbrain.utils.importutils.find_imports(file_path: str, find_subpackages: bool = False) List[str][source]
返回与指定文件在同一模块中可导入的脚本列表。例如,如果你有
foo/__init__.py和foo/bar.py,那么files_in_module("foo/__init__.py")的结果将是["bar"]。非递归;这仅适用于给定路径下包的直接模块/子包。
- speechbrain.utils.importutils.lazy_export(name: str, package: str)[source]
使
name在指定package的模块列表下延迟可用,除非它已经被加载,在这种情况下它将被忽略。
- speechbrain.utils.importutils.lazy_export_all(init_file_path: str, package: str, export_subpackages: bool = False)[source]
使得模块下的所有模块仅通过访问即可延迟导入;例如,
foo/bar.py可以通过foo.bar.some_func()访问。
- speechbrain.utils.importutils.deprecated_redirect(old_import: str, new_import: str, extra_reason: str | None = None, also_lazy_export: bool = False) None[source]
修补模块列表以添加从
old_import到new_import的延迟重定向,导入时发出DeprecationWarning。- Parameters:
old_import (str) – 旧的模块导入路径,例如
mypackage.myoldmodulenew_import (str) – 新模块导入路径,例如
mypackage.mycoolpackage.mynewmoduleextra_reason (str, optional) – 如果指定,附加到警告中的额外文本以进行澄清 (例如,说明为什么发生了移动,或者需要额外注意的问题)。
also_lazy_export (bool) – 是否应该将模块也作为懒加载模块导出到由
old_import确定的包中。 例如,如果你有一个foo.bar.somefunc导入为old_import,假设你已经导入了foo(或懒加载),你可以直接使用foo.bar.somefunc而无需显式导入foo.bar。