已移动的模块

(函数来自 pyomo.common.deprecation)

pyomo.common.deprecation.moved_module(old_name, new_name, msg=NOTSET, logger=None, version=None, remove_in=None)[source]

为移动/重命名的模块提供弃用路径

此函数挂钩到Python的importlib,使得任何对old_name的导入都会改为导入并返回来自new_name的模块。新模块会自动注册到sys.modules中,同时使用旧名称和新名称。

因为 moved_module() 通过 Python 的 importlib 系统工作,旧的模块文件可以完全 删除(与 [已弃用] 的 relocated_module() 函数不同)。对 moved_module() 的调用应放置在 包层次结构中已删除模块之上的任何包中(或任何 其他保证在通过旧名称导入模块之前被导入/执行的位置)。

通过旧名称导入模块时,除非msgNone,否则将发出弃用警告(另请参见 deprecated())。

Parameters:
  • old_name (str) – 原始(完全限定)模块名称(已被移除)

  • new_name (str) – 新的(完全限定的)模块名称

  • msg (str) – 自定义的弃用消息。如果为 None,则弃用消息将被抑制。如果为 NOTSET(默认值),将记录一个通用的弃用消息。

  • logger (str) – 用于发出警告的日志记录器(默认:调用pyomo包,或“pyomo”)

  • version (str [required]) – 模块被重命名或移动的版本。通常的做法是在开发过程中将版本设置为当前开发版本(来自pyomo –version),并在发布过程中将其更新为实际发布版本。

  • remove_in (str) – 模块将从代码中移除的版本。

示例

>>> from pyomo.common.deprecation import moved_module
>>> moved_module(
...     'pyomo.common.old_deprecation',
...     'pyomo.common.deprecation',
...     version='1.2.3',
... )
>>> import pyomo.common.old_deprecation
WARNING: DEPRECATED: The 'pyomo.common.old_deprecation' module has
    been moved to 'pyomo.common.deprecation'. Please update your import.
    (deprecated in 1.2.3) ...
>>> import pyomo.common.deprecation
>>> pyomo.common.old_deprecation is pyomo.common.deprecation
True