| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | import sys |
| | import dill |
| | import test_mixins as module |
| | from importlib import reload |
| | dill.settings['recurse'] = True |
| |
|
| | cached = (module.__cached__ if hasattr(module, "__cached__") |
| | else module.__file__.split(".", 1)[0] + ".pyc") |
| |
|
| | module.a = 1234 |
| |
|
| | pik_mod = dill.dumps(module) |
| |
|
| | module.a = 0 |
| |
|
| | |
| | del sys.modules[module.__name__] |
| | del module |
| |
|
| | module = dill.loads(pik_mod) |
| | def test_attributes(): |
| | |
| | assert module.double_add(1, 2, 3) == 2 * module.fx |
| |
|
| | |
| |
|
| | reload(module) |
| |
|
| | try: |
| | dill.use_diff() |
| |
|
| | module.a = 1234 |
| |
|
| | pik_mod = dill.dumps(module) |
| |
|
| | module.a = 0 |
| |
|
| | |
| | del sys.modules[module.__name__] |
| | del module |
| |
|
| | module = dill.loads(pik_mod) |
| | def test_diff_attributes(): |
| | assert hasattr(module, "a") and module.a == 1234 |
| | assert module.double_add(1, 2, 3) == 2 * module.fx |
| |
|
| | except AttributeError: |
| | def test_diff_attributes(): |
| | pass |
| |
|
| | |
| | import os |
| | if os.path.exists(cached): |
| | os.remove(cached) |
| | pycache = os.path.join(os.path.dirname(module.__file__), "__pycache__") |
| | if os.path.exists(pycache) and not os.listdir(pycache): |
| | os.removedirs(pycache) |
| |
|
| |
|
| | |
| | import math |
| |
|
| | def get_lambda(str, **kwarg): |
| | return eval(str, kwarg, None) |
| |
|
| | obj = get_lambda('lambda x: math.exp(x)', math=math) |
| |
|
| | def test_module_is_none(): |
| | assert obj.__module__ is None |
| | assert dill.copy(obj)(3) == obj(3) |
| |
|
| |
|
| | if __name__ == '__main__': |
| | test_attributes() |
| | test_diff_attributes() |
| | test_module_is_none() |
| |
|