o
    "i
                     @  s   d dl mZ d dlZd dlZd dlZd dlmZ ejddkr)eddd Z	ndd Z	G d	d
 d
e
ZG dd deZG dd deZG dd deZG dd de
ZG dd de
ZG dd de
ZG dd de
ZG dd deZdS )    )annotationsN)	lru_cacheTORCHINDUCTOR_WRITE_MISSING_OPS1c                 C  sL   t t  dd}|t| d  W d    d S 1 sw   Y  d S )Nz/missing_ops.txta
)opentempfile
gettempdirwritestr)targetfd r   Q/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/torch/_inductor/exc.py_record_missing_op   s   "r   c                 C  s   d S )Nr   )r   r   r   r   r      s   c                   @  s   e Zd Zedd ZdS )OperatorIssuec                 C  sD   d|  gdd t |D  }|r|d|  td|dS )Nztarget: c                 S  s    g | ]\}}d | d| qS )zargs[z]: r   ).0iargr   r   r   
<listcomp>   s    z.OperatorIssue.operator_str.<locals>.<listcomp>zkwargs: r   z  )	enumerateappendtextwrapindentjoin)r   argskwargslinesr   r   r   operator_str   s   zOperatorIssue.operator_strN)__name__
__module____qualname__staticmethodr   r   r   r   r   r      s    r   c                         e Zd Z fddZ  ZS )MissingOperatorWithoutDecompc                   s(   t | t d| |||  d S )Nzmissing lowering
)r   super__init__r   selfr   r   r   	__class__r   r   r'   "   s    z%MissingOperatorWithoutDecomp.__init__r    r!   r"   r'   __classcell__r   r   r*   r   r%   !       r%   c                      r$   )MissingOperatorWithDecompc                   s:   t | t d| ||| td| d  d S )Nzmissing decomposition
z9

                There is a decomposition available for z in
                torch._decomp.get_decompositions().  Please add this operator to the
                `decompositions` list in torch._inductor.decompositions
                )r   r&   r'   r   r   dedentr(   r*   r   r   r'   (   s   z"MissingOperatorWithDecomp.__init__r,   r   r   r*   r   r/   '   r.   r/   c                         e Zd Zd fddZ  ZS )LoweringExceptionexc	Exceptionc                   s0   t  t|j d| d| |||  d S )Nz: r   )r&   r'   typer    r   )r)   r3   r   r   r   r*   r   r   r'   8   s   "zLoweringException.__init__)r3   r4   r,   r   r   r*   r   r2   7       r2   c                   @     e Zd ZdS )SubgraphLoweringExceptionNr    r!   r"   r   r   r   r   r8   >       r8   c                      r$   )InvalidCxxCompilerc                   s.   ddl m} t d|j d|jj  d S )N   )configz!No working C++ compiler found in z
.cpp.cxx: ) r=   r&   r'   r    cppcxx)r)   r=   r*   r   r   r'   C   s   zInvalidCxxCompiler.__init__r,   r   r   r*   r   r;   B   r.   r;   c                      r1   )CppWrapperCodeGenErrormsgr   c                   s   t  d|  d S )NzC++ wrapper codegen error: )r&   r'   )r)   rB   r*   r   r   r'   L   s   zCppWrapperCodeGenError.__init__)rB   r   r,   r   r   r*   r   rA   K   r6   rA   c                      s   e Zd Zd fddZ  ZS )CppCompileErrorcmd	list[str]outputr   c                   s>   t |tr
|d}t td jd	||d d S )Nzutf-8z
                    C++ compile error

                    Command:
                    {cmd}

                    Output:
                    {output}
                 )rD   rF   )

isinstancebytesdecoder&   r'   r   r0   stripformatr   )r)   rD   rF   r*   r   r   r'   Q   s   

zCppCompileError.__init__)rD   rE   rF   r   r,   r   r   r*   r   rC   P   r6   rC   c                   @  r7   )CUDACompileErrorNr9   r   r   r   r   rM   f   r:   rM   )
__future__r   osr	   r   	functoolsr   environgetr   RuntimeErrorr   r%   r/   r2   r8   r;   rA   rC   rM   r   r   r   r   <module>   s$   	