L imZdZddlmZmZddlmZdadZGddeZGdd eZ y) zUtility function to construct a loky.ReusableExecutor with custom pickler. This module provides efficient ways of working with data stored in shared memory with numpy.memmap arrays without inducing any memory copy between the parent and child processes. )TemporaryResourcesManagerget_memmapping_reducers)_ReusablePoolExecutorNc .tj|fi|SN)MemmappingExecutorget_memmapping_executor)n_jobskwargss U/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/joblib/executor.pyr r s  5 5f G GGcNeZdZe dfd ZddZedZxZS)rc |j} | j|r|ni| jt|||tduxs t| k(} | at |} t dd| j d|\} } t|!|| | | ||||\}}|s| |_ ||jj||S)z_Factory for ReusableExecutor with automatic memmapping for large numpy arrays. )timeout initializerinitargsNT)unlink_on_gc_collecttemp_folder_resolver) job_reducersresult_reducersreuserrrenv) copyupdatedict_executor_argsrrresolve_temp_folder_namesuperget_reusable_executor_temp_folder_managerregister_new_context)clsr rrrr temp_folder context_id backend_args executor_argsrmanagerrr _executorexecutor_is_reused __class__s r r z*MemmappingExecutor.get_memmapping_executors$%))+ CSR0 kH M $&I.M*I&+K8 )@) !%!(!A!A) ) % o ).(E %+#)F ) % %" .5I *  !  * * ? ? Kr c|j||j5|jj|ddddy#1swYyxYw)N) kill_workersT)forceallow_non_empty)shutdown_submit_resize_lockr!_clean_temporary_resources)selfr-s r terminatezMemmappingExecutor.terminateUsO < 0 % %   % % @ @"D A    s AAct|dd |jS|jj|_|jS)N_cached_temp_folder)getattrr6r!r)r3s r _temp_folderzMemmappingExecutor._temp_folderfsJ 4. 5 A++ +))BBD  $++ +r )i,NrNNN)F) __name__ __module__ __qualname__ classmethodr r4propertyr8 __classcell__r+s@r rrsC <<|" , ,r rc(eZdZdZdZfdZxZS)_TestingMemmappingExecutorzWrapper around ReusableExecutor to ease memmapping testing with Pool and Executor. This is only for testing purposes. cN|j|g|}|j|_|S)zSchedule a func to be run)submitresultget)r3funcargsfutures r apply_asyncz&_TestingMemmappingExecutor.apply_async|s'T)D)]]  r c6tt||g|Sr)listrmap)r3frGr+s r rLz_TestingMemmappingExecutor.mapsEGK)D)**r )r9r:r;__doc__rIrLr>r?s@r rArAvs  ++r rA) rN_memmapping_reducerrr externals.loky.reusable_executorrrr rrArr r rQs;TCH^,.^,B +!3 +r