
    rh                        d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlmZ ddlmZ ddlmZ 	 	 	 	 ddZej&                  dd	       Zdd
Z	 	 d	 	 	 	 	 ddZy)    )annotationsN)
ModuleType   )get_cache_manager   )knobsc                   t         j                  j                  x}r || |||||      S t        j                  d      }t
        j                  j                  |dj                  | |            }t
        j                  j                  d      }	|	=t        j                  d      }
t        j                  d      }||n|
}	|	t        d      t        t        d      rt        j                         }nt        j                          }|d	k(  rd
}t        j"                  |      d   }t         j                  j$                  }|||g|z   }|	|ddddd|g}||D cg c]  }d| 	 c}z  }||D cg c]  }d| 	 c}z  }||D cg c]
  }|d|  c}z  }t'        j(                  |t&        j*                         |S c c}w c c}w c c}w )N
EXT_SUFFIXz{name}{suffix})namesuffixCCclanggcczeFailed to find C compiler. Please specify via CC environment variable or set triton.knobs.build.impl.get_default_schemeposix_localposix_prefix)schemeincludez-O3z-sharedz-fPICz
-Wno-psabiz-oz-lz-Lz-I)stdout)r   buildimpl	sysconfigget_config_varospathjoinformatenvirongetshutilwhichRuntimeErrorhasattrr   _get_default_scheme	get_pathsbackend_dirs
subprocess
check_callDEVNULL)r   srcsrcdirlibrary_dirsinclude_dirs	librariesr   r   soccr   r   r   py_include_dircustom_backend_dirscc_cmdlibdirs                     g/var/www/html/ai-insurance-compliance-backend/venv/lib/python3.12/site-packages/triton/runtime/build.py_buildr7      s   {{tD#v|\9MM%%l3F	f.5545O	PB		B	zW%ll5!OS:wy y y./--/..0 ((7	BN++226>"P<O"PPL#ui,bIF
Y/cC5z//F
\2cC5z22F
\EcS_C5zEEF&););<I	 02Es   G /GG
G
c                 ^    ddl m} m}m} dj	                   |         |       g |             S )Nr   machinesystemarchitecture,)platformr:   r;   r<   r   r9   s      r6   platform_keyr?   7   s'    6688WY:<>:;;    c                    t         j                  j                  | |      }|r|j                  st	        d|  d|       t         j                  j                  |      }|j                  j                  |       |S )NzFailed to load newly compiled z from )	importlibutilspec_from_file_locationloaderr"   module_from_specexec_module)r   r   specmods       r6   _load_module_from_pathrJ   =   se    >>11$=Dt{{;D6vNOO
..
)
)$
/CKKC Jr@   c           
     f   t        j                  | t               z   j                  d            j	                         }t        |      }t        j                  d      }|j                  | |       }|	 t        ||      S t!        j"                         5 }
t$        j&                  j)                  |
|dz         }t+        |d      5 }|j-                  |        d d d        t/        |||
|xs g |xs g |xs g       }t+        |d      5 }|j1                  |j3                         | | d	      }d d d        d d d        t        ||      S # t        t        f$ r2 t        j                  t              }	|	j                  d| d       Y 	w xY w# 1 sw Y   xY w# 1 sw Y   mxY w# 1 sw Y   qxY w)
Nzutf-8r
   z$Triton cache error: compiled module z.so could not be loadedz.cwrbT)binary)hashlibsha256r?   encode	hexdigestr   r   r   get_filerJ   r"   ImportErrorlogging	getLogger__name__warningtempfileTemporaryDirectoryr   r   r   openwriter7   putread)r*   r   r,   r-   r.   keycacher   
cache_pathlogtmpdirsrc_pathfr/   s                 r6   compile_module_from_srcrf   F   s   
..#.66w?
@
J
J
LCc"E%%l3F4& 12J	^)$
;;
 
	$	$	& M&77<<t4(C  	AGGCL	D(FL,>B@RPRT]Tcacd"d^ 	Mq1668vfX->tLJ	MM "$
33 k* 	^##H-CKK>tfD[\]	^	 		M 	MM MsN   6E 0F'F0F''F/F'=FFF	F'F$	 F''F0)r   strr*   rg   r+   rg   r,   	list[str]r-   rh   r.   rh   returnrg   )ri   rg   )r   rg   r   rg   ri   r   )NNN)r*   rg   r   rg   r,   list[str] | Noner-   rj   r.   rj   ri   r   )
__future__r   	functoolsrO   importlib.utilrB   rU   r   r    r'   r   rY   typesr   r`   r    r   r7   	lru_cacher?   rJ   rf    r@   r6   <module>rr      s    "     	      $ !!$'!H < <
 SWae4*:4N^4jt4r@   