-
Notifications
You must be signed in to change notification settings - Fork 184
Closed
Description
Hi all,
While introspecting test_dynamic_module for #192, I wrote a script that
- dumps a dynamic module,
- changes a global variable inside
- finally re-load the dumped module.
import imp
import cloudpickle
import textwrap
import sys
import pickle
mod = imp.new_module('mod')
code = '''
x = 1
'''
exec(textwrap.dedent(code), mod.__dict__)
# first, dump the module
fileobj = cloudpickle.dumps(mod)
# change the mod's global variable x
mod.x = 2
# create child-process-like process environnement where
# mod is already loaded with the modified variable x
sys.modules['mod'] = mod
# finally, re-load the dynamic module
mod2 = pickle.loads(fileobj)
# this fails for now
assert mod2.x == mod.xThe modified global variable gets overriden. I wonder if this is global behavior, or it needs to be changed.
Using Python 3.7.0, cloudpickle==0.5.5
Metadata
Metadata
Assignees
Labels
No labels