a
    !f
                     @   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} |f i | }|  |  dS )z3Initialize viztracer's profiler in worker processesr   )	VizTracerN)	viztracerr   Zregister_exitstart)init_kwargsr   tracer r   c/var/www/html/python-backend/venv/lib/python3.9/site-packages/joblib/externals/loky/initializers.py_viztracer_init   s    r	   c               
   C   s   z6dd l } |  }|d ur4t|ddr4t|jffW S W nD tyH   Y n4 tyz } ztd|  W Y d }~n
d }~0 0 dS )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   sf   g }g }| D ]$\}}|dur| | | | q|s:dS t|dkrV|d |d fS t||fS d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
   	