I understand that yes, pickle.loads() imports any necessary module but
only if they can be find in sys.path (like in any "import" statement).
Dynamic code loaded from a plugin (which we presume it is *not* in
sys.path) will not be loaded.
Quick check. Run in one console the following:
import multiprocessing
import multiprocessing.reduction
import pickle
pickle.dumps(multiprocessing.reduction.ForkingPickler)
<copy the output>
In a separated Python console run the following:
import pickle
import sys
'multiprocessing' in sys.modules
False
pickle.loads(<paste the dump here>)
'multiprocessing' in sys.modules
True
So the last check proves that pickle.loads imports any necessary module.
Martin.
On Mon, Mar 07, 2022 at 08:28:15AM +0000, Barry wrote:
On 7 Mar 2022, at 02:33, Martin Di Paola <martinp.dipa...@gmail.com> wrote:
Yes but I think that unpickle (pickle.loads()) does that plus
importing any module needed
Are you sure that unpickle will import code? I thought it did not do that.
Barry
--
https://mail.python.org/mailman/listinfo/python-list