
    bIg!                       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Z d dl	m
Z
 dZdZdZ ej                  d      Z ej                  d	      Z ej                  d
      ZddZ ej                  d      Z ej                  d      Z ej                  d      ZddZ ej                  d      Z ej                  d      ZddZ	 	 	 	 	 	 	 	 	 	 	 	 ddZddZdddZ	 	 	 d 	 	 	 	 	 	 	 	 	 	 	 	 	 d!dZd"dZedk(  r e        yy)#    )annotationsN)dedent)IterablezV//
// WARNING: This file is automatically generated!  Please edit onnx.in.proto.
//


zB

// For using protobuf-lite
option optimize_for = LITE_RUNTIME;

onnxz\s*//\s*#if\s+ONNX-ML\s*$z\s*//\s*#endif\s*$z\s*//\s*#else\s*$c              #  (  K   d}| D ]  }t         j                  |      r
|dk(  sJ d}"t        j                  |      r
|dk(  sJ d}At        j                  |      r|dk(  s|dk(  sJ d}e|dk(  r| o|dk(  r|r| {|dk(  s|r|  y w)Nr         )IF_ONNX_ML_REGEXmatchELSE_ONNX_ML_REGEXENDIF_ONNX_ML_REGEX)linesonnx_mlin_iflines       K/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/gen_proto.pyprocess_ifsr   $   s     E !!$'A::E%%d+A::E &&t,A:!++Ez
!
!G
!s   BBBBz#(\s*)import\s*"([^"]*)\.proto";\s*$z\{PACKAGE_NAME\}z(.*)\-mlc              #  V  K   |t         k7  }| D ]  }|rt        j                  |      nd }|rb|j                  d      }t        j                  |      }|r|j                  d       d| d}n| d| }|j                  d      d| dz    t
        j                  ||        y w)Nr	   r   _-mlimport "z.proto";)DEFAULT_PACKAGE_NAMEIMPORT_REGEXr   groupML_REGEXPACKAGE_NAME_REGEXsub)r   package_nameneed_renamer   minclude_namemls          r   process_package_namer#   >   s     "66K =(3Lt$771:L-B"$((1+a~SA".q?''!*,x@@@$((t<<=s   B'B)z"(\s*)syntax\s*=\s*"proto2"\s*;\s*$z(\s*)optional\s(.*)$c              #  z  K   | D ]  }t         j                  |      }|r|j                  d      dz    1t        j                  |      }|r&|j                  d      |j                  d      z    nt        j                  |      }|r*|j                  d      d|j                  d       dz    |  y w)Nr   zsyntax = "proto3";r	   r   z	.proto3";)PROTO_SYNTAX_REGEXr   r   OPTIONAL_REGEXr   )r   r   r    s      r   convert_to_proto3r'   R   s      $$T*''!*333   &''!*qwwqz)) t$''!*!''!*Y???
's   B9B;c                    t        d|         | |d|g}|j                  d|d|g       t        j                  |       y )NzGenerate pb3 code using z-Iz	--cpp_outz--python_out)printextend
subprocess
check_call)protoc_pathproto3_pathinclude_pathcpp_out
python_out
build_argss         r   gen_proto3_coder3   i   sG     
$[M
23{D,?J{G^ZHI*%    c                    | j                         }t        ||      }t        ||      }|dk(  rt        |      }n|dk(  sJ dj	                  |      S )N)r   )r      r	   
)
splitlinesr   r#   r'   join)sourceprotor   r   r   s        r   	translater<   r   sT    !,,.Ew/E \BEz!%(zz99Ur4   c                    |@t         j                  j                  t         j                  j                  t                    }t         j                  j                  ||       S N)ospathrealpathdirname__file__r9   )fpardirs     r   qualifyrF   }   s=    ~!!"''//(";<77<<""r4   c                   t        |  d      }|t        k7  }|}d|v rd}|r|r|  d| dn|  d}	n|r|  d| n|  }	t        |	 d|      }
t        |	 d|      }t        d	|        t        |d
      5 }|j	                         }t        d|
        t        |
ddd
      5 }|j                  t               |j                  t        |d||             |r|j                  t               d d d        t        d|        t        |ddd
      5 }|j                  t               |j                  t        |d||             |r|j                  t               d d d        |rt        j                  j                  |      }t        j                  j                  |      }t        |||||       t        j                  t        j                  j                  ||	 d            }|D ]%  }t        d|        t        j                  |       ' |ro|rt        |  d|      }nt        |  d|      }t        d|        t        |ddd
      5 }|j                  d       |j                  d|	 d       d d d        d d d        t        | j!                  dd       d|      }|r!t        |	j!                  dd       d|      }nC|r!t        | j!                  dd       d|      }n t        | j!                  dd       d|      }t        d|        t        |dd
      5 }|j                  t#        dt        j                  j%                  t        j                  j'                  |            d     d!             d d d        y # 1 sw Y   xY w# 1 sw Y   FxY w# 1 sw Y   3xY w# 1 sw Y   8xY w# 1 sw Y   y xY w)"Nz	.in.proto	onnx-dataFr   r   z.proto)rE   z.proto3zProcessing zutf-8)encodingzWriting w )newlinerI   r	   )r;   r   r   r6   z	.proto3.*z	Removing z-ml.pb.hz.pb.hz#pragma once
z
#include "z.pb.h"
-z_pb.pyz_pb2.pyz
_ml_pb2.pyzgenerating z[                # This file is generated by setup.py. DO NOT EDIT!


                from .r   z" import *  # noqa
                )rF   r   r)   openreadwriteautogen_headerr<   LITE_OPTIONr?   r@   rB   r3   globr9   removereplacer   splitextbasename)stemr   output
do_onnx_mlliter-   proto_inr   	import_ml
proto_baser;   proto3finr:   fout
porto3_dirbase_dir	pb3_filespb3_fileproto_headerpb_pypb2_pyrD   s                          r   convertri      s    $y)*H"66K I h
4?vQ|nC0vS\
1<vQ|n-TF
zl&)&9E
|7+F;F	Kz
"#	h	) #>S !%b7; 	(tJJ~&JJ&9<X 

;'	( 	!"&#rG< 	(JJ~&JJ&9<X 

;'	( 0Jwwz2HK8XN		"'',,zj\;S"TUI% $	(,-		(#$ &$x'8H&$u~fEH\N+,lCgF >$

+,

Z
|8<=>C#>N t||C-.f5fEEJ..sC89A&QS# 67zB6RFS# 67w?OF	Kw
 	eS7	+ 

q	 ww''(8(8(@A!DE F			


 

]	( 	(	( 	(,> >C#> #>b

 

sd   9.O 'AN2%O AN&"C9O 'N3O 4AON#	O &N0	+O 3N=	8O  O
Oc            	        t        j                  d      } | j                  dddd       | j                  dd	d
d       | j                  ddd
d       | j                  ddt        j                  j                  t        j                  j                  t                    d       | j                  ddd       | j                  ddg dd       | j                         }t        j                  j                  |j                        st        j                  |j                         |j                  D ]E  }t        ||j                  |j                  |j                  |j                   |j"                         G y )Nz/Generates .proto file variations from .in.proto)descriptionz-pz	--packager   z@package name in the generated proto files (default: %(default)s))defaulthelpz-mz--ml
store_truezML mode)actionrm   z-lz--litez-generate lite proto to use with protobuf-litez-oz--outputz'output directory (default: %(default)s)z--protoc_pathrK   z)path to protoc for proto3 file validationstems*)r   zonnx-operatorsrH   z3list of .in.proto file stems (default: %(default)s))nargsrl   rm   )r   rY   rZ   r[   r-   )argparseArgumentParseradd_argumentr?   r@   rA   rB   rC   
parse_argsexistsrY   makedirsrp   ri   packager"   r[   r-   )parserargsrX   s      r   mainr|      s`   $$EF O	   f\	J
<	     !:;6	   *U   7B	   D77>>$++&
DKK 

 
;;ww((	

r4   __main__)r   Iterable[str]r   boolreturnr~   )r   r~   r   strr   r~   )r   r~   r   r~   )r-   r   r.   r   r/   r   r0   r   r1   r   r   None)
r:   r   r;   intr   r   r   r   r   r   r>   )rD   r   rE   z
str | Noner   r   )FFrK   )rX   r   r   r   rY   r   rZ   r   r[   r   r-   r   r   r   )r   r   ) 
__future__r   rs   rS   r?   rer+   textwrapr   typingr   rQ   rR   r   compiler
   r   r   r   r   r   r   r#   r%   r&   r'   r3   r<   rF   ri   r|   __name__ r4   r   <module>r      s   #   	 	     2:::;  bjj!67 RZZ 45 * rzz@ARZZ 34 2::k"=   RZZ EF 34.&&#&&69&DG&UX&	&# T

T
T
 T
 	T

 T
 T
 
T
n-
` zF r4   