o
    wZh                  	   @   s   d dl mZ d dlmZ d dlmZ d dlmZm	Z	 de	ee
f dee
 fddZd	ee
 d
ee dee
 de
fddZ	dde
d
ee	ee
 ee e
f  de
fddZedkrwd dlZeejdk rled ed eeejd  dS dS )    )SequencePath)match)OptionalUnionfnamereturnc                 C   s8   t | dd}| W  d    S 1 sw   Y  d S )Nzutf-8)encoding)open	readlines)r   f r   M/var/www/auris/lib/python3.10/site-packages/torch/utils/_cpp_embed_headers.py	read_file   s   $r   contentinclude_dirsprocessed_filesc                 C   s   t | D ]D\}}|drd| |< qtd|}|d u rq|D ])}||d  }| s+qt||v r6d| |< q|t| tt|||| |<  qd| S )Nz#pragma once z^\s*#include\s*[<"]([^>"]+)[>"]   )		enumerate
startswith_matchexistsstradd_embed_headersr   join)r   r   r   Zline_idxcur_linemZinclude_dirpathr   r   r   r      s*   



r   Nc                 C   sP   |d u rt tjjjg}nt|trt |g}ndd |D }tt| || hS )Nc                 S   s   g | ]}t |qS r   r   ).0xr   r   r   
<listcomp>.   s    z!embed_headers.<locals>.<listcomp>)r   __file__parent
isinstancer   r   r   )r   r   r   r   r   embed_headers&   s   
r'   __main__   zUsage:
 {sys.argv[0]} filenamer   )N)collections.abcr   pathlibr   rer   r   typingr   r   r   listr   setr   r'   __name__syslenargvprintexitr   r   r   r   <module>   s:    


