This is on git master: ``` >>> import cloudpickle >>> def f(): ...: s = {1,2} ...: def g(): ...: return len(s) ...: return g ...: >>> g = f() >>> g <function __main__.f.<locals>.g> >>> cloudpickle.dumps(g) Traceback (most recent call last): File "<ipython-input-5-3faa44bc74aa>", line 1, in <module> cloudpickle.dumps(g) File "/home/antoine/cloudpickle/cloudpickle/cloudpickle.py", line 734, in dumps cp.dump(obj) File "/home/antoine/cloudpickle/cloudpickle/cloudpickle.py", line 146, in dump return Pickler.dump(self, obj) File "/home/antoine/miniconda3/envs/dask36/lib/python3.6/pickle.py", line 409, in dump self.save(obj) File "/home/antoine/miniconda3/envs/dask36/lib/python3.6/pickle.py", line 476, in save f(self, obj) # Call unbound method with explicit self File "/home/antoine/cloudpickle/cloudpickle/cloudpickle.py", line 267, in save_function self.save_function_tuple(obj) File "/home/antoine/cloudpickle/cloudpickle/cloudpickle.py", line 336, in save_function_tuple self._save_subimports(code, set(f_globals.values()) | set(closure)) TypeError: unhashable type: 'set' ```
Activity
pitrou commentedon May 23, 2017
@ogrisel
Fix cloudpipe#86: allow pickling functions with unhashable closure va…
pitrou commentedon May 30, 2017
Fixed by PR #90.