
    Vh              	       `   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Zdee
   d	ee   d
ee
   de
fdZ	 dde
d	ee	ee
   ee   e
f      de
fdZedk(  rOd dlZ eej&                        dk  r ed        ej*                  d        e eej&                  d                yy)    )Sequence)Path)match)OptionalUnionfnamereturnc                 h    t        | d      5 }|j                         cd d d        S # 1 sw Y   y xY w)Nzutf-8)encoding)open	readlines)r   fs     N/home/dcms/DCMS/lib/python3.12/site-packages/torch/utils/_cpp_embed_headers.py	read_filer      s,    	eg	& !{{}  s   (1contentinclude_dirsprocessed_filesc                 d   t        |       D ]  \  }}|j                  d      rd| |<   t        d|      }|,|D ]b  }||d   z  }|j                         st	        |      |v rd| |<   /|j                  t	        |             t        t        |      ||      | |<      dj                  |       S )Nz#pragma once z^\s*#include\s*[<"]([^>"]+)[>"]   )		enumerate
startswith_matchexistsstradd_embed_headersr   join)r   r   r   line_idxcur_lineminclude_dirpaths           r   r   r      s     (0 (~. "GH6A9' 	K1%D;;=4yO+$&!D	* .$!GH 	( 777    Nc                    |/t        t              j                  j                  j                  g}n5t        |t              rt        |      g}n|D cg c]  }t        |       }}t        t        |       || h      S c c}w N)r   __file__parent
isinstancer   r   r   )r   r   xs      r   embed_headersr+   &   sq     X--44;;<	L#	&\*+)56AQ66)E*L5'BB 7s   A>__main__   zUsage:
 {sys.argv[0]} filenamer   r&   )collections.abcr   pathlibr   rer   r   typingr   r   r   listr   setr   r+   __name__syslenargvprintexit r$   r   <module>r;      s    $   "U49% $s) 
#Y&*4jCFs86 UY
C
C&uXc]HTNC-O'PQ
C
C z
388}q/0	-
$% r$   