modelx v0.24.0 (2023年12月2日)#

本次发布引入了多项不向后兼容的变更。

要更新到 modelx v0.24.0,请使用以下命令:

>>> pip install modelx --upgrade

Anaconda用户应改用conda命令:

>>> conda update modelx

向后不兼容的变更#

1. 子空间对UserSpaces继承行为的变更#

在之前的版本中,从带有子空间的UserSpace继承时,会自动将这些子空间包含在继承中。

从 v0.24.0 开始,子空间默认不再继承。考虑以下示例:

import modelx as mx

m = mx.new_model("m")
A = m.new_space("A")
B = A.new_space("B")
foo = A.new_cells("foo", formula=lambda x: x)
C = m.new_space("C", bases=A)

C.B    # Now raises AttributionError

之前,创建一个继承自A的新空间C时,会自动将A的子空间B复制到C中。更新后的行为改变了这一点;B不再自动继承。下图比较了变更前后的行为。

../_images/UpdatedBehavior.png

要在C中继承B,您需要在C中显式创建一个新空间并从B继承。

C.new_space('B', bases=B)

注意:此更改不影响动态空间。 参数化空间的动态子空间仍会被复制:

A.parameters = ("i",)
A[1].B   # Returns <DynamicSpace m.A[1].B>

2. 移除已弃用的备份和恢复功能#

备份和恢复功能已被弃用,现已被移除。 以下函数和方法不再可用:

  • restore_model

  • open_model

  • Model.backup

  • Model.save