
    Χg'                     2    d dl mZmZ d dlmZ dedefdZdS )    )LazyArgumentLazyIrSchema)OptionalCTypeschemareturnc                 R   g }dt           dt          fd| j        D ]M}|j        r|                     |                     (|                    d|j         d|j                    Nd                    d |D                       }fd| j        D             }d	 | j        D             }d                    d
 ||z   D                       }dt          |           dt          ||z              d| d| d| j
         d| j
         dt          | j                   d| j
         dS )Nargr   c                 P    t          | j        t                    rd| j         dS dS )Nhas_z- ? loctx->GetOutputOp(operand(i++)) : nullptrz loctx->GetOutputOp(operand(i++)))
isinstance	lazy_typer   name)r	   s    Z/var/www/html/ai-engine/env/lib/python3.11/site-packages/torchgen/dest/lazy_ts_lowering.py	get_valuez#ts_lowering_body.<locals>.get_value
   s0    cm]33 	RQ#(QQQQ11    "", z
    c                     g | ]}d | d	S )zarguments.emplace_back(); .0as     r   
<listcomp>z$ts_lowering_body.<locals>.<listcomp>   s$    DDDQ	(1	(	(	(DDDr   c                 <    g | ]}d |j          d |           S r   r   r   )r   r	   r   s     r   r   z$ts_lowering_body.<locals>.<listcomp>   sA       .1)CH))3))  r   c                 2    g | ]}d |j          d|j          S r   r   )r   r	   s     r   r   z$ts_lowering_body.<locals>.<listcomp>   s:       (+#CH####  r   c                     g | ]}d | d	S )zkwarguments.emplace_back(r   r   r   s     r   r   z$ts_lowering_body.<locals>.<listcomp>   s3     	
 	
 	
 .---	
 	
 	
r   z~    std::vector<torch::jit::NamedValue> arguments;
    std::vector<torch::jit::NamedValue> kwarguments;
    arguments.reserve(z);
    kwarguments.reserve(z);
    size_t i = 0;
    z
    torch::lazy::TSOpVector zb_out = torch::lazy::LowerTSBuiltin(function, op().op, arguments, kwarguments);
    TORCH_CHECK_EQ(z_out.size(), z);

    return z_out;
)r   strpositional_argsis_lazy_valueappendr   joinkeyword_valueskeyword_scalarslen	aten_namereturns)r   emplace_argumentsr	   emplace_arguments_stremplace_kwarg_valuesemplace_kwarg_scalarsemplace_kwargumentsr   s          @r   ts_lowering_bodyr/      s    2| 2 2 2 2 2
 % > > 	$$YYs^^444  !<SX!<!<#(!<!<====$MMDD2CDDD    5;5J   /5/E   #--	
 	
),AA	
 	
 	
  ,--  14IIJJ	      $-  $  47v~3F3F     r   N)torchgen.api.lazyr   r   torchgen.api.typesr   r    r/   r   r   r   <module>r2      s[    8 8 8 8 8 8 8 8 , , , , , ,+\ +c + + + + + +r   