o
    ^Zh
                     @   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   Zregister_exitstart)init_kwargsr   tracerr   r   Q/var/www/auris/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   Z
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)selfZinitializersr   r   r   __init__'   s   
z_ChainedInitializer.__init__c                 G   s"   t | j|D ]\}}||  qd S r   )zipr   )r   Z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   )Zinitializer_and_argsZfiltered_initializersZ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    	