aim 当调用 run.close() 后访问 run.active 时,引发了 TypeError,

xpcnnkqh  于 4个月前  发布在  其他
关注(0)|答案(1)|浏览(52)

🐛 Bug

在调用run.close()后,检查运行对象的active属性时会引发TypeError。

In [5]: run = aim.Run()

In [6]: run.active
Out[6]: True

In [7]: run.close()

In [8]: run.active
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[8], line 1
----> 1 run.active

File ~/.pyenv/versions/3.11.8/envs/nabla-3.11.8/lib/python3.11/site-packages/aim/sdk/run.py:217, in StructuredRunMixin.active(self)
    209 @property
    210 def active(self):
    211     """Check if run is active or not.
212
213         :getter: Returns run's active state.
214         :type: bool
215     """
    217     if self.end_time:
    218         return False
    219     else:

File ~/.pyenv/versions/3.11.8/envs/nabla-3.11.8/lib/python3.11/site-packages/aim/sdk/run.py:192, in StructuredRunMixin.end_time(self)
    187 """Run finalization time [UTC] as timestamp.
188
189     :getter: Returns run finalization time.
190 """
    191 try:
----> 192     return self.meta_run_tree['end_time']
    193 except KeyError:
    194     # run saved with old version. fallback to sqlite data
    195     return self.props.end_time

TypeError: 'NoneType' object is not subscriptable

重现问题

  1. 使用aim.Run()初始化一个运行对象。
  2. 检查运行对象的active属性(它按预期返回True)。
  3. 使用run.close()关闭运行对象。
  4. 再次检查运行对象的active属性。

预期行为

在调用run.close()之后,active属性应返回False,而不引发异常。

环境

  • aim==3.19.2

aim-ui==3.19.2
aimrecords==0.0.7
aimrocks==0.4.0

  • Python 3.11.8
  • pip 24.0
  • Linux

附加信息

错误似乎是由self.meta_run_tree['end_time']返回None引起的。在尝试读取end_time键之前,应添加一个检查以确保self.meta_run_tree不是None。感谢您关注此问题。

mfpqipee

mfpqipee1#

嘿,@awav!非常感谢你打开这个问题。我会调查它,一旦修复完成就会发布一个更新。

相关问题