L ipddlZddlmZddlmZmZiZGddZGddeZdZ d Z d Z d d Z y) N)partial)dumpsloadsc eZdZddZdZdZy)CloudpickledObjectWrapperc ||_||_yN_obj _keep_wrapper)selfobj keep_wrappers o/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/joblib/externals/loky/cloudpickle_wrapper.py__init__z"CloudpickledObjectWrapper.__init__ s )c~t|j}|js t|ffSt||jffSr )rr r r_reconstruct_wrapper)r _pickled_objects r __reduce__z$CloudpickledObjectWrapper.__reduce__s= *!!?,, ,#ot7I7I%JJJrcN|dvrt|j|St||S)Nr )getattrr )r attrs r __getattr__z%CloudpickledObjectWrapper.__getattr__s+ 0 0499d+ +tT""rN)F)__name__ __module__ __qualname__rrrrrrr s*K#rrceZdZdZy)CallableObjectWrapperc&|j|i|Sr )r )r argskwargss r__call__zCallableObjectWrapper.__call__styy$)&))rN)rrrr$rrrr r s*rr cLt|r t||St||S)Nr)callabler r)rrs r_wrap_non_picklable_objectsr(#s#}$S|DD $S| DDrc0t|}t||Sr )rr()rrrs rrr)s  C &sL 99rc Fdt|ddv}t|trxtt|jg|j Dcgc] }t|c}i|j jDcic]\}}|t|c}}St|rBt|dd}|t|ddtjzz}t|dd}|d|vz}|s|Stj|}|t|d }|t|<|Scc}wcc}}w) N__main__r__code__co_flagsrrzFr&)r isinstancer_wrap_objects_when_neededfuncr"keywordsitemsr'inspect CO_NESTED WRAP_CACHEgetr()r need_wrapakv func_code func_name wrapped_objs rr0r0.s'gc<<s D <Dctjr%Gfddt}j|_|St S)aWrapper for non-picklable object to use cloudpickle to serialize them. Note that this wrapper tends to slow down the serialization process as it is done with cloudpickle which is typically slower compared to pickle. The proper way to solve serialization issues is to avoid defining functions and objects in the main scripts and to implement __reduce__ functions for complex classes. ceZdZfdZy).CloudpickledClassWrapperc.|i||_|_yr r )r r"r#rrs rrzEwrap_non_picklable_objects..CloudpickledClassWrapper.__init__]s00 %1"rN)rrrr)rrsrCloudpickledClassWrapperrA\s 2rrCr&)r4isclassrrr()rrrCs`` rwrap_non_picklable_objectsrEOsBs 2'@ 2 -0LL )'' 's FFr)T) r4 functoolsrjoblib.externals.cloudpicklerrr6rr r(rr0rErrrrHsC5 ##**5* E : BGr