
    &iz                     x    d dl Z d dlZd dlZd dlmZ d dlmZ defdZdefdZ	dedefdZ
d	edefd
ZdefdZy)    N)
BackendAPI)SUPPORTED_BACKENDSreturnc                  D    t               } | rt        |       S t               S )N)get_backend_in_environmentload_environment_backendchoose_available_backend)env_backends    ?/var/www/br/venv/lib/python3.12/site-packages/eth_hash/utils.pyauto_choose_backendr      s!    ,.K'44'))    c                  B    t         j                  j                  dd      S )NETH_HASH_BACKEND )osenvironget r   r   r   r      s    ::>>,b11r   backend_namec                     d|  }t        j                  |      }	 |j                  }t        |t              r|S t	        d| d| d      # t        $ r}t	        d| d| d      |d }~ww xY w)Nzeth_hash.backends.z
Import of z failed, because z" does not have 'backend' attributez is an invalid back end)	importlibimport_modulebackendAttributeError
ValueError
isinstancer   )r   import_pathmoduler   es        r   load_backendr       s    &|n5K$$[1F.. ':&%6wi?VW
 	
  %6vh ?" "
 	s   A 	A-A((A-r
   c                     | t         v r	 t        |       S t        d|  dt                # t        $ r}t        d|  d|  d      |d }~ww xY w)Nz,The backend specified in ETH_HASH_BACKEND, 'zC', is not installed. Install with `python -m pip install "eth-hash[]"`.z$', is not supported. Choose one of: )r   r    ImportErrorr   )r
   r   s     r   r   r   .   s    ((	,, :;- H));(<>
 	
  	>{m L(M/ 		s   
* 	AAAc                      t         D ]  } 	 t        |       c S  t        dt          dt         d    d      # t        $ r, t        j                  d      j                  d|  d       Y cw xY w)	Neth_hashzFailed to import T)exc_infoz.None of these hashing backends are installed: z0.
Install with `python -m pip install "eth-hash[r   r"   )r   r    r#   logging	getLoggerdebug)r   s    r   r	   r	   ?   s    % 	(( 
89K8L M99KA9N8Ot	U 	  	j)//#G9- 0 	s   
62A+*A+)r   r'   r   eth_hash.abcr   eth_hash.backendsr   r   strr   r    r   r	   r   r   r   <module>r-      sb      	
*Z *2C 2
s 
z 
(
# 
* 
"* r   