
    Si:                    b   S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKJs  J	s  J
s  Jr  S SKJs  J	s  J
s  Jr  S SKJrJrJr  \R(                  R+                  \R(                  R-                  \5      5      r\R(                  R3                  \S5      rS	S jrS
S jrSS jr\S:X  a  \" 5         gg)    )annotationsN)ONNX_MLTensorProtonumpy_helperdatac                   SS jn[         R                  R                  U R                  S5      n[	        [         R
                  " U5       Vs/ s H+  n[         R                  R                  U5      (       d  M)  UPM-     sn5      nU R                  (       a  [         R                  R                  U5      (       as  [         R
                  " U5       HY  n[        (       d  UR                  S5      (       a  M&  [        R                  " [         R                  R                  X%5      5        M[     [        R                  " 5       nU R                  (       a  U[         R"                  " 5       -  nO#U[         R                  " U R$                  5      -  nSnU GH  n[         R                  R                  U R                  UR&                  UR(                  5      n	U" U	5        UR&                  S:X  a  US-  nUR&                  S:X  ax  [+        [         R                  R                  U	S5      S5       n
[,        R.                  " UR0                  UR2                  UR4                  UR6                  S	.U
S
S9  S S S 5        M  UR8                  (       d   e[+        [         R                  R                  U	S5      S5       nUR;                  UR8                  R=                  5       5        S S S 5        UR>                  (       d   e[A        UR>                  5       GHH  u  nu  p[         R                  R                  U	SU 35      nU" U5        [A        U5       GH  u  nn[+        [         R                  R                  USU S35      S5       nUR8                  RB                  RD                  U   RF                  RI                  S5      (       aa  UR;                  [J        RL                  " UUR8                  RB                  RD                  U   R(                  5      R=                  5       5        GOUR8                  RB                  RD                  U   RF                  RI                  S5      (       aa  UR;                  [J        RN                  " UUR8                  RB                  RD                  U   R(                  5      R=                  5       5        GOxUR8                  RB                  RD                  U   RF                  RI                  S5      (       a`  UR;                  [J        RP                  " UUR8                  RB                  RD                  U   R(                  5      R=                  5       5        OUR8                  RB                  RD                  U   RF                  RI                  S5      (       d   e[S        U[T        5      (       a   UR;                  UR=                  5       5        O_UR;                  [J        RV                  " UUR8                  RB                  RD                  U   R(                  5      R=                  5       5        S S S 5        GM     [A        U5       GH  u  nn[+        [         R                  R                  USU S35      S5       nUR8                  RB                  R                  U   RF                  RI                  S5      (       aa  UR;                  [J        RL                  " UUR8                  RB                  R                  U   R(                  5      R=                  5       5        GOUR8                  RB                  R                  U   RF                  RI                  S5      (       aa  UR;                  [J        RN                  " UUR8                  RB                  R                  U   R(                  5      R=                  5       5        GOxUR8                  RB                  R                  U   RF                  RI                  S5      (       a`  UR;                  [J        RP                  " UUR8                  RB                  R                  U   R(                  5      R=                  5       5        OUR8                  RB                  R                  U   RF                  RI                  S5      (       d   e[S        U[T        5      (       a   UR;                  UR=                  5       5        O_UR;                  [J        RV                  " UUR8                  RB                  R                  U   R(                  5      R=                  5       5        S S S 5        GM     GMK     GM     U R                  (       d!  Xt:w  a  [X        RZ                  " S[\        SS9  g g g s  snf ! , (       d  f       GM  = f! , (       d  f       GN= f! , (       d  f       GM  = f! , (       d  f       GM  = f)Nc                    [         R                  R                  U 5      (       a  [        R                  " U 5        [         R
                  " U 5        g N)ospathexistsshutilrmtreemakedirs)r   s    Z/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/onnx/backend/test/cmd_tools.pyprepare_dir"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_rootr:   original_dir_numbersub_dircasesnode_numbercase
output_dirfifiinputsoutputsdata_set_dirjrD   r-   s                      r   generate_datar^      s    T[[&1I**Y/H/$277>>$3G/H zzbggnnY//zz),Gwg001CDDbggll9>? - ((*E yy1133,,T\\::KWW\\$++tyy$))D
J991K99bggll:{;SAR		#xx&*oo $		 $			 "	 BA :::bggll:|<dCq

4467 D>>!>(1$..(A$$F!ww||J.8LML) )& 1HAubggll<6!CI4PTU::++11!499BB:NNGG , 6 6$)4::+;+;+A+A!+D+I+I!""3"3"5
 "ZZ--33A6;;DD_UUGG , 6 6$)4::+;+;+A+A!+D+I+I!""3"3"5
 "ZZ--33A6;;DD_U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 QP !2@ "+7!3IAvbggll<71#S9IJDQUV::++2215::CCJOOGG , 6 6$*DJJ,<,<,C,CA,F,K,K!""3"3"5
 "ZZ--44Q7<<EEoVVGG , 6 6$*DJJ,<,<,C,CA,F,K,K!""3"3"5
 "ZZ--44Q7<<EEoV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 RQ "4G )B- r ::+<H 	
 =:S 	I, BA DC QP@ RQs?   (f9f.Af9*f0J=g	J=g	
f-	0
f?	
g
g%c                 P   [         R                  " S5      n U R                  5       nUR                  SSS9nUR	                  SSSSS	S
9  UR	                  SS[
        SS9  UR	                  SSS SS9  UR	                  SSSSSS
9  UR                  [        S9  U R                  5       $ )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))rb   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   rl   rl      s    $$%9:F&&(J%%? & I T   6	   f	   ^   .r   c                 :    [        5       n U R                  U 5        g r
   )rl   rd   )rO   s    r   mainrq      s    <DIIdOr   __main__)rO   argparse.Namespacer*   r+   )r*   rs   )r*   r+   )
__future__r   re   r<   r   r   rL   onnx.backend.test.case.modelbackendtestrU   r>   r3   onnx.backend.test.case.noder   r6   onnxr   r   r   r   realpathdirname__file__TOP_DIRr,   rj   r^   rl   rq   __name__ r   r   <module>r      s    #   	   1 1 / / 3 3
''

277??84
577<<({
|#L
 zF r   