speechbrain.utils.importutils 模块
模块导入相关实用工具。
- 作者
Sylvain de Langen 2024
摘要
类
定义一种模块类型,它使用 |
|
定义一种模块类型,它延迟导入目标模块,从而在不必要地导入目标模块的情况下暴露其内容。 |
函数
修补模块列表,添加从 |
|
返回与指定文件在同一模块中的可导入脚本列表。 |
|
使 |
|
通过访问即可使模块下的所有子模块延迟可导入;例如 |
参考
- class speechbrain.utils.importutils.LazyModule(name: str, target: str, package: str | None)[source]
基类:
ModuleType
定义一种模块类型,它延迟导入目标模块,从而在不必要地导入目标模块的情况下暴露其内容。
- 参数:
name (str) – 模块名称。
target (str) – 要延迟加载的模块。
package (str, 可选) – 如果指定,目标模块加载将相对于此包。根据你将延迟模块注入环境的方式,你可以选择在此处指定包,或者选择将其包含在
name
中使用点语法。例如,请参阅lazy_export()
和deprecated_redirect()
的不同之处。
- ensure_module(stacklevel: int) ModuleType [source]
确保目标模块已被导入并可用作
self.lazy_module
,同时也返回它。- 参数:
stacklevel (int) – 导致导入发生的函数的堆栈跟踪级别,相对于此函数的 调用者 (例如,如果在函数
f
中调用ensure_module(1)
,它将指代调用f
的函数)。- 引发:
AttributeError – 当负责导入尝试的函数被发现是
inspect.py
时,我们在此引发AttributeError
。这是因为某些代码会无意中导致我们的模块被导入,例如 PyTorch 的一些 op 注册机制。- 返回类型:
确保导入后返回目标模块。
- class speechbrain.utils.importutils.DeprecatedModuleRedirect(old_import: str, new_import: str, extra_reason: str | None = None)[source]
基类:
LazyModule
定义一种模块类型,它使用
LazyModule
延迟导入目标模块,但在实际执行导入时记录弃用警告。这只是模块类型本身;如果你想定义重定向,请使用
deprecated_redirect()
。- 参数:
- 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
警告。- 参数:
old_import (str) – 旧的模块导入路径,例如
mypackage.myoldmodule
new_import (str) – 新的模块导入路径,例如
mypackage.mycoolpackage.mynewmodule
extra_reason (str, 可选) – 如果指定,将额外文本附加到警告中以进行澄清(例如,说明移动发生的原因,或需要注意的其他问题)。
also_lazy_export (bool) – 模块是否也应作为延迟模块在由
old_import
确定的包中导出。例如,如果你有一个foo.bar.somefunc
导入作为old_import
,假设你已经导入了foo
(或延迟加载),你可以直接使用foo.bar.somefunc
而无需显式导入foo.bar
。