断言一个对象可以使用 joblib 序列化

Assert that an object can be serialized using joblib

我想测试是否可以使用 joblib(!) 序列化对象。类似于:

assert pickle.dumps(my_obj)

似乎是使用pickle的方式,但joblib不提供.dumps。我尝试这样做:

with tempfile.TemporaryFile("wb") as f:
        assert joblib.dump(my_obj, f)

但这失败了,因为在这种情况下 joblib.dump returns None(尽管根据 doc 它应该 return 某些计算结果为 True).

如果我使用 joblib,等效项是什么?

根据消息来源,如果您传入文件对象,则不会返回任何内容,只有在您传入文件名时才会返回。 https://github.com/joblib/joblib/blob/master/joblib/numpy_pickle.py#L510

因此使用命名的临时文件并传递名称应该可以解决问题。

运行 代码并对文件大小进行断言似乎也是一个有效的策略。