uqfoundation/dill

cannot pickle 'WeakMethod' object

Opened this issue · 0 comments

cannot pickle 'WeakMethod' object
What is this error stands for?

File "/home/user/projects/ProjectX/.venv/lib/python3.9/site-packages/dill/_dill.py", line 412, in save
    StockPickler.save(self, obj, save_persistent_id)
  File "/home/user/.pyenv/versions/3.9.6/lib/python3.9/pickle.py", line 560, in save
    f(self, obj)  # Call unbound method with explicit self
  File "/home/user/projects/ProjectX/.venv/lib/python3.9/site-packages/dill/_dill.py", line 1212, in save_module_dict
    StockPickler.save_dict(pickler, obj)
  File "/home/user/.pyenv/versions/3.9.6/lib/python3.9/pickle.py", line 971, in save_dict
    self._batch_setitems(obj.items())
  File "/home/user/.pyenv/versions/3.9.6/lib/python3.9/pickle.py", line 997, in _batch_setitems
    save(v)
  File "/home/user/projects/ProjectX/.venv/lib/python3.9/site-packages/dill/_dill.py", line 412, in save
    StockPickler.save(self, obj, save_persistent_id)
  File "/home/user/.pyenv/versions/3.9.6/lib/python3.9/pickle.py", line 560, in save
    f(self, obj)  # Call unbound method with explicit self
  File "/home/user/projects/ProjectX/.venv/lib/python3.9/site-packages/dill/_dill.py", line 1965, in save_function
    _save_with_postproc(pickler, (_create_function, (
  File "/home/user/projects/ProjectX/.venv/lib/python3.9/site-packages/dill/_dill.py", line 1112, in _save_with_postproc
    pickler.save_reduce(*reduction)
  File "/home/user/.pyenv/versions/3.9.6/lib/python3.9/pickle.py", line 692, in save_reduce
    save(args)
  File "/home/user/projects/ProjectX/.venv/lib/python3.9/site-packages/dill/_dill.py", line 412, in save
    StockPickler.save(self, obj, save_persistent_id)
  File "/home/user/.pyenv/versions/3.9.6/lib/python3.9/pickle.py", line 560, in save
    f(self, obj)  # Call unbound method with explicit self
  File "/home/user/.pyenv/versions/3.9.6/lib/python3.9/pickle.py", line 886, in save_tuple
    save(element)
  File "/home/user/projects/ProjectX/.venv/lib/python3.9/site-packages/dill/_dill.py", line 412, in save
    StockPickler.save(self, obj, save_persistent_id)
  File "/home/user/.pyenv/versions/3.9.6/lib/python3.9/pickle.py", line 578, in save
    rv = reduce(self.proto)
TypeError: cannot pickle 'WeakMethod' object

Got it while dill.dumps(class) and class contains snowflake with keep_alive