
    h!                        S SK r S SKrS SKrS SKrS SKrS SKJr  S SKJrJ	r	  Sr
SrSr\R                  " S5      r\R                  " S5      r\R                  " S	5      rS
\\   S\S\\   4S jr\R                  " S5      r\R                  " S5      r\R                  " S5      rS
\\   S\S\\   4S jr\R                  " S5      r\R                  " S5      rS
\\   S\\   4S jrS\S\S\S\S\SS4S jrS\S\S\S\S\4
S jrS)S\S \	\   S\4S! jjr   S*S"\S\S#\S$\S%\S\SS4S& jjrS+S' jr \!S(:X  a  \ " 5         gg),    N)dedent)IterableOptionalzV//
// 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*$linesonnx_mlreturnc              #   z  #    SnU  H  n[         R                  U5      (       a  US:X  d   eSnM)  [        R                  U5      (       a  US:X  d   eSnMO  [        R                  U5      (       a  US:X  d  US:X  d   eSnM{  US:X  a  Uv   M  US:X  a  U(       a  Uv   M  US:X  d  M  U(       a  M  Uv   M     g 7f)Nr         )IF_ONNX_ML_REGEXmatchELSE_ONNX_ML_REGEXENDIF_ONNX_ML_REGEX)r   r   in_iflines       H/var/www/fran/franai/venv/lib/python3.13/site-packages/onnx/gen_proto.pyprocess_ifsr   #   s     E!!$''A::E%%d++A::E &&t,,A:!++Ez
!
!GG
! s   B#B;)B;2	B;z#(\s*)import\s*"([^"]*)\.proto";\s*$z\{PACKAGE_NAME\}z(.*)\-mlpackage_namec              #   x  #    U[         :g  nU  H  nU(       a  [        R                  U5      OS nU(       ah  UR                  S5      n[        R                  U5      nU(       a  UR                  S5       SU S3nOU SU 3nUR                  S5      SU S3-   v   M  [
        R                  X5      v   M     g 7f)Nr   r   _-mlimport "z.proto";)DEFAULT_PACKAGE_NAMEIMPORT_REGEXr   groupML_REGEXPACKAGE_NAME_REGEXsub)r   r   need_renamer   minclude_namemls          r   process_package_namer$   =   s     "66K(3Lt$771:L-B"$((1+a~SA".q?''!*,x@@@$((<< s   B8B:z"(\s*)syntax\s*=\s*"proto2"\s*;\s*$z(\s*)optional\s(.*)$c              #     #    U  H  n[         R                  U5      nU(       a  UR                  S5      S-   v   M7  [        R                  U5      nU(       a'  UR                  S5      UR                  S5      -   v   Mz  [        R                  U5      nU(       a+  UR                  S5      SUR                  S5       S3-   v   M  Uv   M     g 7f)Nr   zsyntax = "proto3";r   r   z	.proto3";)PROTO_SYNTAX_REGEXr   r   OPTIONAL_REGEXr   )r   r   r!   s      r   convert_to_proto3r(   Q   s     $$T*''!*333   &''!*qwwqz)) t$''!*!''!*Y???
' s   CCprotoc_pathproto3_pathinclude_pathcpp_out
python_outc                     [        SU  35        XSU/nUR                  SUSU/5        [        R                  " U5        g )NzGenerate pb3 code using z-Iz	--cpp_outz--python_out)printextend
subprocess
check_call)r)   r*   r+   r,   r-   
build_argss         r   gen_proto3_coder4   h   sE     
$[M
23D,?J{G^ZHI*%    sourceprotoc                     U R                  5       n[        XBS9n[        XCS9nUS:X  a  [        U5      nOUS:X  d   eSR	                  U5      $ )N)r   )r      r   
)
splitlinesr   r$   r(   join)r6   r7   r   r   r   s        r   	translater=   q   sP    !,,.E/E BEz!%(zz99Ur5   fpardirc                     Uc@  [         R                  R                  [         R                  R                  [        5      5      n[         R                  R                  X5      $ N)ospathrealpathdirname__file__r<   )r>   r?   s     r   qualifyrG   |   s;    ~!!"''//(";<77<<""r5   stemoutput
do_onnx_mllitec                    [        U  S35      nU[        :g  nUnSU;   a  SnU(       a  U(       a  U  SU S3OU  S3n	OU(       a  U  SU 3OU  n	[        U	 S3US9n
[        U	 S3US9n[        S	U 35        [        US
S9 nUR	                  5       n[        SU
 35        [        U
SSS
S9 nUR                  [        5        UR                  [        USXS95        U(       a  UR                  [        5        S S S 5        [        SU 35        [        USSS
S9 nUR                  [        5        UR                  [        USXS95        U(       a  UR                  [        5        S S S 5        U(       a  [        R                  R                  U5      n[        R                  R                  U5      n[        X[UUU5        [        R                  " [        R                  R                  X S35      5      nU H'  n[        SU 35        [        R                  " U5        M)     U(       ak  U(       a  [        U  S3US9nO[        U  S3US9n[        SU 35        [        USSS
S9 nUR                  S5        UR                  SU	 S35        S S S 5        S S S 5        [        U R!                  SS5       S3US9nU(       a  [        U	R!                  SS5       S3US9nOBU(       a  [        U R!                  SS5       S3US9nO[        U R!                  SS5       S3US9n[        SU 35        [        USS
S9 nUR                  [#        S[        R                  R%                  [        R                  R'                  U5      5      S     S!35      5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GNS= f! , (       d  f       GN== f! , (       d  f       GNG= f! , (       d  f       g = f)"Nz	.in.proto	onnx-dataFr   r   z.proto)r?   z.proto3zProcessing zutf-8)encodingzWriting w )newlinerN   r   )r7   r   r   r9   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
                )rG   r   r/   openreadwriteautogen_headerr=   LITE_OPTIONrB   rC   rE   r4   globr<   removereplacer   splitextbasename)rH   r   rI   rJ   rK   r)   proto_inr    	import_ml
proto_baser7   proto3finr6   fout
porto3_dirbase_dir	pb3_filespb3_fileproto_headerpb_pypb2_pyr>   s                          r   convertrj      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		"'',,z\;S"TUI%	(,-		(# & &$x'8H&$u~fEH\N+,lCgF$

+,

Z
|8<= G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			
 
,	+] <; =<, GFC 
*	)b 
,	+sd   +O,AN 8"OAN2&DO''OO;AO( 
N/	*O2
O	<O
O	O
O%(
O6c            
         [         R                  " SS9n U R                  SSSSS9  U R                  SS	S
SS9  U R                  SSS
SS9  U R                  SS[        R                  R                  [        R                  R                  [        5      5      SS9  U R                  SSSS9  U R                  SS/ SQSS9  U R                  5       n[        R                  R                  UR                  5      (       d   [        R                  " UR                  5        UR                   HC  n[        UUR                  UR                  UR                  UR                   UR"                  S9  ME     g )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)actionrn   z-lz--litez-generate lite proto to use with protobuf-litez-oz--outputz'output directory (default: %(default)s)z--protoc_pathrP   z)path to protoc for proto3 file validationstems*)r   zonnx-operatorsrM   z3list of .in.proto file stems (default: %(default)s))nargsrm   rn   )r   rI   rJ   rK   r)   )argparseArgumentParseradd_argumentrB   rC   rD   rE   rF   
parse_argsexistsrI   makedirsrq   rj   packager#   rK   r)   )parserargsrH   s      r   mainr}      s^   $$EF O	   f\	J
<	     !:;6	   *U   7B	   D77>>$++&&
DKK 

;;ww((	
 r5   __main__rA   )FFrP   )r	   N)"rt   rX   rB   rer1   textwrapr   typingr   r   rV   rW   r   compiler   r   r   strboolr   r   r   r   r$   r&   r'   r(   r4   intr=   rG   rj   r}   __name__ r5   r   <module>r      s  
   	 	   %  :::; jj!67 ZZ 45 x} t  * zz@AZZ 34 ::k"= =S =Xc] =  ZZ EF 34Xc] x} .&&#&&69&DG&UX&	&c #  C C #s #HSM #S # T

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

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