o
    ÐtBh'
  ã                   @   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   úy/var/www/html/riverr-enterprise-integrations-main/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Úformat)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 )Ú_ChainedInitializerz°Compound 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   sj   g }g }| D ]\}}|dur|  |¡ |  |¡ qt|ƒdkr!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: {!r})ÚcallableÚ	TypeErrorr   r,   r   )r   r+   r   r   r	   Ú_prepare_initializerB   s   þþr/   )r   r
   r   r   r,   r/   r   r   r   r	   Ú<module>   s    