o
    wZŽhC  ã                   @   s>   d dl Z e  dd¡Zdd„ Zdd„ Zdd	„ ZG d
d„ dƒZdS )é    NÚEntryzversion, hashc                 C   s    | t |ƒd | d>  | d?  A S )Nl   ¹yn< é   é   )Úhash)ÚseedÚvalue© r   úS/var/www/auris/lib/python3.10/site-packages/torch/utils/_cpp_extension_versioner.pyÚupdate_hash   s    r
   c              	   C   sF   |D ]}t |dƒ}t| | ¡ ƒ} W d   ƒ n1 sw   Y  q| S )NÚrb)Úopenr
   Úread)Ú
hash_valueÚsource_filesÚfilenameÚfiler   r   r	   Úhash_source_files   s   ÿ€r   c                 C   s&   |D ]}|r|D ]}t | |ƒ} qq| S ©N)r
   )r   Úbuild_argumentsÚgroupÚargumentr   r   r	   Úhash_build_arguments   s   €r   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚExtensionVersionerc                 C   s
   i | _ d S r   )Úentries)Úselfr   r   r	   Ú__init__   s   
zExtensionVersioner.__init__c                 C   s   | j  |¡}|d u rd S |jS r   )r   ÚgetÚversion)r   ÚnameÚentryr   r   r	   Úget_version!   s   zExtensionVersioner.get_versionc	                 C   s¢   d}	t |	|ƒ}	t|	|ƒ}	t|	|ƒ}	t|	|ƒ}	t|	|ƒ}	t|	|ƒ}	t|	|ƒ}	| j |¡}
|
d u r<td|	ƒ | j|< }
|
jS |	|
jkrNt|
jd |	ƒ | j|< }
|
jS )Nr   é   )r   r   r
   r   r   r   r   r   )r   r   r   r   Zbuild_directoryZ	with_cudaZ	with_syclZis_python_moduleZis_standaloner   r   r   r   r	   Úbump_version_if_changed%   s   	







ýz*ExtensionVersioner.bump_version_if_changedN)Ú__name__Ú
__module__Ú__qualname__r   r    r"   r   r   r   r	   r      s    r   )ÚcollectionsÚ
namedtupler   r
   r   r   r   r   r   r   r	   Ú<module>   s   