o
    0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   X/var/www/vscode/kcb/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   build_directory	with_cuda	with_syclis_python_module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   