
    $g8                     6    d dl mZ d dlZd dlZ G d de      Zy)    )ABCNc                       e Zd Z e       Zg Zg Zd Zd Zd Z	d Z
ddZd Zd Zd	 Zd
 Zd Zd Zd Zed        Zed        Zed        Zedd       Zy)BaseLongCallbackManagerc                     |t        |t              s|g}|| _        t        j                  j                  |        i | _        | j                  D ]  } | j                  |   y N)	
isinstancelistcache_byr   managersappendfunc_registry	functionsregister)selfr
   fdetailss      a/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/dash/long_callback/managers/__init__.py__init__z BaseLongCallbackManager.__init__   s^    
8T(B zH ((//5  	%HDMM8$	%    c                     t         r   NotImplementedErrorr   jobs     r   terminate_jobz%BaseLongCallbackManager.terminate_job       !!r   c                     t         r   r   r   s     r   terminate_unhealthy_jobz/BaseLongCallbackManager.terminate_unhealthy_job!   r   r   c                     t         r   r   r   s     r   job_runningz#BaseLongCallbackManager.job_running$   r   r   Nc                     t         r   r   )r   fnprogresskeys       r   make_job_fnz#BaseLongCallbackManager.make_job_fn'   r   r   c                     t         r   r   )r   r#   job_fnargscontexts        r   call_job_fnz#BaseLongCallbackManager.call_job_fn*   r   r   c                     t         r   r   r   r#   s     r   get_progressz$BaseLongCallbackManager.get_progress-   r   r   c                     t         r   r   r+   s     r   result_readyz$BaseLongCallbackManager.result_ready0   r   r   c                     t         r   r   )r   r#   r   s      r   
get_resultz"BaseLongCallbackManager.get_result3   r   r   c                     t         r   r   r+   s     r   get_updated_propsz)BaseLongCallbackManager.get_updated_props6   r   r   c                 ,   t        j                  |      }t        |t        t        f      s|g}|r[t        |t
              r)|j                         D ci c]  \  }}||vs|| }}}n"t        |      D cg c]  \  }}||vs| }}}t        ||      }	| j                  *t        | j                        D ]  \  }}
 |
       |	d| <    t        j                  t        |	      j                  d            j                         S c c}}w c c}}w )N)r'   	fn_source
cache_key_utf-8)inspect	getsourcer   r	   tupledictitems	enumerater
   hashlibsha256strencode	hexdigest)r   r!   r'   cache_args_to_ignorer4   kviarg	hash_dict
cache_items              r   build_cache_keyz'BaseLongCallbackManager.build_cache_key9   s   %%b)	.u>$8#9 $%)-WABV9V1WW '0o"AsBV9VC  di8	==$!*4==!9 ;:.8l	Jqc*+; ~~c)n33G<=GGII Xs   D
!D
8DDc                 D    | j                  |||      | j                  |<   y r   )r$   r   )r   r#   r!   r"   s       r   r   z BaseLongCallbackManager.registerQ   s!    "&"2"22x"E3r   c                     t         j                  | |      }t         j                  j                  || |f       t         j                  D ]  }|j                  || |        |S r   )r   hash_functionr   r   r   r   )r!   r"   callback_idr#   managers        r   register_funcz%BaseLongCallbackManager.register_funcT   sf    %33BD))00	
 /77 	0GS"h/	0 
r   c                     | dz   S )Nz	-progress r#   s    r   _make_progress_keyz*BaseLongCallbackManager._make_progress_keyd   s    [  r   c                     |  dS )Nz
-set_propsrQ   rR   s    r   _make_set_props_keyz+BaseLongCallbackManager._make_set_props_keyh   s    j!!r   c                     	 t        j                  |       }|}t	        j
                  |j                  d      |j                  d      z         j                         S # t        $ r t        | dd      }Y \w xY w)N__name__ r6   )r7   r8   OSErrorgetattrr=   r>   r@   rA   )r!   rM   r4   fn_strs       r   rL   z%BaseLongCallbackManager.hash_functionl   sq    	1))"-IF ~~w'&--*@@

)+	  	1RR0F	1s   A A65A6r   )rX   )rW   
__module____qualname__object	UNDEFINEDr   r   r   r   r   r   r$   r)   r,   r.   r0   r2   rI   r   staticmethodrO   rS   rU   rL   rQ   r   r   r   r      s    I H I%"""""""""J0F   ! ! " "  r   r   )abcr   r7   r=   r   rQ   r   r   <module>rb      s      oc or   