
    9jbs                       U d dl mZ d dlZd dlZd dlZd dlmZ d dlmc m	Z	 d dl
mZ d dlmZmZmZmZmZmZmZmZmZmZmZ d dlmZ erd dlmZ  ej8                         Zded	<   	 	 	 	 d/dZ e d      Z!d0dZ"	 	 	 	 d1dZ# e d      Z$ e d      Z%d2dZ&d2dZ' e d      Z( e d      Z)d3dZ*dZ+ ejX                  e+      Z-ded<   d4dZ.	 	 	 	 	 	 	 	 d5dZ/d6dZ0d6dZ1ejd                  dejf                  dejh                  d ejj                  dejl                  dejn                  dejp                  d
iZ9	 	 	 	 d7d!Z:d8d"Z;d9d#Z<d9d$Z=	 	 	 	 	 	 d9d%Z>	 	 	 	 	 	 d:d&Z?	 	 	 	 	 	 d9d'Z@ e d(      ZAd;d)ZBd<d*ZC G d+ d,      ZD G d- d.      ZEy)=    )annotationsN)TYPE_CHECKING)native_function_manager)ArgumentBackendIndexBaseTyBaseTypeFunctionSchemaNativeFunctionsGroupNativeFunctionsViewGroupOptionalTypeSelfArgumentTensorOptionsArgumentsType)config)Sequencezlogging.Loggerloggerboolc                T    | D ]#  }t        |dd       }|st        |dd      }|s# y y)N
annotation	alias_set TF)getattr)	argumentsargr   r   s       a/media/conek/DATA/Code/OCR/venv/lib/python3.12/site-packages/torchgen/static_runtime/generator.py	has_aliasr   !   s@      S,5
JR8	     )sparse_sampled_addmmhspmmlinalg_svdvalssspaddmmcoalesce_indicesindices_valuesvaluescrow_indicescol_indicesfloor_dividegerconj_physicalbinary_cross_entropyarccoshcholeskylu_solvelinalg_choleskylinalg_householder_productlinalg_ldl_solve_compute_linear_combination
_make_dual
_fw_primal_index_reduce!_new_zeros_with_same_feature_meta_conj_physical binary_cross_entropy_with_logitsbincountconv_tbccopy
_copy_from_copy_from_and_resizecount_nonzerocudnn_affine_grid_generator$cudnn_affine_grid_generator_backwardcudnn_grid_sampler
diag_embed	embeddingembedding_dense_backward_embedding_bag_dense_backward*_embedding_bag_per_sample_weights_backwardgrid_sampler_2d_grid_sampler_2d_cpu_fallbackgrid_sampler_3disnanmkldnn_linearmedian	nanmedian_sparse_sparse_matmulbatch_norm_backward_elemt_euclidean_distpixel_shufflepixel_unshufflechannel_shuffle_reshape_nested_backwardrelupreluceluslice_scatterselect_scatterdiagonal_scattersum_mkldnn_transpose_nested_tensor_from_mask_nested_from_padded_nested_tensor_size&_nested_from_padded_and_nested_example_standard_gamma_grad_dirichlet_gradnative_norm_sparse_softmax_sparse_softmax_backward_data_sparse_log_softmax!_sparse_log_softmax_backward_datazero_sparse_addmmsparse_mask_sparse_mask_projection	_to_dense	_coalesce
_coalescedcopy_sparse_to_sparse	to_sparseto_sparse_csrto_sparse_csc	to_mkldnnquantize_per_tensor_dynamicquantize_per_channelq_per_channel_scalesq_per_channel_zero_pointsint_repr"_make_per_channel_quantized_tensorsetlift
lift_freshlift_fresh_copymasked_scatter_masked_softmax_masked_softmax_backwardputindex_reducetrace_cholesky_solve_helperdistmax_torch_cuda_cu_linker_symbol_opglu_jvpglu_backward_jvphardswish_backwardrrelu_with_noise_backward#mkldnn_adaptive_avg_pool2d_backward_adaptive_avg_pool2d_backward_adaptive_avg_pool3d_backwardisinflinalg_lu_solvelinalg_vecdotlinalg_matrix_explinalg_eigvalsh_test_warn_in_autograd%_test_autograd_multiple_dispatch_view*_test_autograd_multiple_dispatch_view_copy_segment_reduce_segment_reduce_backward_fw_primal_copy_make_dual_copyview_as_real_copyview_as_complex_copy
_conj_copy_neg_view_copydiagonal_copydetach_copysqueeze_copyt_copyunsqueeze_copy_indices_copy_values_copyindices_copyvalues_copycrow_indices_copycol_indices_copyccol_indicesccol_indices_copyrow_indicesrow_indices_copyunfold_copy
alias_copy_triton_multi_head_attentionspecial_airy_aispecial_bessel_j0special_bessel_j1special_bessel_y0special_bessel_y1special_chebyshev_polynomial_tspecial_chebyshev_polynomial_uspecial_chebyshev_polynomial_vspecial_chebyshev_polynomial_wspecial_hermite_polynomial_hspecial_hermite_polynomial_hespecial_laguerre_polynomial_lspecial_legendre_polynomial_pspecial_modified_bessel_i0special_modified_bessel_i1special_modified_bessel_k0special_modified_bessel_k1!special_scaled_modified_bessel_k0!special_scaled_modified_bessel_k1&special_shifted_chebyshev_polynomial_t&special_shifted_chebyshev_polynomial_u&special_shifted_chebyshev_polynomial_v&special_shifted_chebyshev_polynomial_wspecial_spherical_bessel_j0_foobar_nested_tensor_strides_nested_tensor_storage_offsets_nested_get_values_nested_get_values_copy_nested_view_from_jagged_nested_view_from_jagged_copy_nested_view_from_buffer_nested_view_from_buffer_copy_int_mm_to_sparse_csc_to_sparse_csrsegment_reducec                p   d}d }t        | t              r-| j                  j                  }| j                  j                  }nJ| j
                  j                  j                  j                  j                  }| j
                  j                  }t        j                  |       rt        j                  d|       y|t        v rt        j                  d|       y|j                         D ]1  }t        |j                        }|rt        j                  d|        y t        | t              rJdt!        j"                  |j$                  d      j'                         k7  rt        j                  d|       yy	| j(                  j                  j                         D ]E  }t        |j                        }|rt        j                  d| j(                  j                          y | j*                  sKt-        | d
      r>t/        |      j1                  d      r$t/        |j                        j1                  d      sydt!        j"                  |j$                  d      j'                         k7  rt        j                  d|       yt3        |j4                  j6                        rt        j                  d|       yy	)N zHAND WRITTEN: %sFzBLOCKED: %sz!NOT SUPPORTED TYPE CONVERTING: %sz
at::Tensor)symintzNON-TENSOR RET TYPE: %sToutzTensor(a!) out) -> Tensor(a!)z.outzat::Tensor &zNON_TENSOR RET TYPE: %szINPUTS ALIAS: %s)
isinstancer   view	root_namefuncr   namebaser   is_hand_writtenr   infoBLOCKED_OPSschema_order_argumentsivalue_type_conversion_methodtypecppreturns_typereturnscpp_type
functional
structuredhasattrstrendswithr   r   non_out)gbase_op_namer   r   maybe_methods        r   is_supportedr      s   LD!-.vv''vv{{uuzz++00uuzza &5{"M<0**, 4SXX>KK;TB !-. 3++DLLGPPRRKK148 ||  779 4SXX>KK;Q\\=N=NO <<
 5!t9%%&EFtyy>**62))$,,uENNPP-t4''(&5r   c                   t         j                  dt         j                  dt         j                  dt         j                  dt         j
                  dt         j                  di}d}t        | t              r| j                  }nCt        | t              r2t        | j                  t              sy| j                  j                  }ny||vry||   }t        | t              r|d   S |d	   S )
aD  
    Return the method call expression of `c10::ivalue' to convert its contained value to
    the expected value of `arg_type` type. For example, for `arg_type` == BaseTy.Tensor,
    this function returns ".toTensor()", so that it can be appended to the ivalue's
    variable name to get the value of the expected type.
    ))Tz
toTensor())FztoOptional<at::Tensor>()))FztoInt())FztoOptional<int64_t>()))FztoBool())FztoOptional<bool>()))Fz
toScalar())FztoOptional<at::Scalar>()))FztoScalarType())FztoOptional<at::ScalarType>()))FztoStringView())FztoOptional<c10::string_view>())Fz toOptional<::std::string_view>()Nr      )r   Tensorintr   Scalar
ScalarTyper   r   r	   r   r   elem)arg_typetype_conversion_methodsbase_ty_objectmethodss       r   r   r   2  s     	R

JIS 
 	

 
  N(H%!	Hl	+(--2!++44%n5G(H%qz1:r   )bitwise_notbitwise_and
bitwise_orbitwise_xorbitwise_left_shiftbitwise_right_shiftgcdlcmscattergather _convert_indices_from_coo_to_csr _convert_indices_from_csr_to_coo)view_as_realimag_conjr   c                    | t         v S N)should_use_int_tensor_ops_op_names    r   should_use_int_tensorr  q  s    000r   c                    | t         v S r  )should_use_complex_tensor_ops_r  s    r   should_use_complex_tensorr  u  s    444r   )	addmv	index_addr  r  nll_loss_backwarddotvdotouterr+   )addmmmmnuclear_normdiag_addmm_activationmatrix_Htr   c                (    | t         v ry| t        v ryy)Nr         )test_tensor_dim_ops_1_test_tensor_dim_ops_2_r  s    r   test_tensor_dimr+    s    ((((r   z{"view_as_complex": "{2, 2}"}zdict[str, str]test_tensor_shape_jsonc                &    | t         v r	t         |    S y)Nr   )r,  r  s    r   test_tensor_shaper.    s    ((%g..r   c                   t        |      }|dk(  rb|dk(  rdnd}t        |      }t        j                  |t	        |      z        }||dz  z  }dj                  dj                  | g|z              }t        |      rd| d	}nt        |      rd
| d}nd| d}t        j                  |t        j                  dt        j                  dt        j                  dt        j                  dt        j                  di}d }	t!        | t"              r| j$                  }	nWt!        | t&              rt!        | j(                  t"              st+        dt-        |              | j(                  j$                  }	|	|vrt+        d|	       ||	   }
|
S )Nr   r      @   r'  z{{{}}},zat::randint(1, 100, z, at::kInt)z
at::randn(z, at::kComplexFloat)z	at::rand()1false2zat::ScalarType::Floatz"floor"z.Expected OptionalType with BaseType elem, got zUnexpected type: )r.  r+  mathceilfloatformatjoinr  r  r   r   r   r   r   r   r   r   r	   r   r   r   AssertionErrorr   )r   indexr  tensor_size_exnum_tensorsnum_dimsize_per_dimtensor_expressionvalue_expressionsr   value_expressions              r   test_value_expressionrE    s    'w/N!QJbB!'*yyuW~!=>q((!l^2E2O)PQW%2>2B+N	"7	+((88LM''7q9 	(

CWs2

I N(H%! x.:hmmX3V @h@PQ  "++..00@ABB(8r   c                   | j                         rt        d|        | j                  j                  j                  }i }| j	                         D ](  }t        |j                  ||      }|||j                  <   * t        j                  |||       g }|j                         D ]  \  }}|j                  d| | d|          dj                  |      dz   S )NExpected non-out function, got zauto z = ;
    ;)	is_out_fnr<  r   r   r   rE  r   r   override_test_valuesitemsappendr;  )	schemar=  schema_namearg_mapr   test_value_exparg_populationsarg_name	arg_values	            r   generate_test_value_definitionsrU    s    >vhGHH++""''KG,,. +.sxxL*+ e<O&}} H)xjs9+FGH>>/*S00r   c                    | j                         rt        d|        dj                  fd| j                         D              S )NrG  r2  c              3  >   K   | ]  }|j                       y wr  r   ).0r   r=  s     r   	<genexpr>z,generate_test_value_names.<locals>.<genexpr>  s     TSsxxj(Ts   )rJ  r<  r;  r   )rN  r=  s    `r   generate_test_value_namesr[    s@    >vhGHH88TF4Q4Q4STTTr   r   r9  c                \    dd}| j                         D cg c]
  } ||       c}S c c}w )Nc                *   | j                   }d}t        |t              r|j                  }d}t        |t              st        dt        |             d }|j                  t        v rt        |j                     }|r|r| d}d| j                  z   |fS )NFTzExpected BaseType, got ?%)r   r   r   r   r	   r<  r   /generate_test_ir_arguments_base_ty_to_type_str_)r   r%  add_optionaltype_strs       r   ir_argumentz/generate_test_ir_arguments.<locals>.ir_argument  s    HHa&AL!X& #:47)!DEE66DDFqvvNH"1~Hchh))r   )r   r   returnztuple[str, str | None])r   )rN  rc  r   s      r   generate_test_ir_argumentsre    s+    * )/(E(E(GHKHHHs   )c                L   g }t        | j                               D ]s  \  }}t        |j                        }|s%t	        d|j
                   d|j                         |\  }}|rdnd}|j                  d| d|j
                   d| d|        u d	j                  |      d
z   S )NzNo type conversion method for : &r   z
const auto z = p_node->Input(z).rH  rI  )	enumerater   r   r   r<  r   rM  r;  )rN  rR  ir   r   is_referencetype_conversion_method	references           r   generate_arg_extractionro    s    OF99;< 

34SXX> 0
"SXXJG  0<,,'CR	1SXXJ.?s"E[D\]	


 >>/*S00r   c                    |j                  | j                        }| j                  s|)t        j                  | j                  j
                        S |j                  S r  )
get_kernelr   r   r   r   r   kernelr   backend_indexrr  s      r   get_kernel_nameru    sD    %%all3F||v~xx))**==r   c                    |j                  | j                        }| j                  s|)t        j                  | j                  j
                        S |j                  S r  )rq  r   r   r   r   r   rr  rs  s      r   get_out_kernel_namerw    sB    %%aee,F||v~xx

##==r   c                   | j                   j                  }|j                         rt        d|       t	        | |      }d |j                         D        }| j                  rdnd}d| d| ddj                  |       d	S )
NrG  c              3  4   K   | ]  }|j                     y wr  rX  rY  r   s     r   rZ  z0generate_non_out_variant_call.<locals>.<genexpr>#       EcE   cpunativeat::::(r2  r3  )r   r   rJ  r<  ru  r   r   r;  )r   rt  rN  kernel_name	arg_namesnamespace_names         r   generate_non_out_variant_callr    s     \\F>vhGHH!!]3KEV%B%B%DEIllUN.!K=#((92E1FaHHr   c                   | j                   j                  }t        j                  |      }|j	                  | j                         }|r|j
                  }d |j                         D        }d}d| d| ddj                  |       dS )Nc              3  4   K   | ]  }|j                     y wr  rX  rz  s     r   rZ  z,generate_call_to_view_ops.<locals>.<genexpr>0  r{  r|  r~  r  r  r  r2  r3  )r   r   r   r   rq  rr  r   r;  )r   rt  rN  r  rr  r  r  s          r   generate_call_to_view_opsr  (  s}     VV[[F((6"K%%aff-FmmEV%B%B%DEIN.!K=#((92E1FaHHr   c                   | j                   j                  }|j                         st        d|       g }t	        | |      }| j
                  r.|j                  j                   D cg c]  }|j                   }}ng }|j                  j                  D ]z  }t        |t              r&|j                  |j                  j                         9t        |t              st        dt        |             |j                  |j                         | | j
                  st        |j                  j                         dk7  r+t        dt        |j                  j                                |j                  |j                  j                   d   j                         dj!                  |      }| j
                  rdnd}d	| d
| d| dS c c}w )NzExpected out function, got zExpected Argument, got r   Expected 1 out argument, got r   r2  r}  r~  r  r  r  r3  )r   r   rJ  r<  rw  r   r   r   r   r   r   rM  argumentr   r   lenr;  )	r   rt  rN  r  r  out_argr   cpp_arg_namesr  s	            r   generate_out_variant_callr  5  s    UUZZF:6(CDDI%a7K||171A1A1E1EFgW\\F	F	'' 'c<(S\\../c8,$'>tCyk%JKKSXX&' <<v##$) /F4D4D4H4H0I/JK  	))--a0556HHY'MllUN.!K=-BB% Gs   'G
)zisin.Scalar_Tensorr  r  r  r!  histcl1_lossmulti_margin_lossmultilabel_margin_lossnll_loss
nll_loss2dprodc                P    t        |       }|d |j                  d       }|t        vS )Nr  )r   findno_memory_resize_ops)rN  
schema_strtype_variant_op_names      r   should_check_resizer  f  s.    VJ%&<
(<=';;;r   c                j    | j                   j                  j                  j                  j                  S r  )r   r   r   r   )r   s    r   op_name_from_groupr  l  s$    <<!!&&+++r   c                  \    e Zd Z	 	 	 	 	 	 ddZ	 	 	 	 	 	 ddZ	 	 	 	 	 	 ddZ	 	 	 	 	 	 d	dZy)
GenOpDispatcherc                z   |syg }|D ]y  }t        |      5  t        |      st        d|       t        |t              st        dt        |             | j                  ||      }|j                  |       d d d        { t        |d         }dj                  |      }d| d| d| d	}|S # 1 sw Y   xY w)
Nr   Unsupported function group: #Expected NativeFunctionsGroup, got r   
z&
REGISTER_OPERATOR_FUNCTOR(
    aten::,
    aten_(,
    [](Node* n) -> SROperator {
      z9
      LogAndDumpSchema(n);
      return nullptr;
    })
)
r   r   r<  r   r   r   out_variant_op_generatorrM  r  r;  	selfgroupsrt  generated_type_variantsr   generated_type_variantr  body	generateds	            r   out_variantzGenOpDispatcher.out_variantq  s     "$ 		GA(+ G#A(+Gs)KLL!!%9:(=d1gYG  *.)F)Fq-)X&'../EFG G		G %VAY/yy01) 

 f 		 +G Gs   A$B11B:	c                   |syg }|D ]y  }t        |      5  t        |      st        d|       t        |t              st        dt        |             | j                  ||      }|j                  |       d d d        { t        j                  |d         }dj                  |      }d| d| d| d	}|S # 1 sw Y   xY w)
Nr   Unsupported view group: 'Expected NativeFunctionsViewGroup, got r   r  z-
REGISTER_NATIVE_OPERATOR_FUNCTOR(
    aten::r  r  z:
      LogAndDumpSchema(n);
      return nullptr;
    });
)r   r   r<  r   r   r   view_op_generatorrM  r   func_name_base_strr;  r  s	            r   r   zGenOpDispatcher.view  s    "$ 		GA(+ G#A(+CA3)GHH!!%=>(A$q'K  *.)?)?=)Q&'../EFG G		G ++F1I6yy01) 

 f 		 +G Gs   A$B;;C	c                J   |j                   }t        |j                        }t        |j                   j                        }t	        ||      }t        |j                  j                  j                  j                        dk7  r?t        dt        |j                  j                  j                  j                               t        |j                  j                  j                  j                  d   j                        }t        ||      }d| d| d| d| d| d	| d
}	|	S )Nr   r  r   +
      if (n->matches(torch::schema("aten::<"))) {
        return [](ProcessedNode* p_node) {
          zM
          if (p_node->Output(0).isNone()) {
            p_node->Output(0) = z2;
            return;
          }
          auto& z< = p_node->Output(0).toTensor();
          fastResizeToZero(z);
          ;
        };
      })r   r   r   ro  r  r  r   r   r<  r   r  )
r  r   rt  r   rN  populated_argumentfunctional_variant_callout_variable_nameout_variant_callr  s
             r   r  z(GenOpDispatcher.out_variant_op_generator  s    \\
Z__%4Q\\5F5FG"?="Qquuzz##''(A- /AEEJJ4H4H4L4L0M/NO   

 4 4 8 8 ; @ @A4QF++1( 3
 !!8 9 : ## $-. /
 		 r   c                    t        |j                  j                        }t        |j                  j                        }t	        ||      }d| d| d| d}|S )Nr  r  z!
            p_node->Output(0) = r  )r   r   r   ro  r  )r  r   rt  rN  r  r  r  s          r   r  z!GenOpDispatcher.view_op_generator  sj     QVV[[!4QVV[[A";A}"M++1( 3
 !!8 9 :			 r   N)r  Sequence[NativeFunctionsGroup]rt  r   rd  r   )r  "Sequence[NativeFunctionsViewGroup]rt  r   rd  r   r   r   rt  r   rd  r   r   r   rt  r   rd  r   )__name__
__module____qualname__r  r   r  r  r   r   r   r  r  p  sv    4EQ	<8IU	<%6B	8):F	r   r  c                  ,    e Zd ZddZddZddZd	dZy)
GenOpTestCasec                @   |syg }|D ]x  }t        |      5  t        |      st        d|       t        |t              st        dt        |             | j                  |      }|j                  |       d d d        z dj                  |      S # 1 sw Y   xY w)Nr   r  r  r  )	r   r   r<  r   r   r   "out_variant_op_test_case_generatorrM  r;  r  r  r  r   r  s        r   r  zGenOpTestCase.out_variant  s    "$ 		GA(+ G#A(+Gs)KLL!!%9:(=d1gYG  *.)P)PQR)S&'../EFG G		G yy011G G   A#BB	c                @   |syg }|D ]x  }t        |      5  t        |      st        d|       t        |t              st        dt        |             | j                  |      }|j                  |       d d d        z dj                  |      S # 1 sw Y   xY w)Nr   r  r  r  )	r   r   r<  r   r   r   view_op_test_case_generatorrM  r;  r  s        r   r   zGenOpTestCase.view  s    "$ 		GA(+ G#A(+CA3)GHH!!%=>(A$q'K  *.)I)I!)L&'../EFG G		G yy011G Gr  c                x   |j                   j                  }t        |      }|j                  d      dk  rt	        d|       |d |j                  d       j                  dd      }t        |      }|j                  |      st	        d| d|       t        |      }dj                  d	 |D              }dj                  d
 |D              }t        |j                        dk(  rZt        |j                  d   j                  t              r3|j                  d   j                  j                  t         j"                  u st	        d|j                         t%        |d      }	t'        |d      }
t%        |d      }t'        |d      }t)        |      rdnd}d| d| d| d| d|	 d|
 d| d| d| d| d}|S )Nr  r   Invalid schema string: ._Type variant op name  doesn't start with , c              3  8   K   | ]  \  }}||n| d|   y wNrg  r   rY  rS  r   s      r   rZ  zCGenOpTestCase.out_variant_op_test_case_generator.<locals>.<genexpr>  1      &Hh %,XJb
2KK   c              3  &   K   | ]	  \  }}|  y wr  r   rY  rS  r  s      r   rZ  zCGenOpTestCase.out_variant_op_test_case_generator.<locals>.<genexpr>       EKHaxE   r   #Expected single Tensor return, got truer5  
TEST(StaticRuntime, autogen_1) {
  const std::string script = R"IR(
    graph(?):
        %bias: None = prim::Constant()
        %ret = aten::Q)
        %cloned = aten::clone(%ret, %bias)
        return (%cloned)
  )IR";

  
  std::vector<IValue> args{zj};
  testStaticRuntime(script, args, {}, /*use_allclose=*/false, /*use_equalnan=*/false, /*check_resize=*/z);

  z
  std::vector<IValue> args2{zm};
  testStaticRuntime(script, args, args2, /*use_allclose=*/false, /*use_equalnan=*/false, /*check_resize=*/z);

}
)r   r   r   r  r<  replacer  
startswithre  r;  r  r   r   r   r	   r   r   r   rU  r[  r  )r  r   rN  r  r  r  	arg_typesarg_declarationsr  test_value_definitionstest_value_namestest_value_definitions2test_value_names2check_resizer  s                  r   r  z0GenOpTestCase.out_variant_op_test_case_generator  s   ""[
??31$ #::,!GHH)*@JOOC,@AII#sS$Q'#..w7 '(<'==QRYQZ[  /v6	99*3
 IIE9EF	1$6>>!,118<q!&&++v}}< #Fv~~FV!WXX!@!K4VQ?"A&!"L5fa@!4V!<v'12 3
 Ya	{ +
  -. /jjviw x /0 1kkwjx y!	( r   c                (   |j                   j                  }t        |      }|j                  d      dk  rt	        d|       |d |j                  d       j                  dd      }|j                   j                  }|j                  |      st	        d| d|       t        |      }dj                  d	 |D              }dj                  d
 |D              }t        |j                        dk(  rZt        |j                  d   j                  t              r3|j                  d   j                  j                  t         j"                  u st	        d|j                         t%        |d      }	t'        |d      }
d| d| d| d| d|	 d|
 d}|S )Nr  r   r  r  r  r  r  r  c              3  8   K   | ]  \  }}||n| d|   y wr  r   r  s      r   rZ  z<GenOpTestCase.view_op_test_case_generator.<locals>.<genexpr>=  r  r  c              3  &   K   | ]	  \  }}|  y wr  r   r  s      r   rZ  z<GenOpTestCase.view_op_test_case_generator.<locals>.<genexpr>B  r  r  r   r  r  r  r  r  r  z(};
  testStaticRuntime(script, args);
}
)r   r   r   r  r<  r  r   r  re  r;  r  r   r   r   r	   r   r   r   rU  r[  )r  r   rN  r  r  r  r  r  r  r  r  r  s               r   r  z)GenOpTestCase.view_op_test_case_generator/  s   [
??31$ #::,!GHH)*@JOOC,@AII#sS&&""#..w7 '(<'==QRYQZ[  /v6	99*3
 IIE9EF	1$6>>!,118<q!&&++v}}< #Fv~~FV!WXX!@!K4VQ?12 3
 Ya	{ +
  -. /	  r   N)r  r  rd  r   )r  r  rd  r   r   r   rd  r   )r   r   rd  r   )r  r  r  r  r   r  r  r   r   r   r  r    s    2 2 3j,r   r  )r   z:Sequence[Argument | SelfArgument | TensorOptionsArguments]rd  r   )r   z/NativeFunctionsGroup | NativeFunctionsViewGrouprd  r   )r   BaseType | OptionalType | Typerd  ztuple[bool, str] | None)r  r   rd  r   )r  r   rd  r   )r  r   rd  r   )r   r  r=  r   r  r   rd  r   )rN  r
   r=  r   rd  r   )rN  r
   rd  zlist[tuple[str, str | None]])rN  r
   rd  r   r  r  )rN  r
   rd  r   r  )F
__future__r   jsonloggingr7  typingr   torchgen.api.cppapir   torchgen.contextr   torchgen.modelr   r   r   r	   r
   r   r   r   r   r   r   torchgen.static_runtimer   collections.abcr   	getLoggerr   __annotations__r   	frozensetr   r   r   r  r  r  r  r)  r*  r+  test_tensor_shapes_stringloadsr,  r.  rE  rU  r[  r   r   r9  r   r   r   r   r`  re  ro  ru  rw  r  r  r  r  r  r  r  r  r   r   r   <module>r     sJ   "        4    + ( +**, ,
I
	
 CEP9x),))X '   "++L!M 15 #
  #Q 
 < )34M)N  N(,(58(CF((V1U MM8
JJ
LL'
JJ
MM5
u
KK3 /II!I*1 	I	I,8	I	I
I
I0<
I
ICC,8CC> ! $<,f fRB Br   