
     TiV)                       S SK Jr  / SQrS SKrS SKrS SKJrJrJr  S SK	J
r
  S SKrS SKJrJrJrJr   " S S5      r\" 5       r\R&                  S	 5       r\R*                  " S
S9 " S S5      5       r\R*                  " S
S9 " S S5      5       r\R*                  " S
S9 " S S5      5       r    SS jr      SS jr\R*                   " S S5      5       rg)    )annotations)OpSignature	ParameterAttributeParameterTypeConstraintParamN)IteratorMappingSequence)Any)_core_enums
_protocolsserdec                      \ rS rSrSS jrSrg)_Empty   c                    g)N_EMPTY_DEFAULT selfs    N/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/onnx_ir/schemas.py__repr___Empty.__repr__   s        r   Nreturnstr)__name__
__module____qualname____firstlineno__r   __static_attributes__r   r   r   r   r      s     r   r   c                    [        [        R                   V s1 s H  n [        R                  " U 5      iM     sn [        R                   V s1 s H-  n [        R
                  " [        R                  " U 5      5      iM/     sn -  [        R                   V s1 s H-  n [        R                  " [        R                  " U 5      5      iM/     sn -  5      $ s  sn f s  sn f s  sn f N)	frozensetr   DataTyper   
TensorTypeSequenceTypeOptionalType)dtypes    r   _all_value_typesr,      s    .4oo>oU		%	 o>DJOO
TO55e..u56O
T	UDJOO
TO55e..u56O
T	U >
T
Ts    C4C
4C
T)frozenc                  |    \ rS rSr% SrS\S'   S\S'   SrS\S'   S	 rSS
 jr\	SSS jj5       r
\	SSS jj5       rSrg)r   (   zType constraint for a parameter.

Attributes:
    name: Name of the parameter. E.g. "TFloat"
    allowed_types: Allowed types for the parameter.
    description: Human-readable description of the type constraint.
r   namez"frozenset[_protocols.TypeProtocol]allowed_types descriptionc                    U R                   (       d  [        SU R                   S35      e[        U R                   [        5      (       d+  [
        R                  U S[	        U R                   5      5        g g )NzType constraint 'z&' must have at least one allowed type.r1   )r1   
ValueErrorr0   
isinstancer&   object__setattr__r   s    r   __post_init__!TypeConstraintParam.__post_init__6   s`    !!#DII;.TU  $,,i88t_i@R@R6ST 9r   c                h    SR                  S U R                   5       5      nU R                   SU 3$ )Nz | c              3  8   #    U  H  n[        U5      v   M     g 7fr%   r   ).0ts     r   	<genexpr>.TypeConstraintParam.__str__.<locals>.<genexpr>@   s     &J7I!s1vv7I   =)joinr1   r0   )r   allowed_types_strs     r   __str__TypeConstraintParam.__str__?   s4    !JJ&Jt7I7I&JJ))A/011r   c                R    U " U[        S [        R                   5       5      U5      $ )Nc              3  N   #    U  H  n[         R                  " U5      v   M     g 7fr%   )r   r(   )r>   r+   s     r   r@   1TypeConstraintParam.any_tensor.<locals>.<genexpr>F   s     QE,,U33s   #%)r&   r   r'   clsr0   r3   s      r   
any_tensorTypeConstraintParam.any_tensorC   s&    )QQQS^
 	
r   c                &    U " U[        5       U5      $ r%   )r,   rK   s      r   	any_valueTypeConstraintParam.any_valueI   s    4)+[99r   r   Nr   )r2   )r0   r   r3   r   r   r   )r   r    r!   r"   __doc____annotations__r3   r9   rF   classmethodrM   rP   r#   r   r   r   r   r   (   sQ     I55KU2 
 

 : :r   r   c                      \ rS rSr% SrS\S'   S\S'   S\S'   S\S	'   S
rS\S'   SrS\S'   \r	S\S'   SS jr
SS jrSS jrSS jrSrg)r   N   z"A formal parameter of an operator.r   r0   r   type_constraintboolrequiredvariadicThomogeneous   int	min_arityr   defaultc                    U R                   R                  nU R                  5       (       a  U R                   SU SU R                   3$ U R                   SU 3$ Nz: z = )rW   r0   has_defaultr_   r   type_strs     r   rF   Parameter.__str__[   sV    '',,ii[8*C~>>))Bxj))r   c                &    U R                   [        L$ r%   )r_   r   r   s    r   rb   Parameter.has_defaulta   s    ||>11r   c                    g)z_This parameter is an ONNX input or output parameter, as opposed to an ONNX attribute parameter.Tr   r   s    r   is_paramParameter.is_paramd       r   c                    gNFr   r   s    r   is_attributeParameter.is_attributeh       r   r   Nr   r   rX   )r   r    r!   r"   rR   rS   r[   r^   r   r_   rF   rb   ri   rn   r#   r   r   r   r   r   N   sL    ,
I((NNKIs!GS!*2r   r   c                  n    \ rS rSr% SrS\S'   S\S'   S\S'   S	rS
\S'   SS jrSS jrSS jr	SS jr
Srg	)r   l   zHA parameter in the function signature that represents an ONNX attribute.r   r0   z_enums.AttributeTypetyperX   rY   Nz_core.Attr | Noner_   c                    U R                   R                  nU R                  5       (       a  U R                   SU SU R                   3$ U R                   SU 3$ ra   )rt   r0   rb   r_   rc   s     r   rF   AttributeParameter.__str__u   sR    99>>ii[8*C~>>))Bxj))r   c                    U R                   S L$ r%   )r_   r   s    r   rb   AttributeParameter.has_default{   s    ||4''r   c                    grm   r   r   s    r   ri   AttributeParameter.is_param~   rp   r   c                    g)z_This parameter is an ONNX attribute parameter, as opposed to an ONNX input or output parameter.Tr   r   s    r   rn   AttributeParameter.is_attribute   rk   r   r   r   rq   )r   r    r!   r"   rR   rS   r_   rF   rb   ri   rn   r#   r   r   r   r   r   l   s4    R
I
N!%G%*(r   r   c                   U R                  S5      nUR                  S5      n[        R                  US   R	                  5          n[
        R                  " [        R                  R                  5      n[        USS 5       Hm  nUS:X  a  [
        R                  " U5      nM!  US:X  a  [
        R                  " U5      nM?  US:X  a  [
        R                  " U5      nM]  [        SU S	U  S
35      e   U$ )zConvert a type_str from ONNX OpSchema to _protocols.TypeProtocol.

A type str has the form of "tensor(float)" or composite type like "seq(tensor(float))".
)(NtensorseqoptionalzUnknown type part: 'z' in type '')rstripsplitr   r'   upperr   r(   	UNDEFINEDreversedr)   r*   r5   )rd   stripped
type_partsr+   type_	type_parts         r   _get_type_from_strr      s     s#H$J OOJrN0023E &+%5%5foo6O6O%PE j"o.	 $$U+E%&&u-E*$&&u-E3I;k(STUVV / Lr   c           	        U R                   U;   a  XR                      nO1[        U R                  [        [	        U R                   5      45      S9n[        U R                  UU R                  [        R                  R                  R                  R                  :g  U R                  [        R                  R                  R                  R                  :H  U R                  U R                  S9$ )z;Convert a formal parameter from ONNX OpSchema to Parameter.)r0   r1   )r0   rW   rY   rZ   r[   r^   )rd   r   r0   r&   r   r   optiononnxdefsOpSchemaFormalParameterOptionOptionalVariadicis_homogeneousr^   )paramtype_constraintsrW   s      r   _convert_formal_parameterr      s    
 ~~))*>>: .#%7%G$IJ
 ZZ'!3!3!I!I!R!RR!3!3!I!I!R!RR((// r   c                      \ rS rSr% SrS\S'   S\S'   S\S'   S\S'   S	\S
'   \R                  " SSS9rS\S'   Sr	S\S'   S r
 S     SS jjrSS jrSS jrS S jr\S!S j5       r\S"S j5       r\S#S j5       rSrg)$r      a  Schema for an operator.

Attributes:
    domain: Domain of the operator. E.g. "".
    name: Name of the operator. E.g. "Add".
    overload: Overload name of the operator.
    params: Input parameters. When the op is an ONNX function definition,
      the order is according to the function signature. This mean we can
      interleave ONNX inputs and ONNX attributes in the list.
    outputs: Output parameters.
    since_version: The version of the operator set. E.g. 1.
r   domainr0   overloadz(Sequence[Parameter | AttributeParameter]paramsSequence[Parameter]outputsF)initreprz,Mapping[str, Parameter | AttributeParameter]
params_mapr\   r]   since_versionc           	         0 nU R                    HV  nUR                  U;   a5  [        SUR                  < SU R                  < SU R                  < 35      eX!UR                  '   MX     Xl        g )NzDuplicate parameter name z in OpSignature ::)r   r0   r5   r   r   )r   r   r   s      r   r9   OpSignature.__post_init__   si    @B
[[EzzZ' /

~=M{{oR		}6  &+uzz" ! %r   Nc                8    U R                   R                  X5      $ r%   )r   get)r   r0   r_   s      r   r   OpSignature.get   s    
 ""411r   c                    XR                   ;   $ r%   r   )r   r0   s     r   __contains__OpSignature.__contains__   s    &&r   c                ,    [        U R                  5      $ r%   )iterr   r   s    r   __iter__OpSignature.__iter__   s    DKK  r   c           
        U R                   =(       d    SnU R                  (       a  SU R                   3OSnSR                  S U R                   5       5      nSR                  S U R                   5       5      n0 nU R                   H<  n[        U[        5      (       d  M  UR                  XVR                  R                  '   M>     U R                   H%  nUR                  XVR                  R                  '   M'     SR                  S UR                  5        5       5      nU SU R                   U SU S	U S
U 3
$ )Nz''r   r2   z, c              3  8   #    U  H  n[        U5      v   M     g 7fr%   r=   r>   r   s     r   r@   &OpSignature.__str__.<locals>.<genexpr>   s     ?;%3u::;rB   c              3  `   #    U  H$  n[        UR                  R                  5      v   M&     g 7fr%   )r   rW   r0   r   s     r   r@   r      s$     VC 5 5 : :;;s   ,.c              3  8   #    U  H  n[        U5      v   M     g 7fr%   r=   )r>   rW   s     r   r@   r      s      )
8Q_C  8QrB   r   z) -> (z) where )
r   r   rD   r   r   r6   r   rW   r0   values)r   r   r   r   r   r   r   type_constraints_strs           r   rF   OpSignature.__str__   s   $+/==R'b?4;;??))VVV[[E%++?D?T?T !6!6!;!;< ! \\E;@;P;P22778 "#yy )
8H8O8O8Q)
  
 DII;xj&yQePfggr   c                t    U R                    Vs/ s H  n[        U[        5      (       d  M  UPM     sn$ s  snf )zReturns the input parameters.)r   r6   r   r   r   s     r   inputsOpSignature.inputs   s)     $(;;O;%*UI2N;OOO   55c                t    U R                    Vs/ s H  n[        U[        5      (       d  M  UPM     sn$ s  snf )z!Returns the attribute parameters.)r   r6   r   r   s     r   
attributesOpSignature.attributes  s*     $(;;X;%*UDV2W;XXXr   c                $   UR                    Vs0 s HG  nUR                  [        UR                  [        S UR                   5       5      UR
                  S9_MI     nnUR                   Vs/ s H  n[        XC5      PM     nnUR                  R                  5        H  nUR                  b   [        R                  " UR                  5      OSnUb  UR                  Ul        UR                  [        UR                  [         R"                  " UR$                  5      UR&                  US95        M     UR(                   Vs/ s H  n[        XC5      PM     nnU " UR*                  UR                  SUUUR,                  S9$ s  snf s  snf s  snf )z-Produce an OpSignature from an ONNX OpSchema.c              3  8   #    U  H  n[        U5      v   M     g 7fr%   )r   )r>   rd   s     r   r@   -OpSignature.from_op_schema.<locals>.<genexpr>  s      (A]X&x00A]rB   )r0   r1   r3   N)r0   rt   rY   r_   r2   )r   r0   r   r   r   r   )r   type_param_strr   r&   allowed_type_strsr3   r   r   r   r   default_valuer   deserialize_attributer0   appendr   r   AttributeTypert   rY   r   r   r   )rL   	op_schema
constraintr   r   r   default_attrr   s           r   from_op_schemaOpSignature.from_op_schema  s    (88	
 9
 %%':..' (AKA]A](  '22(  9 	 	
 MVL\L\
L\5%e>L\ 	 
 ))002E &&2 ++E,?,?@ 
 '$)JJ!MM"--ejj9"^^(	 3& MVL]L]
L]5%e>L] 	 
 ###11
 	
K	

,
s   AF-FFr   r%   )r0   r   r_   %Parameter | AttributeParameter | Noner   r   )r0   r   r   rX   )r   z(Iterator[Parameter | AttributeParameter]r   )r   r   )r   zSequence[AttributeParameter])r   zonnx.defs.OpSchemar   r   )r   r    r!   r"   rR   rS   dataclassesfieldr   r   r9   r   r   r   rF   propertyr   r   rT   r   r#   r   r   r   r   r      s     K
IM44  ?J?P?P@J<  M3	% :>22 72 
/	2'!h  P P Y Y .
 .
r   r   )rd   r   r   z:_core.TensorType | _core.SequenceType | _core.OptionalType)r   z"onnx.defs.OpSchema.FormalParameterr   z!Mapping[str, TypeConstraintParam]r   r   )
__future__r   __all__r   	functoolscollections.abcr   r	   r
   typingr   r   onnx_irr   r   r   r   r   r   cacher,   	dataclassr   r   r   r   r   r   r   r   r   <module>r      s   #   7 7   4 4   
    d#": ": $":J d#  $: d#  $2?@-7 . y
 y
 y
r   