
    bIg:                    Z   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mc m	c m
c mZ d dlmc m	c m
c mZ d dlmZmZmZ ej(                  j+                  ej(                  j-                  e            Zej(                  j3                  ed      Zd	dZd
dZddZedk(  r e        yy)    )annotationsN)ONNX_MLTensorProtonumpy_helperdatac                   dd}t         j                  j                  | j                  d      }t	        t        j
                  |      D cg c]$  }t         j                  j                  |      s#|& c}      }| j                  rt         j                  j                  |      ret        j
                  |      D ]M  }t        s|j                  d      rt        j                  t         j                  j                  ||             O t        j                         }| j                  r|t!        j"                         z  }n"|t!        j                  | j$                        z  }d}|D ]  }t         j                  j                  | j                  |j&                  |j(                        }	 ||	       |j&                  dk(  r|dz  }|j&                  dk(  ryt+        t         j                  j                  |	d      d      5 }
t-        j.                  |j0                  |j2                  |j4                  |j6                  d	|
d
       d d d        |j8                  sJ t+        t         j                  j                  |	d      d      5 }|j;                  |j8                  j=                                d d d        |j>                  sJ tA        |j>                        D ]
  \  }\  }}t         j                  j                  |	d|       } ||       tA        |      D ]  \  }}t+        t         j                  j                  |d| d      d      5 }|j8                  jB                  jD                  |   jF                  jI                  d      r`|j;                  tK        jL                  ||j8                  jB                  jD                  |   j(                        j=                                n|j8                  jB                  jD                  |   jF                  jI                  d      r`|j;                  tK        jN                  ||j8                  jB                  jD                  |   j(                        j=                                ng|j8                  jB                  jD                  |   jF                  jI                  d      r_|j;                  tK        jP                  ||j8                  jB                  jD                  |   j(                        j=                                n|j8                  jB                  jD                  |   jF                  jI                  d      sJ tS        |tT              r |j;                  |j=                                n^|j;                  tK        jV                  ||j8                  jB                  jD                  |   j(                        j=                                d d d         tA        |      D ]  \  }}t+        t         j                  j                  |d| d      d      5 }|j8                  jB                  j                  |   jF                  jI                  d      r`|j;                  tK        jL                  ||j8                  jB                  j                  |   j(                        j=                                n|j8                  jB                  j                  |   jF                  jI                  d      r`|j;                  tK        jN                  ||j8                  jB                  j                  |   j(                        j=                                ng|j8                  jB                  j                  |   jF                  jI                  d      r_|j;                  tK        jP                  ||j8                  jB                  j                  |   j(                        j=                                n|j8                  jB                  j                  |   jF                  jI                  d      sJ tS        |tT              r |j;                  |j=                                n^|j;                  tK        jV                  ||j8                  jB                  j                  |   j(                        j=                                d d d           | j                  s#||k7  rtY        jZ                  dt\        d       y y y c c}w # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   *xY w# 1 sw Y   LxY w)Nc                    t         j                  j                  |       rt        j                  |        t        j
                  |        y N)ospathexistsshutilrmtreemakedirs)r   s    X/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/backend/test/cmd_tools.pyprepare_dirz"generate_data.<locals>.prepare_dir   s*    77>>$MM$
D    nodetest_ai_onnx_ml_r      realz	data.jsonw)url
model_namertolatolT)	sort_keysz
model.onnxwbtest_data_set_input_z.pbmap_typesequence_typeoptional_typetensor_typeoutput_a  There are some models under 'onnx/backend/test/data/node' which cannot not be generated by the script from 'onnx/backend/test/case/node'. Please add '--clean' option for 'python onnx/backend/test/cmd_tools.py generate-data' to cleanup the existing directories and regenerate them.   )
stacklevel)r   strreturnNone)/r   r   joinoutputlenlistdirisfilecleanr   r   
startswithr   r   
model_testcollect_testcasesdiff	node_testcollect_diff_testcasesop_typekindnameopenjsondumpr   r   r   r   modelwriteSerializeToString	data_sets	enumerategraphinputtypeHasFieldr   	from_dict	from_listfrom_optional
isinstancer   
from_arraywarningswarnWarning)argsr   	node_rootr9   original_dir_numbersub_dircasesnode_numbercase
output_dirfifiinputsoutputsdata_set_dirjrC   r,   s                      r   generate_datar]      s    T[[&1I**Y/H$277>>$3GH zzbggnnY/zz), 	@Gg001CDbggll9g>?	@ ((*E yy1133,,T\\::K X"WW\\$++tyy$))D
J991K99bggll:{;SA 
R		#xx&*oo $		 $			 "	
 
 :::bggll:|<dC 8q

44678>>!>(1$..(A B"$$FG!ww||J.8LML) )& 1 "HAubggll<6!CI4P "TU::++11!499BB:NGG , 6 6$)4::+;+;+A+A!+D+I+I!""3"3"5
 "ZZ--33A6;;DD_UGG , 6 6$)4::+;+;+A+A!+D+I+I!""3"3"5
 "ZZ--33A6;;DD_UGG , : :$)4::+;+;+A+A!+D+I+I!""3"3"5 $(::#3#3#9#9!#<#A#A#J#J -$  $  *%= !(?(?(A B !$0$;$;(-tzz/?/?/E/Ea/H/M/M%&&7&7&9!"5" ""@ "+7!3 "IAvbggll<71#S9IJDQ "UV::++2215::CCJOGG , 6 6$*DJJ,<,<,C,CA,F,K,K!""3"3"5
 "ZZ--44Q7<<EEoVGG , 6 6$*DJJ,<,<,C,CA,F,K,K!""3"3"5
 "ZZ--44Q7<<EEoVGG , : :$*DJJ,<,<,C,CA,F,K,K!""3"3"5 $(::#3#3#:#:1#=#B#B#K#K -$  $  *&+> !(@(@(B C !$0$;$;(.

0@0@0G0G0J0O0O%&&7&7&9!"5" ""GB"-X"r ::+)<<H 	
 =:S 	I,
 
8 8" "@" "s?   $d0dAd#*d0J d=	=J e
	#d-	0d:	=e
ec                 r   t        j                  d      } | j                         }|j                  dd      }|j	                  ddddd	
       |j	                  ddt
        d       |j	                  ddd d       |j	                  ddddd
       |j                  t               | j                         S )Nzbackend-test-toolszgenerate-datazconvert testcases to test data.)helpz-cz--cleanF
store_truezEClean the output directory before generating data for node testcases.)defaultactionr_   z-oz--outputz'output directory (default: %(default)s))ra   r_   z-tz	--op_typezWop_type for test case generation. (generates test data for the specified op_type only.)z-dz--diffzOonly generates test data for those changed files (compared to the main branch).)func)	argparseArgumentParseradd_subparsers
add_parseradd_argumentDATA_DIRset_defaultsr]   
parse_args)parser
subparsers	subparsers      r   rk   rk      s    $$%9:F&&(J%%? & I T   6	   f	   ^   .r   c                 :    t               } | j                  |        y r
   )rk   rc   )rN   s    r   mainrp      s    <DIIdOr   __main__)rN   argparse.Namespacer)   r*   )r)   rr   )r)   r*   )
__future__r   rd   r;   r   r   rK   onnx.backend.test.case.modelbackendtestrT   r=   r2   onnx.backend.test.case.noder   r5   onnxr   r   r   r   realpathdirname__file__TOP_DIRr+   ri   r]   rk   rp   __name__ r   r   <module>r      s    #   	   1 1 / / 3 3
''

277??84
577<<({
|#L
 zF r   