/opt/imh-python/lib/python3.9/site-packages/dill/tests
NameSizeModeActions
__pycache__/-0755rm
test_abc.py42270644editdlrm
test_check.py13960644editdlrm
test_classdef.py86000644editdlrm
test_dataclasses.py8900644editdlrm
test_detect.py41440644editdlrm
test_dictviews.py13370644editdlrm
test_diff.py26670644editdlrm
test_extendpickle.py13150644editdlrm
test_fglobals.py16760644editdlrm
test_file.py135780644editdlrm
test_functions.py42670644editdlrm
test_functors.py9300644editdlrm
test_logger.py23850644editdlrm
test_mixins.py40070644editdlrm
test_module.py19430644editdlrm
test_moduledict.py11820644editdlrm
test_nested.py31460644editdlrm
test_objects.py19310644editdlrm
test_properties.py13460644editdlrm
test_pycapsule.py14170644editdlrm
test_recursive.py41820644editdlrm
test_registered.py15730644editdlrm
test_restricted.py7830644editdlrm
test_selected.py32580644editdlrm
test_session.py101610644editdlrm
test_source.py70590644editdlrm
test_sources.py86720644editdlrm
test_temp.py26190644editdlrm
test_threads.py12570644editdlrm
test_weakref.py16020644editdlrm
__init__.py4790644editdlrm
__main__.py8990644editdlrm
Edit: /opt/imh-python/lib/python3.9/site-packages/dill/tests/test_nested.py (3146B)
#!/usr/bin/env python # # Author: Mike McKerns (mmckerns @caltech and @uqfoundation) # Copyright (c) 2008-2016 California Institute of Technology. # Copyright (c) 2016-2025 The Uncertainty Quantification Foundation. # License: 3-clause BSD. The full license text is available at: # - https://github.com/uqfoundation/dill/blob/master/LICENSE """ test dill's ability to handle nested functions """ import os import math import dill as pickle pickle.settings['recurse'] = True # the nested function: pickle should fail here, but dill is ok. def adder(augend): zero = [0] def inner(addend): return addend + augend + zero[0] return inner # rewrite the nested function using a class: standard pickle should work here. class cadder(object): def __init__(self, augend): self.augend = augend self.zero = [0] def __call__(self, addend): return addend + self.augend + self.zero[0] # rewrite again, but as an old-style class class c2adder: def __init__(self, augend): self.augend = augend self.zero = [0] def __call__(self, addend): return addend + self.augend + self.zero[0] # some basic class stuff class basic(object): pass class basic2: pass x = 5 y = 1 def test_basic(): a = [0, 1, 2] pa = pickle.dumps(a) pmath = pickle.dumps(math) #XXX: FAILS in pickle pmap = pickle.dumps(map) # ... la = pickle.loads(pa) lmath = pickle.loads(pmath) lmap = pickle.loads(pmap) assert list(map(math.sin, a)) == list(lmap(lmath.sin, la)) def test_basic_class(): pbasic2 = pickle.dumps(basic2) _pbasic2 = pickle.loads(pbasic2)() pbasic = pickle.dumps(basic) _pbasic = pickle.loads(pbasic)() def test_c2adder(): pc2adder = pickle.dumps(c2adder) pc2add5 = pickle.loads(pc2adder)(x) assert pc2add5(y) == x+y def test_pickled_cadder(): pcadder = pickle.dumps(cadder) pcadd5 = pickle.loads(pcadder)(x) assert pcadd5(y) == x+y def test_raw_adder_and_inner(): add5 = adder(x) assert add5(y) == x+y def test_pickled_adder(): padder = pickle.dumps(adder) padd5 = pickle.loads(padder)(x) assert padd5(y) == x+y def test_pickled_inner(): add5 = adder(x) pinner = pickle.dumps(add5) #XXX: FAILS in pickle p5add = pickle.loads(pinner) assert p5add(y) == x+y def test_moduledict_where_not_main(): try: from . import test_moduledict except ImportError: import test_moduledict name = 'test_moduledict.py' if os.path.exists(name) and os.path.exists(name+'c'): os.remove(name+'c') if os.path.exists(name) and hasattr(test_moduledict, "__cached__") \ and os.path.exists(test_moduledict.__cached__): os.remove(getattr(test_moduledict, "__cached__")) if os.path.exists("__pycache__") and not os.listdir("__pycache__"): os.removedirs("__pycache__") if __name__ == '__main__': test_basic() test_basic_class() test_c2adder() test_pickled_cadder() test_raw_adder_and_inner() test_pickled_adder() test_pickled_inner() test_moduledict_where_not_main()