Ë
    ÝÍ:jH  ã                   ó\   — d dl mZ d dlmZmZ d dlmZ d dlmZ d dl	m
Z
 defd„Zdefd„Zy	)
é    )ÚNumpyHelper)Ú
ModelProtoÚTensorProto)Úset_external_data)Ú	OnnxModel)ÚOrtValueÚmodelc                 ó~  — g }t        | «      }|j                  «       D ]“  }|j                  D ]‚  }|j                  }|j	                  d«      sŒ!t        j                  |«      }t        j                  |«      }|j                  ||f«       t        |d¬«       ||_        |j                  d«       Œ„ Œ• t        |ddiŽS )a”  
    Extract external data from model and return the external data as a list of tuples (name, value).
    Note this function does not handle external data that is not loaded into the model as raw data.

    Args:
        model (ModelProto): the model proto to extract external data from.
    Returns:
        (external_names, external_values): a tuple of two lists of external data names and values.
    Úraw_datazfoo.bin)ÚlocationÚstrictF)r   ÚgraphsÚinitializerÚnameÚHasFieldr   Úto_arrayr   Úortvalue_from_numpyÚappendr   Ú
ClearFieldÚzip)r	   Úexternal_dataÚ
onnx_modelÚgraphr   r   Únumpy_tensorÚ	ort_values           úx/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/onnxruntime/transformers/onnx_utils.pyÚextract_raw_data_from_modelr      s¾   € ð €MÜ˜5Ó!€JØ×"Ñ"Ó$ò 3ˆØ ×,Ñ,ò 
	3ˆKØ×#Ñ#ˆDà×#Ñ# JÕ/Ü*×3Ñ3°KÓ@�Ü$×8Ñ8¸ÓF�	Ø×$Ñ$ d¨IÐ%6Ô7ä! +¸	ÕBØ#'�Ô Ø×&Ñ& zÕ2ñ
	3ð3ô �Ð, eÑ,Ð,ó    c                 óÊ   — t        | «      }|j                  «       D ]E  }|j                  D ]4  }|j                  d«      sŒ|j                  t
        j                  k(  sŒ3  y ŒG y)zÓ
    Check if the model has external data.

    Args:
        model (ModelProto): the model proto to check for external data.
    Returns:
        bool: True if the model has external data, False otherwise.
    Údata_locationTF)r   r   r   r   r    r   ÚEXTERNAL)r	   r   r   r   s       r   Úhas_external_datar"   )   se   € ô ˜5Ó!€JØ×"Ñ"Ó$ò ˆØ ×,Ñ,ò 	ˆKØ×#Ñ# OÕ4¸×9RÑ9RÔVa×VjÑVjÓ9jÚñ	ðð r   N)Úfusion_utilsr   Úonnxr   r   Úonnx.external_data_helperr   r   r   Úonnxruntimer   r   r"   © r   r   ú<module>r(      s.   ðõ
 %ß (Ý 7Ý  å  ð- zó -ð8˜Zô r   