o
    ¢ØÆhz  ã                   @   s‚   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d„Zdefdd„Z	d	edefd
d„Z
dedefdd„Zdefdd„ZdS )é    N)Ú
BackendAPI)ÚSUPPORTED_BACKENDSÚreturnc                  C   s   t ƒ } | r	t| ƒS tƒ S )N)Úget_backend_in_environmentÚload_environment_backendÚchoose_available_backend)Úenv_backend© r	   ú[/var/www/html/HyperOracle/crypto_trader/venv/lib/python3.10/site-packages/eth_hash/utils.pyÚauto_choose_backend   s   r   c                   C   s   t j dd¡S )NÚETH_HASH_BACKENDÚ )ÚosÚenvironÚgetr	   r	   r	   r
   r      s   r   Úbackend_namec              
   C   st   d| › �}t  |¡}z|j}W n ty' } ztd|› d|› d�ƒ|‚d }~ww t|tƒr/|S td|› d|› d�ƒ‚)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   Úer	   r	   r
   Úload_backend   s"   


ÿý€ÿ
ÿr   r   c              
   C   sX   | t v r"zt| ƒW S  ty! } ztd| › d| › d�ƒ|‚d }~ww td| › dt › �ƒ‚)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   r	   r	   r
   r   .   s$   
þÿü€ÿÿÿr   c               	   C   s^   t D ]} zt| ƒW   S  ty!   t d¡jd| › �dd� Y qw tdt › dt d › d�ƒ‚)	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   r	   r	   r
   r   ?   s   


ÿÿÿÿr   )r   r    r   Úeth_hash.abcr   Úeth_hash.backendsr   r   Ústrr   r   r   r   r	   r	   r	   r
   Ú<module>   s    	