
    hH                     `    S SK Jr  S SKJrJr  S SKJr  S SKJr  S SK	J
r
  S\4S jrS\4S jrg	)
    )NumpyHelper)
ModelProtoTensorProto)set_external_data)	OnnxModel)OrtValuemodelc                    / n[        U 5      nUR                  5        H  nUR                   H  nUR                  nUR	                  S5      (       d  M'  [
        R                  " U5      n[        R                  " U5      nUR                  XW45        [        USS9  XTl        UR                  S5        M     M     [        USS06$ )ax  
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           ]/var/www/fran/franai/venv/lib/python3.13/site-packages/onnxruntime/transformers/onnx_utils.pyextract_raw_data_from_modelr      s     M5!J""$ ,,K##D##J//*33K@$88F	$$d%67!+	B#' &&z2 - % ,e,,    c                     [        U 5      nUR                  5        HO  nUR                   H<  nUR                  S5      (       d  M  UR                  [
        R                  :X  d  M;      g   MQ     g)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"   )   s^     5!J""$ ,,K##O449R9RVaVjVj9j - % 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   