
    h                     \    S r SSKrSSKJs  Jr  SSKJr  S\S\S\4S jr\R                  r	g)zonnx version converter

This enables users to convert their models between different opsets within the
default domain ("" or "ai.onnx").
    N)
ModelProtomodeltarget_versionreturnc                 *   [        U [        5      (       d  [        S[        U 5       35      e[        U[        5      (       d  [        S[        U5       35      eU R                  5       n[        R                  " X!5      n[        R                  " U5      $ )a  Apply the version conversion on the serialized ModelProto.

Arguments:
    input (ModelProto): model
    target_version (int): target opset version

Returns:
    return (ModelProto) converted model

Raises Exceptions:
    RuntimeError when some necessary conversion is not supported

Supported adapters:
    - Add from Opset 7 to Opset 6
    - Add from Opset 6 to Opset 5
    - Add from Opset 6 to Opset 7
    - Add from Opset 5 to Opset 6
    - Mul from Opset 6 to Opset 7
    - Mul from Opset 7 to Opset 6
    - Mul from Opset 6 to Opset 5
    - Mul from Opset 5 to Opset 6
    - Gemm from Opset 7 to Opset 6
    - Gemm from Opset 6 to Opset 5
    - Gemm from Opset 6 to Opset 7
    - Gemm from Opset 5 to Opset 6
    - Relu from Opset 6 to Opset 5
    - Relu from Opset 5 to Opset 6
    - BatchNorm from Opset 7 to Opset 6
    - BatchNorm from Opset 6 to Opset 7
    - BatchNorm from Opset 6 to Opset 5
    - BatchNorm from Opset 5 to Opset 6
    - Concat from Opset 4 to Opset 3
    - Concat from Opset 3 to Opset 4
    - Reshape from Opset 5 to Opset 4
    - Reshape from Opset 4 to Opset 5
    - Sum from Opset 7 to Opset 8
    - Sum from Opset 8 to Opset 7
    - Sum from Opset 6 to Opset 5
    - Sum from Opset 5 to Opset 6
    - MaxPool from Opset 8 to Opset 7
    - MaxPool from Opset 7 to Opset 8
    - AveragePool from Opset 7 to Opset 6
    - AveragePool from Opset 6 to Opset 7
    - Dropout from Opset 7 to Opset 6
    - Dropout from Opset 6 to Opset 5
    - Dropout from Opset 6 to Opset 7
    - Dropout from Opset 5 to Opset 6
    - RNN from Opset 13 to Opset 14
    - RNN from Opset 14 to Opset 13
    - GRU from Opset 13 to Opset 14
    - GRU from Opset 14 to Opset 13
    - LSTM from Opset 13 to Opset 14
    - LSTM from Opset 14 to Opset 13

Unsupported adapters:
    - Min from Opset 8 to Opset 7
    - Min from Opset 7 to Opset 8
    - Min from Opset 6 to Opset 5
    - Min from Opset 5 to Opset 6
    - Mean from Opset 8 to Opset 7
    - Mean from Opset 7 to Opset 8
    - Mean from Opset 6 to Opset 5
    - Mean from Opset 5 to Opset 6
    - Max from Opset 8 to Opset 7
    - Max from Opset 7 to Opset 8
    - Max from Opset 6 to Opset 5
    - Max from Opset 5 to Opset 6
    - Xor from Opset 6 to Opset 7
    - Xor from Opset 7 to Opset 6
    - Upsample from Opset 6 to Opset 7
    - Upsample from Opset 7 to Opset 6
    - Sub from Opset 6 to Opset 7
    - Sub from Opset 7 to Opset 6
    - Sub from Opset 6 to Opset 5
    - Sub from Opset 5 to Opset 6
    - RNN from Opset 6 to Opset 7
    - RNN from Opset 7 to Opset 6
    - Pow from Opset 6 to Opset 7
    - Pow from Opset 7 to Opset 6
    - PRelu from Opset 6 to Opset 7
    - PRelu from Opset 7 to Opset 6
    - PRelu from Opset 6 to Opset 5
    - PRelu from Opset 5 to Opset 6
    - Or from Opset 6 to Opset 7
    - Or from Opset 7 to Opset 6
    - Less from Opset 6 to Opset 7
    - Less from Opset 7 to Opset 6
    - LSTM from Opset 6 to Opset 7
    - LSTM from Opset 7 to Opset 6
    - Greater from Opset 6 to Opset 7
    - Greater from Opset 7 to Opset 6
    - GRU from Opset 6 to Opset 7
    - GRU from Opset 7 to Opset 6
    - GRU from Opset 3 to Opset 2
    - GRU from Opset 2 to Opset 3
    - Equal from Opset 6 to Opset 7
    - Equal from Opset 7 to Opset 6
    - Div from Opset 6 to Opset 7
    - Div from Opset 7 to Opset 6
    - Div from Opset 6 to Opset 5
    - Div from Opset 5 to Opset 6
    - And from Opset 6 to Opset 7
    - And from Opset 7 to Opset 6
    - And from Opset 6 to Opset 5
    - And from Opset 5 to Opset 6
    - Tile from Opset 6 to Opset 5
    - Tile from Opset 5 to Opset 6
    - Sqrt from Opset 6 to Opset 5
    - Sqrt from Opset 5 to Opset 6
    - Sigmoid from opset 6 to opset 5
    - Sigmoid from opset 5 to opset 6
    - Selu from opset 6 to opset 5
    - Selu from opset 5 to opset 6
    - Reciprocal from opset 6 to opset 5
    - Reciprocal from opset 5 to opset 6
    - Neg from opset 6 to opset 5
    - Neg from opset 5 to opset 6
    - Log from opset 6 to opset 5
    - Log from opset 5 to opset 6
    - LeakyRelu from opset 6 to opset 5
    - LeakyRelu from opset 5 to opset 6
    - InstanceNormalization from opset 6 to opset 5
    - InstanceNormalization from opset 5 to opset 6
    - HardSigmoid from opset 6 to opset 5
    - HardSigmoid from opset 5 to opset 6
    - Floor from opset 6 to opset 5
    - Floor from opset 5 to opset 6
    - Exp from opset 6 to opset 5
    - Exp from opset 5 to opset 6
    - Elu from opset 6 to opset 5
    - Elu from opset 5 to opset 6
    - Clip from opset 6 to opset 5
    - Clip from opset 5 to opset 6
    - Ceil from opset 6 to opset 5
    - Ceil from opset 5 to opset 6
    - Cast from opset 6 to opset 5
    - Cast from opset 5 to opset 6
    - Abs from opset 6 to opset 5
    - Abs from opset 5 to opset 6
    - Split from opset 2 to opset 1
    - Split from opset 1 to opset 2
    - Pad from opset 2 to opset 1
    - Pad from opset 1 to opset 2
    - LpPool from opset 2 to opset 1
    - LpPool from opset 1 to opset 2
    - GlobalLpPool from opset 2 to opset 1
    - GlobalLpPool from opset 1 to opset 2
zCVersionConverter only accepts ModelProto as model, incorrect type: zEVersionConverter only accepts int as target_version, incorrect type: )

isinstancer   
ValueErrortypeintSerializeToStringCconvert_versiononnxload_from_string)r   r   	model_strconverted_model_strs       P/var/www/fran/franai/venv/lib/python3.13/site-packages/onnx/version_converter.pyr   r      s    j eZ((QRVW\R]Q^_
 	
 nc**STXYgThSij
 	
 '')I++IF  !455    )
__doc__r   )onnx.onnx_cpp2py_export.version_converteronnx_cpp2py_exportversion_converterr   r   r   r   ConvertError r   r   <module>r      sB     5 5 _6: _6s _6z _6D ~~r   