
    ^h                     R    S SK r S SKrS SKJrJr  S SKrS rS rS r " S S5      rg)    N)datetimetimezonec                 <    SU ;   a  U S   OSSU ;   a  U S   S.$ SS.$ )Ncompletion_tokensr   prompt_tokens)
completionprompt )usages    U/home/james-whalen/.local/lib/python3.13/site-packages/litellm/integrations/lunary.pyparse_usager      s;    4G54Pe/0VW,;u,D%( JK     c                 J    U c  g S nU  Vs/ s H
  o!" U5      PM     sn$ s  snf )Nc                     U R                   U R                  U R                  R                  U R                  R                  S.S.nU$ )N)name	arguments)typeidfunction)r   r   r   r   r   )	tool_call
serializeds     r   clean_tool_call)parse_tool_calls.<locals>.clean_tool_call   sD     NN,,!**//&//99

 r   r
   )
tool_callsr   r   s      r   parse_tool_callsr      s0     9CC
9OI&
CCCs    c                    ^ U c  g U4S jm[        U [        5      (       a3  [        U 5      S:X  a  T" U S   5      $ U  Vs/ s H  nT" U5      PM     sn$ T" U 5      $ s  snf )Nc                   > [        U [        5      (       a  U $ SU ;   a  T" U S   5      $ U R                  S5      U R                  S5      S.nU R                  S5      (       a  [        U R                  S5      5      US'   U$ )Nmessagerolecontent)r   r    r   )
isinstancestrgetr   )r   r   clean_messages     r   r$   %parse_messages.<locals>.clean_message+   s}    gs##N !344 KK'{{9-

 ;;|$$'7L8Q'RJ|$r      r   )r!   listlen)inputmsgr$   s     @r   parse_messagesr+   &   sc    }& %u:? q**278%3M#&%88U## 9s   Ac                       \ rS rSrS r0 SSS\R                  " \R                  5      \R                  " \R                  5      S4S jr	Sr
g)LunaryLoggerG   c                 8    SS K n[        R                  R                  S5      n[        R                  R                  U5      [        R                  R                  S5      :  a  [        S5        [        eXl        g ! [         a    [        S5        [        ef = f)Nr   lunaryz0.1.43zXLunary version outdated. Required: >= 0.1.43. Upgrade via 'pip install lunary --upgrade'zBLunary not installed. Please install it using 'pip install lunary')	r0   	importlibmetadataversion	packagingVersionprintImportErrorlunary_client)selfr0   r3   s      r   __init__LunaryLogger.__init__I   s    	((00:G  ((1I4E4E4M4Mh4WWn "!!' 	T 		s   A:A= =BNc                 x    U" SU 35        S nUR                  S0 5      nUR                  S0 5      nUR                  S0 5      =(       d    0 nU(       a  0 UEUEnUR                  SS 5      nU(       aF  UR                  SS 5        UR                  SS 5        UR                  S0 5      R                  S	S 5      nUR                  5        HD  u  nn[        U[        [
        [        [        45      (       a  M-  US
:w  d  M5   [	        U5      UU'   MF     U
(       a$  SU
;   a  [        U
S   5      OS nSU
;   a  U
S   OS nOS nS nU(       a  SU0nOS nU R                  R                  USUU	U[        U5      UR                  [        R                  5      R!                  5       UUSUUS9  U R                  R                  UUUUR                  [        R                  5      R!                  5       SU[        U5      US9  g ! [         a     GM@  f = f! [         a!    U" S["        R$                  " 5        35         g f = f)Nz+Lunary Logging - Logging request for model litellm_paramsoptional_paramsr2   tags
extra_bodyuserextra_headerszTemplate-Idtoolsr   choicesstackstartlitellm)	user_idr   r)   	timestamptemplate_idr2   runtimer?   params)rI   rK   erroroutputtoken_usagezLunary Logging Error - )r#   popitemsr!   r"   intboolfloat	Exceptionr   r8   track_eventr+   
astimezoner   utc	isoformat	traceback
format_exc)r9   kwargsr   eventrun_idmodelprint_verboseextrar)   rH   response_obj
start_timeend_timerM   rJ   r=   r>   r2   r?   paramvaluer   rN   	error_objs                           r   	log_eventLunaryLogger.log_event\   sA    H	GwOPK#ZZ(8"=N$jj):B?O%))*b9?RH454O4<<-D		,-		&$'#ii<@@PTU !&u!%#sD%)@AAewFV'*5ze !.  ,.  W 56  5>4Mi0SW $e,	 	**$U+$//=GGI'!! +  **"--hll;EEG!%f-! + 	I % ^  	3I4H4H4J3KLM	s=   C1H 7H  G<C-H <
HH 
HH (H98H9)r8   )__name__
__module____qualname____firstlineno__r:   r   nowr   rX   rh   __static_attributes__r
   r   r   r-   r-   G   s>    6 <<-hll+Xr   r-   )	r1   rZ   r   r   r4   r   r   r+   r-   r
   r   r   <module>rp      s0      ' D($Bm mr   