#!/usr/bin/env python # # Author: Mike McKerns (mmckerns @caltech and @uqfoundation) # Copyright (c) 2021-2023 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 dill.settings['recurse'] = True def get_fun_with_strftime(): def fun_with_strftime(): import datetime return datetime.datetime.strptime("04-01-1943", "%d-%m-%Y").strftime( "%Y-%m-%d %H:%M:%S" ) return fun_with_strftime def get_fun_with_strftime2(): import datetime return datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') def test_doc_dill_issue_219(): back_fn = dill.loads(dill.dumps(get_fun_with_strftime())) assert back_fn() == "1943-01-04 00:00:00" dupl = dill.loads(dill.dumps(get_fun_with_strftime2)) assert dupl() == get_fun_with_strftime2() def get_fun_with_internal_import(): def fun_with_import(): import re return re.compile("$") return fun_with_import def test_method_with_internal_import_should_work(): import re back_fn = dill.loads(dill.dumps(get_fun_with_internal_import())) import inspect if hasattr(inspect, 'getclosurevars'): vars = inspect.getclosurevars(back_fn) assert vars.globals == {} assert vars.nonlocals == {} assert back_fn() == re.compile("$") assert "__builtins__" in back_fn.__globals__ if __name__ == "__main__": import sys if (sys.version_info[:3] != (3,10,0) or sys.version_info[3] != 'alpha'): test_doc_dill_issue_219() test_method_with_internal_import_should_work()
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
__init__.py | File | 501 B | 0644 |
|
__main__.py | File | 899 B | 0644 |
|
test_abc.py | File | 3.75 KB | 0644 |
|
test_check.py | File | 1.36 KB | 0644 |
|
test_classdef.py | File | 6.99 KB | 0644 |
|
test_dataclasses.py | File | 890 B | 0644 |
|
test_detect.py | File | 3.99 KB | 0644 |
|
test_dictviews.py | File | 1.31 KB | 0644 |
|
test_diff.py | File | 2.6 KB | 0644 |
|
test_extendpickle.py | File | 1.28 KB | 0644 |
|
test_fglobals.py | File | 1.64 KB | 0644 |
|
test_file.py | File | 13.26 KB | 0644 |
|
test_functions.py | File | 4.17 KB | 0644 |
|
test_functors.py | File | 930 B | 0644 |
|
test_logger.py | File | 2.33 KB | 0644 |
|
test_mixins.py | File | 3.91 KB | 0644 |
|
test_module.py | File | 1.9 KB | 0644 |
|
test_moduledict.py | File | 1.15 KB | 0644 |
|
test_nested.py | File | 3.07 KB | 0644 |
|
test_objects.py | File | 1.79 KB | 0644 |
|
test_properties.py | File | 1.31 KB | 0644 |
|
test_pycapsule.py | File | 1.38 KB | 0644 |
|
test_recursive.py | File | 4.08 KB | 0644 |
|
test_registered.py | File | 1.54 KB | 0644 |
|
test_restricted.py | File | 783 B | 0644 |
|
test_selected.py | File | 3.14 KB | 0644 |
|
test_session.py | File | 9.92 KB | 0644 |
|
test_source.py | File | 5.89 KB | 0644 |
|
test_temp.py | File | 2.56 KB | 0644 |
|
test_weakref.py | File | 1.56 KB | 0644 |
|