Support serializing/restoring contextvars.Context
pulkin opened this issue · comments
pulkin commented
dill
can not serialize a contextvars.Context
instance
Mike McKerns commented
it appears dill
punts to pickle
immediately
Python 3.8.16 (default, Dec 7 2022, 05:25:02)
[Clang 10.0.1 (clang-1001.0.46.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import dill
>>> import contextvars
>>> c = contextvars.Context()
>>> dill.detect.trace(True)
>>> dill.dumps(c)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/mmckerns/lib/python3.8/site-packages/dill/_dill.py", line 277, in dumps
dump(obj, file, protocol, byref, fmode, recurse, **kwds)#, strictio)
File "/Users/mmckerns/lib/python3.8/site-packages/dill/_dill.py", line 249, in dump
Pickler(file, protocol, **_kwds).dump(obj)
File "/Users/mmckerns/lib/python3.8/site-packages/dill/_dill.py", line 417, in dump
StockPickler.dump(self, obj)
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/pickle.py", line 487, in dump
self.save(obj)
File "/Users/mmckerns/lib/python3.8/site-packages/dill/_dill.py", line 411, in save
StockPickler.save(self, obj, save_persistent_id)
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/pickle.py", line 578, in save
rv = reduce(self.proto)
TypeError: cannot pickle 'Context' object
auxsvr commented
https://github.com/akruis/cvpickle seems to work for this.