1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #!/usr/bin/env python
- #
- # Author: Mike McKerns (mmckerns @caltech and @uqfoundation)
- # Copyright (c) 2008-2016 California Institute of Technology.
- # Copyright (c) 2016-2024 The Uncertainty Quantification Foundation.
- # License: 3-clause BSD. The full license text is available at:
- # - https://github.com/uqfoundation/dill/blob/master/LICENSE
- import dill as pickle
- from io import BytesIO as StringIO
- def my_fn(x):
- return x * 17
- def test_extend():
- obj = lambda : my_fn(34)
- assert obj() == 578
- obj_io = StringIO()
- pickler = pickle.Pickler(obj_io)
- pickler.dump(obj)
- obj_str = obj_io.getvalue()
- obj2_io = StringIO(obj_str)
- unpickler = pickle.Unpickler(obj2_io)
- obj2 = unpickler.load()
- assert obj2() == 578
- def test_isdill():
- obj_io = StringIO()
- pickler = pickle.Pickler(obj_io)
- assert pickle._dill.is_dill(pickler) is True
- pickler = pickle._dill.StockPickler(obj_io)
- assert pickle._dill.is_dill(pickler) is False
- try:
- import multiprocess as mp
- pickler = mp.reduction.ForkingPickler(obj_io)
- assert pickle._dill.is_dill(pickler, child=True) is True
- assert pickle._dill.is_dill(pickler, child=False) is False
- except Exception:
- pass
- if __name__ == '__main__':
- test_extend()
- test_isdill()
|