Ë
    uPêjÙ
  ã                   ól   — d dl mZmZ d dlmZmZ dedefd„Zdede	de
fd„Zdede	defd	„Zdedefd
„Zy)é    )ÚAnyÚFinal)Ú
ImageUsageÚImageUsageInputTokensDetailsÚdetailsÚreturnc                 ón   — | j                  d| j                  dd«      «      }t        |t        «      r|S dS )NÚ
tokenCountÚtoken_countr   )ÚgetÚ
isinstanceÚint)r   Úraw_token_counts     ús/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/gemini/image_usage_transformation.pyÚ_get_token_countr      s2   € Ø$Ÿ[™[¨°w·{±{À=ÐRSÓ7TÓU€OÜ(¨¼#Ô>ˆ?ÐEÀAÐEó    Úusage_metadataÚdetails_keysc                 ó^   — |D ]'  }| j                  |«      }t        |t        «      sŒ%|c S  g S )N)r   r   Úlist)r   r   Údetails_keyr   s       r   Ú_get_modality_token_detailsr      s7   € Ø#ò ˆØ ×$Ñ$ [Ó1ˆÜ�gœtÕ$ØŠNðð €Ir   c                 ó8  — t        dd¬«      }t        | g|¢­Ž D ]}  }t        |t        «      sŒt	        |j                  dd«      «      j                  «       }t        |«      }|dk(  r|xj                  |z  c_        Œc|dk(  sŒi|xj                  |z  c_	        Œ |S )Nr   )Úimage_tokensÚtext_tokensÚmodalityÚ ÚTEXTÚIMAGE)
r   r   r   ÚdictÚstrr   Úupperr   r   r   )r   r   Útokens_detailsr   r   r   s         r   Ú_sum_modality_token_detailsr$      s™   € Ü8ØØô€Nô
 /¨~ÐMÀÒMò ;ˆÜ�gœtÕ$Ü˜7Ÿ;™; z°2Ó6Ó7×=Ñ=Ó?ˆHÜ*¨7Ó3ˆKØ˜6Ò!Ø×*Ò*¨kÑ9Ö*Ø˜WÓ$Ø×+Ò+¨{Ñ:Ö+ð;ð Ðr   c           
      óÒ  — t        | dd«      }| j                  dd«      }t        | dd«      }t        | dd«      s||_        n6|j                  |j                  z   }||kD  r|xj                  ||z
  z  c_        | j                  dd«      ||| j                  dd«      | j                  dd«      |j                  «       ||j                  «       |j                  «       d	œ	}t        d
i |¤ŽS )z>
    Transform Gemini usageMetadata to ImageUsage format.
    ÚpromptTokensDetailsÚprompt_tokens_detailsÚcandidatesTokenCountr   ÚcandidatesTokensDetailsÚcandidates_tokens_detailsÚpromptTokenCountÚtotalTokenCount)	Úinput_tokensÚinput_tokens_detailsÚoutput_tokensÚtotal_tokensÚprompt_tokensr'   Úcompletion_tokensÚcompletion_tokens_detailsÚoutput_tokens_details© )r$   r   r   r   r   Ú
model_dumpr   )r   r.   r/   r4   Úknown_output_tokensÚusage_payloads         r   Útransform_gemini_image_usager9   %   s  € ô 7°~ÐG\Ð^uÓvÐØ)×-Ñ-Ð.DÀaÓH€MÜ#>ØÐ1Ð3Nó$Ðô ' ~Ð7PÐRmÔnØ-:ÐÕ*à%:×%FÑ%FÐI^×IkÑIkÑ%kÐØÐ.Ò.Ø!×-Ò-°ÐATÑ1TÑTÕ-ð '×*Ñ*Ð+=¸qÓAØ 4Ø&Ø&×*Ñ*Ð+<¸aÓ@Ø'×+Ñ+Ð,>ÀÓBØ!5×!@Ñ!@Ó!BØ*Ø%:×%EÑ%EÓ%GØ!6×!AÑ!AÓ!Cñ
,€Mô Ñ&˜Ñ&Ð&r   N)Útypingr   r   Úlitellm.types.utilsr   r   r    r   r   r!   r   r   r$   r9   r5   r   r   ú<module>r<      si   ðß ç HðF˜dð F só Fð
°ð ÀSð ÈTó ð°ð ÀSð ÐMió ð$'°ð '¸*ô 'r   