o
    XRh
                     @   s:   d dl Z dd Zdd ZG dd dZdd	 Zd
d ZdS )    Nc                 C   s.   ddl m} |di | }|  |  dS )z3Initialize viztracer's profiler in worker processesr   )	VizTracerN )	viztracerr   register_exitstart)init_kwargsr   tracerr   r   d/home/air/sanwanet/backup_V2/venv/lib/python3.10/site-packages/joblib/externals/loky/initializers.py_viztracer_init   s   r
   c               
   C   s   zdd l } |  }|d urt|ddrt|jffW S W dS W dS  ty)   Y dS  tyC } ztd|  W Y d }~dS d }~ww )Nr   enableFz&Unable to introspect viztracer state: Nr   )	r   
get_tracergetattrr
   r   ImportError	Exceptionwarningswarn)r   r   er   r   r	   (_make_viztracer_initializer_and_initargs   s"   r   c                   @   s    e Zd ZdZdd Zdd ZdS )_ChainedInitializerzCompound worker initializer

    This is meant to be used in conjunction with _chain_initializers to
    produce  the necessary chained_args list to be passed to __call__.
    c                 C   s
   || _ d S N)_initializers)selfinitializersr   r   r	   __init__'   s   
z_ChainedInitializer.__init__c                 G   s"   t | j|D ]\}}||  qd S r   )zipr   )r   chained_argsinitializerargsr   r   r	   __call__*   s   
z_ChainedInitializer.__call__N)__name__
__module____qualname____doc__r   r   r   r   r   r	   r       s    r   c                 C   sb   g }g }| D ]\}}|dur| | | | q|sdS t|dkr+|d |d fS t||fS )zyConvenience helper to combine a sequence of initializers.

    If some initializers are None, they are filtered out.
    Nr      r   )appendlenr   )initializer_and_argsfiltered_initializersfiltered_initargsr   initargsr   r   r	   _chain_initializers/   s   

r+   c                 C   s0   | d urt | std| t| |ft gS )Nz%initializer must be a callable, got: )callable	TypeErrorr+   r   )r   r*   r   r   r	   _prepare_initializerC   s   r.   )r   r
   r   r   r+   r.   r   r   r   r	   <module>   s    	