ó
    Ð]j¸(  ã                  ó°  • S SK Jr  S SKrS SKrS SKrS SKrS SKJrJr  S SK	J
r
  S SKJr  S SKJrJr  S SKJrJrJrJrJrJr  S SKJr  S S	KJr  S S
KJr  S SKJr  S SKJ r J!r!  S SK"J#r#  SSK$J%r%J&r&  Sr' S"S jr(S#S jr)S$S jr*S%S jr+S%S jr,S%S jr-S&S jr.S&S jr/S&S jr0S'S jr1\!\ S/\%4   r2\S(S j5       r3S&S jr4S)S jr5S*S jr6\S+S  j5       r7S&S! jr8g),é    )ÚannotationsN)ÚMappingÚSequence)ÚDecimal)ÚEnum)ÚcacheÚ	lru_cache)ÚIPv4AddressÚIPv4InterfaceÚIPv4NetworkÚIPv6AddressÚIPv6InterfaceÚIPv6Network)Úchain)Ú	PosixPath)ÚPattern)ÚGeneratorType)ÚAnyÚCallable)ÚUUIDé   )Ú	JsonValueÚ	safe_repré
   úset[int]c                ó   • [        U 5      SS $ )züEncode bytes using repr() to get a string representation of the bytes object.

We remove the leading 'b' and the quotes around the string representation.

Examples:
    >>> print(b'hello')
    b'hello'
    >>> print(_bytes_encoder(b'hello'))
    hello
é   éÿÿÿÿ©Úrepr©ÚoÚ_seens     Ú[/home/mande/repo/quber/.venv/lib/python3.13/site-packages/logfire/_internal/json_encoder.pyÚ_bytes_encoderr%      s   € ô �‹7�1�Rˆ=Ðó    c                ó,   • [        [        U 5      U5      $ ©N)r%   Úbytes©r"   Úseens     r$   Ú_bytearray_encoderr,   '   s   € Üœ% ›( DÓ)Ð)r&   c                ó¼   •  [        U 5       Vs/ s H  n[        X!5      PM     sn$ s  snf ! [         a%    U  Vs/ s H  n[        X!5      PM     Os  snf sns $ f = fr(   )ÚsortedÚto_json_valueÚ	TypeError)r"   r+   Úitems      r$   Ú_set_encoderr2   +   sQ   € ð9Ü6<¸Q´iÓ@²i¨d”˜dÖ)±iÑ@Ð@ùÒ@øÜó 9Ù67Ó8²a¨d”˜dÖ)²aùÔ8Ò8ð9ús&   ‚, �'¤, §, ¬AºAÁ	AÁAc                ó"   • U R                  5       $ r(   )Ú	isoformatr!   s     r$   Ú_to_isoformatr5   2   s   € Ø�;‰;‹=Ðr&   c                ó   • [        U 5      $ r(   )Ústrr!   s     r$   Ú_to_strr8   6   s   € Üˆq‹6€Mr&   c                ó   • [        U 5      $ r(   r   r!   s     r$   Ú_to_reprr:   :   s   € Ü�‹7€Nr&   c           	     ó$  • SSK nUR                  S5      nUR                  S5      nUS-  n[        U R                  5      n/ n[        U 5      nXƒ:”  aL  US-  n	[	        U R                  U	5      R                  5       U R                  U	5      R                  5       5      n
OU R                  5       n
U
 HR  u  p¼Xd:”  a.  UR                  [        USU 5      [        XÅ* S 5      -   5        M8  UR                  [        U5      5        MT     [        Xq5      $ )a„  Encode pandas data frame by extracting important information.

It summarizes rows and columns if they are more than limit.
e.g. The data part of a data frame like:
[
    [1, 2, 3, 4, 5],
    [2, 3, 6, 8, 10],
    [3, 6, 9, 12, 15],
    [4, 8, 12, 16, 20],
    [5, 10, 15, 20, 25],
]
will be summarized to:
[
    [1, 2, 4, 5],
    [2, 3, 8, 10],
    [4, 8, 16, 20],
    [5, 10, 20, 25],
]
r   Nzdisplay.max_rowszdisplay.max_columnsr   )ÚpandasÚ
get_optionÚlenÚcolumnsr   ÚheadÚiterrowsÚtailÚappendÚlistr/   )r"   r+   r<   Úmax_rowsÚmax_columnsÚ
col_middleÚcolumn_countÚrowsÚ	row_countÚ
row_middleÚdf_rowsÚ_Úrows                r$   Ú_pandas_data_frame_encoderrO   >   sð   € ó( à× Ñ Ð!3Ó4€HØ×#Ñ#Ð$9Ó:€Kà Ñ!€JÜ�q—y‘y“>€Là€DÜ�A“€IàÓØ ‘]ˆ
Ü˜Ÿ™˜zÓ*×3Ñ3Ó5°q·v±v¸jÓ7I×7RÑ7RÓ7TÓU‰à—*‘*“,ˆã‰ˆØÓ%Ø�K‰Kœ˜S  *Ð-Ó.´°c¸+¸,Ð6GÓ1HÑHÖIà�K‰Kœ˜S›	Ö"ñ	 ô ˜Ó$Ð$r&   c                ó¾  • SSK nU R                  nU R                  n[        XR                  5      (       a  U R
                  n [        U5       Hs  nX5   [        ::  a  M  [        S-  n[        S5      /U-  n[        SU5      Xu'   U [        U5         n[        U* S5      Xu'   U [        U5         n	UR                  X‰4US9n Mu     [        U R                  5       U5      $ )a~  Encode numpy array by extracting important information.

It summarizes rows and columns if they are more than limit.
e.g. The data part of a data frame like:
[
    [1, 2, 3, 4, 5],
    [2, 3, 6, 8, 10],
    [3, 6, 9, 12, 15],
    [4, 8, 12, 16, 20],
    [5, 10, 15, 20, 25],
]
will be summarized to:
[
    [1, 2, 4, 5],
    [2, 3, 8, 10],
    [4, 8, 16, 20],
    [5, 10, 20, 25],
]
r   Nr   )Úaxis)ÚnumpyÚshapeÚndimÚ
isinstanceÚmatrixÚAÚrangeÚNUMPY_DIMENSION_MAX_SIZEÚsliceÚtupleÚconcatenater/   Útolist)
r"   r+   rR   rS   Ú
dimensionsÚ	dimensionÚhalfÚslicesÚfrontÚends
             r$   Ú_numpy_array_encoderrd   l   sÐ   € ó* à�G‰G€EØ—‘€Jä�!—\‘\×"Ñ"Ø�C‰Cˆä˜:Ö&ˆ	ØÑÔ7Ó7Ùä'¨1Ñ,ˆä˜“+� Ñ+ˆÜ! ! T›NˆÑØ”%˜“-Ñ ˆä! 4 %¨Ó.ˆÑØ”�f“ÑˆØ×Ñ˜u˜l°ÐÐ;Šñ 'ô ˜Ÿ™› TÓ*Ð*r&   c                ó  • SS K n[        XR                  5      (       d   e[        XR                  5      (       a  [	        U R
                  U5      $  U R                  5       n[	        X15      $ ! [         a    U R                  5       n N'f = f©Nr   )	ÚpydanticrU   Ú	BaseModelÚ	RootModelr/   ÚrootÚ
model_dumpÚAttributeErrorÚdict)r"   r+   rg   Údumps       r$   Ú_pydantic_model_encoderro   š   sw   € Ûä�a×+Ñ+×,Ñ,Ð,Ð,ä�!×'Ñ'×(Ñ(Ü˜QŸV™V TÓ*Ð*ðØ�|‰|‹~ˆô ˜Ó$Ð$øô ó à�v‰v‹xŠðús   ÁA- Á-B
Â	B
c           
     óh  • [        U 5      (       d  g  SSKJnJn   U" U 5      nUR
                  n[        U R                  R                  R                  5        Vs0 s H  ofXe;  a  [        X5      OS_M     snU5      $ ! UR                   a     g f = f! [         a    [        5       n N{f = fs  snf )Nr   )ÚexcÚinspectz
<deferred>)Úis_sqlalchemyÚ
sqlalchemyrq   rr   ÚNoInspectionAvailableÚunloadedÚModuleNotFoundErrorÚsetr/   Ú
__mapper__ÚattrsÚkeysÚgetattr)r"   r+   rq   Ú
sa_inspectÚstateÚdeferredÚfields          r$   Ú_get_sqlalchemy_datar�   ª   s²   € Ü˜×ÑØð	ß9ð	Ù˜q“MˆEð —>‘>ˆô ØZ[×ZfÑZf×ZlÑZl×ZqÑZqÔZsÓtÒZsÐQV UÓ%:”˜Ô!ÀÒ	LÑZsÑtØóð øð ×(Ñ(ó 	Ùð	ûô ó Ü“5Šðüò 	us9   “B œA? ¤B ÁB/Á?BÂB ÂBÂB ÂB,Â+B,c                 óÒ  • 0 [         [        _[        [        _[        [        _[
        [        _[        R                  [        _[        R                  [        _[        R                  [        _[        R                  S _[        [        _[        S _[        [         _["        [        _[$        [        _[&        [        _[(        [        _[*        [        _[,        [        _[.        [        [0        S [2        [        [4        [        0En [6        R8                  " [:        5         SS KnSS KnU RA                  URB                  [        URD                  [        URF                  [        URH                  [        URJ                  [        URL                  [N        05        S S S 5        [6        R8                  " [:        5         SS K(nU RA                  URR                  [T        05        S S S 5        [6        R8                  " [:        5         SS K+nU RA                  URX                  [Z        05        S S S 5        U $ ! , (       d  f       N = f! , (       d  f       Ni= f! , (       d  f       U $ = f)Nc                ó"   • U R                  5       $ r(   )Útotal_seconds)r"   rM   s     r$   Ú<lambda>Ú!encoder_by_type.<locals>.<lambda>Ë   s   € ¨¯©Ô):r&   c                ó.   • [        U R                  U5      $ r(   )r/   Úvaluer*   s     r$   r…   r†   Í   s   € œm¨A¯G©G°TÔ:r&   c                ó.   • [        U R                  U5      $ r(   )r/   Úpatternr*   s     r$   r…   r†   Ö   s   € ¤¨q¯y©y¸$Ô!?r&   r   ).rx   r2   Ú	frozensetr)   r%   Ú	bytearrayr,   ÚdatetimeÚdater5   ÚtimeÚ	timedeltar   r8   r   r   r:   r
   r   r   r   r   r   r   r   r   Ú	ExceptionÚ
contextlibÚsuppressrw   rg   Úpydantic_coreÚupdateÚAnyUrlÚUrlÚ	NameEmailÚSecretBytesÚ	SecretStrrh   ro   r<   Ú	DataFramerO   rR   Úndarrayrd   )Úlookuprg   r”   r<   rR   s        r$   Úencoder_by_typerž   Á   sû  € ð0ÜŒ\ð0ä”<ð0ô 	Œ~ð0ô 	Ô%ð	0ô
 	�‰”}ð0ô 	×Ñœ=ð0ô 	�‰”}ð0ô 	×ÑÑ:ð0ô 	”ð0ô 	Ñ:ð0ô 	”xð0ô 	”Wð0ô 	”wð0ô 	”Wð0ô 	”Wð0ô  	”wð!0ô" 	”Wð#0ô$ 	”7ÜÑ?ÜŒgÜ”7ñ+0€Fô. 
×	Ò	Ô0Õ	1ÛÛà�‰à—‘¤Ø×!Ñ!¤7Ø×"Ñ"¤GØ×$Ñ$¤gØ×"Ñ"¤GØ×"Ñ"Ô$;ðô		
÷	 
2ô 
×	Ò	Ô0Õ	1Ûà�‰�v×'Ñ'Ô)CÐDÔE÷ 
2ô 
×	Ò	Ô0Õ	1Ûà�‰�u—}‘}Ô&:Ð;Ô<÷ 
2ð
 €M÷1 
2Õ	1ú÷ 
2Õ	1ú÷ 
2Ô	1ð
 €Mús%   Ä!A:H5Æ=&IÈ&IÈ5
IÉ
IÉ
I&c           
     ó.  •  [        U [        [        [        [        [        S 5      45      (       a  U $ [        U 5      U;   a  gUR                  5       nUR                  [        U 5      5        [        U [        [        45      (       a  U  Vs/ s H  n[        X!5      PM     sn$ [        U [        5      (       aO  U R                  5        VVs0 s H1  u  p4[        U[        5      (       a  UO
[        U5      [        XA5      _M3     snn$ [        X5      nUb  U$ [         R"                  " U 5      (       aa  [         R$                  " U 5       Vs0 s H?  ofR&                  (       d  M  UR(                  [        [+        XR(                  5      U5      _MA     sn$ [-        U R.                  5      (       a  [1        X5      $ U R.                  R2                  S S  H  n [5        5       U   nU" X5      s  $    [        U [8        5      (       a  U  Vs/ s H  n[        X!5      PM     sn$  [        U 5      R;                  U 5      n	[        X‘5      $ s  snf s  snnf s  snf ! [6         a     M‘  f = fs  snf ! [<         a     Of = f! [<         a     Of = f[        U 5      $ )Nz<circular reference>r   )rU   ÚintÚfloatr7   ÚboolÚtypeÚidÚcopyÚaddrD   r[   r/   r   Úitemsr   r�   ÚdataclassesÚis_dataclassÚfieldsr    Únamer|   Úis_attrsÚ	__class__Ú_get_attrs_dataÚ__mro__rž   ÚKeyErrorr   Úto_dictr‘   )
r"   r+   r1   Úkeyrˆ   Úsa_dataÚfÚbaseÚencoderr±   s
             r$   r/   r/   õ   s<  € ð1Ü�aœ#œu¤c¬4´°d³Ð<×=Ñ=ØˆHäˆa‹5�D‹=Ø)à�y‰y‹{ˆØ�‰”�A“Œä�aœ$¤˜×'Ñ'á:;Ó<º!°$”M $Ö-¹!Ñ<Ð<Ü˜œ7×#Ñ#ð #$§'¡'¤)ôâ"+‘J�Cô " #¤s×+Ñ+‘´¸3³ÄÈuÓA[Ò[Ù"+òð ô
 ' qÓ/ˆØÑØˆNÜ×%Ò% a×(Ñ(ÜMX×M_ÒM_Ð`aÔMbÓmÒMbÈ×flÕflÓC�A—F‘FœM¬'°!·V±VÓ*<¸dÓCÒCÑMbÑmÐmÜ�a—k‘k×"Ñ"Ü" 1Ó+Ð+ð —K‘K×'Ñ'¨¨Ó,ˆDð(Ü)Ó+¨DÑ1�ñ ˜qÓ'Ò'ñ -ô �aœ×"Ñ"Ù:;Ó<º!°$”M $Ö-¹!Ñ<Ð<ð	0ô ˜1“g—o‘o aÓ(ˆGô ! Ó/Ð/ùòE =ùóùò nøô ó Úðüò =øô ó 	Ùð	ûô
 ó Ùðúô �Q‹<ÐsÅ   ‚0I< ³I< ÁA	I< ÂIÂ!I< Â$(I< Ã8IÄI< ÄI< Ä3I< ÅIÅ#.IÆI< Æ$I< Æ9I< ÇIÇ#	I< Ç-I< ÈI'ÈI< È!I, È;
I< ÉI< É
I$É I< É#I$É$I< É,
I9É6I< É8I9É9I< É<
J	ÊJ	c                ó¤   •  [         R                  " U S SSS9$ ! [         a+    [         R                  " [        U [	        5       5      SSS9s $ f = f)Nc                ó*   • [        U [        5       5      $ r(   )r/   rx   )r"   s    r$   r…   Ú$logfire_json_dumps.<locals>.<lambda>/  s   € ´¸qÄ#Ã%Ô1Hr&   )Ú,Ú:F)ÚdefaultÚ
separatorsÚensure_ascii)r½   r¾   )ÚjsonÚdumpsr‘   r/   rx   )Úobjs    r$   Úlogfire_json_dumpsrÂ   -  sP   € ð`Ü�zŠz˜#Ñ'HÐU_ÐnsÑtÐtøÜó `ô �zŠzœ-¨¬S«UÓ3À
ÐY^Ñ_Ò_ð`ús   ‚ š2AÁAc                ó¨   •  [        U S5      (       d  gSSKJnJn  [	        X5      =(       d    [	        U R
                  U5      $ ! [         a     gf = f)Nry   Fr   )ÚDeclarativeBaseÚDeclarativeMeta)ÚhasattrÚsqlalchemy.ormrÄ   rÅ   rU   r­   r‘   )rÁ   rÄ   rÅ   s      r$   rs   rs   6  sI   € ðÜ�s˜L×)Ñ)ð çCä˜#Ó/×]´:¸c¿m¹mÈ_Ó3]Ð]øÜó Ùðús   ‚A ”/A Á
AÁAc                óN   •  SS K nUR                  U 5      $ ! [         a     gf = f)Nr   F)rz   Úhasrw   )Úclsrz   s     r$   r¬   r¬   E  s*   € ðÛà�y‰y˜‹~ÐøÜó Ùðús   ‚ —
$£$c           
     óº   • SS K nUR                  U R                  5       Vs0 s H,  o3R                  [	        [        XR                  5      U5      _M.     sn$ s  snf rf   )rz   rª   r­   r«   r/   r|   )r"   r+   rz   r´   s       r$   r®   r®   O  sF   € ÛàEJÇ\Á\ÐRS×R]ÑR]ÔE^Ó_ÒE^À�F‰F”M¤'¨!¯V©VÓ"4°dÓ;Ò;ÑE^Ñ_Ð_ùÒ_s   ¢3A)r"   r)   r#   r   Úreturnr7   )r"   rŒ   r+   r   rÌ   r7   )r"   zset[Any]r+   r   rÌ   r   )r"   r   r#   r   rÌ   r7   )r"   r   r+   r   rÌ   r   )r"   r   r+   r   rÌ   zJsonValue | None)rÌ   z dict[type[Any], EncoderFunction])rÁ   r   rÌ   r7   )rÁ   r   rÌ   r¢   )rÊ   r£   rÌ   r¢   )9Ú
__future__r   r’   r¨   r�   r¿   Úcollections.abcr   r   Údecimalr   Úenumr   Ú	functoolsr   r	   Ú	ipaddressr
   r   r   r   r   r   Ú	itertoolsr   Úpathlibr   Úrer   Útypesr   Útypingr   r   Úuuidr   Úutilsr   r   rY   r%   r,   r2   r5   r8   r:   rO   rd   ro   r�   ÚEncoderFunctionrž   r/   rÂ   rs   r¬   r®   © r&   r$   Ú<module>rÜ      sÎ   ðÝ "ã Û Û Û ß -Ý Ý ß &ß f× fÝ Ý Ý Ý ß  Ý ç 'àÐ Ø 7ôô*ô9ôôôô+%ô\++ô\%ô ð( ˜C Ð,¨iÐ7Ñ8€ð ó0ó ð0ôf5ôp`ôð óó ðõ`r&   