cloudpipe / cloudpipe/cloudpickle
Dill breaks cloudpickle > 1.3.0 on inner functions with closure
- Dominant language
- Python
- Stars
- 1.9k
- Forks
- 195
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 1
Description
Cloudpickle 1.5.0, dill 0.3.2 or 0.3.1.1:
```python
import dill
import cloudpickle
class Foo:
def bar(self, param: int):
hello = "Hello"
def baz() -> None:
print(hello, param)
cloudpickle.loads(cloudpickle.dumps(baz))()
if __name__ == '__main__':
Foo().bar(param=2)
```
This fails with `ValueError: Cell is empty`.
Without the `dill` import, or with the dill import after the cloudpickle import, and it's all fine.
If the inner function is just
```python
def baz() -> None:
print("Hello world")
```
then it's also fine.
The problem seems to be if the inner function captures anything in its closure.
This was fine with cloudpickle 1.3.0
Should I bring this up with dill?
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.