
    OJniD	                        d dl Zd dlmZ d dlmZ d dlmZ d dl	m
Z d dlmZ d Zd	dZd Zd Zd Zd Zg Z eej,                   ej.                                 eej0                   ej2                                 eej4                   ej6                                 eej8                   ej:                                 eej<                   ej>                                 eej@                   ejB                                 eejD                   ejF                                 eejH                   ejJ                                y)
    N)OrderedDictc                 2    t         j                  | |f       y)zRegister a JavaScript runtime.N)	_runtimesappend)nameruntimes     A/home/uftp/myenv/lib/python3.12/site-packages/execjs/_runtimes.pyregisterr
   
   s    dG_%    c                 H    | t               xs
 t               S t        |       S )z`
    Return a appropriate JavaScript runtime.
    If name is specified, return the runtime.
    )get_from_environment_find_available_runtime_find_runtime_by_namer   s    r	   getr      s&    
 |#%B)@)BB &&r   c                       t        t              S )z9return a dictionary of all supported JavaScript runtimes.)r   r    r   r	   runtimesr      s    y!!r   c                      t         j                  j                  dd      } | sy	 t        |       S # t        j
                  $ r Y yw xY w)z
        Return the JavaScript runtime that is specified in EXECJS_RUNTIME environment variable.
        If EXECJS_RUNTIME environment variable is empty or invalid, return None.
    EXECJS_RUNTIME N)osenvironr   r   
exceptionsRuntimeUnavailableErrorr   s    r	   r   r      sG    
 ::>>*B/D$T**-- s   
0 AAc                  p    t         D ]  \  } }|j                         s|c S  t        j                  d      )Nz/Could not find an available JavaScript runtime.)r   is_availabler   r   )_r   s     r	   r   r   -   s:     
7!N 
,
,-^
__r   c                 0   t         D ](  \  }}|j                         | j                         k(  s( n& t        j                  dj	                  |             |j                         s/t        j                  dj	                  |j                              |S )Nz{name} runtime is not definedr   z.{name} runtime is not available on this system)r   lowerr   r   formatr   r   )r   runtime_namer   s      r	   r   r   4   s    !* dg4::</d 001P1W1W]a1W1bcc!00<CCCVX 	XNr   )N)&os.pathr   collectionsr   execjs.runtime_namesruntime_namesexecjs._external_runtime_external_runtimeexternal_runtimeexecjs._pyv8runtime_pyv8runtimepyv8runtimeexecjs._exceptions_exceptionsr   r
   r   r   r   r   r   r   PyV8PyV8RuntimeNodenodeJavaScriptCorejscSpiderMonkeyspidermonkeyJScriptjscript	PhantomJS	phantomjsSlimerJSslimerjsNashornnashornr   r   r	   <module>r?      s$    # , 3 ) '&
'"
`
 	 		'>{'>'>'@ A 		'<'7'<'<'> ? 	%	%';'7';';'= > 	#	#'D'7'D'D'F G 		'?'7'?'?'A B 	 	 'A'7'A'A'C D 		'@'7'@'@'B C 		'?'7'?'?'A Br   