cloudpipe/cloudpickle

Classes with `cached_property` can't be cloudpickled

Open

#438 opened on 2021年8月31日

GitHub で見る
 (3 comments) (1 reaction) (0 assignees)Python (1,407 stars) (152 forks)batch import
enhancementhelp wanted

説明

I believe this is a bug.

Here is an example:

from functools import cached_property
import pickle
import cloudpickle


class MyExample:
    def __init__(self, foo):
        self.foo = foo

    @cached_property
    def bar(self) -> int:
        return self.foo * 3


example = MyExample(2)
pickle.dumps(example)      # works
cloudpickle.dumps(example) # crashes

This fails with TypeError: cannot pickle '_thread.RLock' object.

コントリビューターガイド