Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork966
Closed
Labels
Milestone
Description
I decided to become fancy and use some multiprocessing in our datalad, but quickly was bombarded with
File "/usr/lib/python2.7/multiprocessing/pool.py", line 567, in get raise self._valuePicklingError: Can't pickle <class 'git.cmd.AutoInterrupt'>: attribute lookup git.cmd.AutoInterrupt failed()so I looked into cmd.py to see that AutoInterupt is actuall a sub-class of the Git class... so something went hairy here and I have decided to reproduce on a more obvious snippet:
$> python -c'from git import Git; r = Git("/tmp/123"); import pickle; pickle.dumps(r)'Traceback (most recent call last): File"<string>", line 1,in<module> File"/usr/lib/python2.7/pickle.py", line 1380,in dumps Pickler(file, protocol).dump(obj) File"/usr/lib/python2.7/pickle.py", line 224,in dump self.save(obj) File"/usr/lib/python2.7/pickle.py", line 306,in save rv = reduce(self.proto) File"/usr/lib/python2.7/copy_reg.py", line 77,in _reduce_ex raise TypeError("a class that defines __slots__ without"TypeError: a class that defines __slots__ without defining __getstate__ cannot be pickled
so failed to pickle directly but differently... but overall story is that as long as I have a Git object involved anyhow -- can't pickle my beast, can't use multiprocessing :-/