GRAYBYTE WORDPRESS FILE MANAGER5602

Server IP : 198.54.121.189 / Your IP : 216.73.216.112
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /opt/cloudlinux/venv/lib/python3.11/site-packages/dill/tests/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/cloudlinux/venv/lib/python3.11/site-packages/dill/tests//test_nested.py
#!/usr/bin/env python
#
# Author: Mike McKerns (mmckerns @caltech and @uqfoundation)
# Copyright (c) 2008-2016 California Institute of Technology.
# Copyright (c) 2016-2023 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()

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
May 15 2025 08:30:33
root / root
0755
__pycache__
--
May 15 2025 08:30:33
root / root
0755
__init__.py
0.489 KB
April 17 2025 13:10:59
root / root
0644
__main__.py
0.878 KB
April 17 2025 13:10:59
root / root
0644
test_abc.py
3.748 KB
April 17 2025 13:10:59
root / root
0644
test_check.py
1.363 KB
April 17 2025 13:10:59
root / root
0644
test_classdef.py
6.992 KB
April 17 2025 13:10:59
root / root
0644
test_dataclasses.py
0.869 KB
April 17 2025 13:10:59
root / root
0644
test_detect.py
3.987 KB
April 17 2025 13:10:59
root / root
0644
test_dictviews.py
1.306 KB
April 17 2025 13:10:59
root / root
0644
test_diff.py
2.604 KB
April 17 2025 13:10:59
root / root
0644
test_extendpickle.py
1.284 KB
April 17 2025 13:10:59
root / root
0644
test_fglobals.py
1.637 KB
April 17 2025 13:10:59
root / root
0644
test_file.py
13.26 KB
April 17 2025 13:10:59
root / root
0644
test_functions.py
4.167 KB
April 17 2025 13:10:59
root / root
0644
test_functors.py
0.908 KB
April 17 2025 13:10:59
root / root
0644
test_logger.py
2.329 KB
April 17 2025 13:10:59
root / root
0644
test_mixins.py
3.913 KB
April 17 2025 13:10:59
root / root
0644
test_module.py
1.897 KB
April 17 2025 13:10:59
root / root
0644
test_moduledict.py
1.154 KB
April 17 2025 13:10:59
root / root
0644
test_nested.py
3.072 KB
April 17 2025 13:10:59
root / root
0644
test_objects.py
1.791 KB
April 17 2025 13:10:59
root / root
0644
test_properties.py
1.314 KB
April 17 2025 13:10:59
root / root
0644
test_pycapsule.py
1.384 KB
April 17 2025 13:10:59
root / root
0644
test_recursive.py
4.084 KB
April 17 2025 13:10:59
root / root
0644
test_registered.py
1.536 KB
April 17 2025 13:10:59
root / root
0644
test_restricted.py
0.765 KB
April 17 2025 13:10:59
root / root
0644
test_selected.py
3.143 KB
April 17 2025 13:10:59
root / root
0644
test_session.py
9.923 KB
April 17 2025 13:10:59
root / root
0644
test_source.py
5.895 KB
April 17 2025 13:10:59
root / root
0644
test_temp.py
2.558 KB
April 17 2025 13:10:59
root / root
0644
test_weakref.py
1.564 KB
April 17 2025 13:10:59
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF