modelx v0.6.1 (2020年4月29日)#
此版本为错误修复版本。
Bug修复#
当回溯中的公式包含lambda表达式、推导式内的公式调用或嵌套函数时,
get_traceback()存在bug(GH31)。
modelx v0.6.0 (2020年4月27日)#
本次发布实现了一种新的错误机制,用于追踪公式执行过程中引发的错误。错误信息也得到了改进。
功能增强#
公式错误
在公式执行过程中发生错误时,modelx的新默认行为是抛出FormulaError,而非原始异常。FormulaError的错误信息会显示原始异常的错误消息,随后附上modelx元素的回溯追踪,以及引发异常的公式源代码。要获取原始异常,请使用get_error()函数。
用户可以通过向use_formula_error()函数传递False来修改此默认行为,这种情况下将直接抛出原始错误。
get_traceback()函数以元组列表形式返回回溯信息。每个元组表示错误发生时执行调用堆栈中对某个公式的调用。元组的第一个元素是modelx对象的元素(多数情况下是Cells的元素),第二个元素是公式中的行号,指示调用下一个公式的位置;对于最后一个公式,则指示错误发生的位置。如果错误发生在公式执行前或执行后,最后一个公式的行号可能为0。
最后的错误信息可以通过get_error()和get_traceback()获取,在下一次公式执行时会被清除。
get_error(),get_traceback()和use_formula_error()函数已按照上述说明添加。get_recursion()已添加用于获取当前递归限制。
向后不兼容的变更#
在赋值给Cells时,无参数Cells隐式转换为其值的功能现已被移除。
Bug修复#
由于公式执行失败导致的内部状态损坏。