+
    NV-jV$  ã                  ó  € R t ^ RIHt ^ RIHtHt ^ RIt^ RIt^ RIt^ RI	t	^ RI
HtHt ^ RIt^ RIHt ^ RIHtHtHt ^ RIt^ RIHtHt ^ RIHtHt ]'       d   ^ R	IHt ^ R
IH t   ! R R]4      t! ! R R]4      t"R R lt#R# )a¦  
Test extension array for storing nested data in a pandas container.

The JSONArray stores lists of dictionaries. The storage mechanism is a list,
not an ndarray.

Note
----
We currently store lists of UserDicts. Pandas has a few places
internally that specifically check for dicts, and does non-scalar things
in that case. We *want* the dictionaries to be treated as scalars, so we
hack around pandas by using UserDicts.
)Úannotations)ÚUserDictÚabcN)ÚTYPE_CHECKINGÚAny)Ú'construct_1d_object_array_from_listlike)Úis_bool_dtypeÚis_list_likeÚpandas_dtype)ÚExtensionArrayÚExtensionDtype)Úgetitem_returns_viewÚunpack_tuple_and_ellipses)ÚMapping)Útype_tc                  óX   € ] tR t^7t$ ]P
                  tRt]! 4       t	R]
R&   R R ltRtR# )Ú	JSONDtypeÚjsonzMapping[str, Any]Úna_valuec               ó   € V ^8„  d   QhRR/# )é   Úreturnztype_t[JSONArray]© )Úformats   "Úr/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/pandas/tests/extension/json/array.pyÚ__annotate__ÚJSONDtype.__annotate__<   s   € ÷ ñ Ð&7ñ ó    c                ó   € \         # )zI
Return the array type associated with this dtype.

Returns
-------
type
)Ú	JSONArray©Úselfs   &r   Úconstruct_array_typeÚJSONDtype.construct_array_type<   s
   € ô Ðr   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   ÚtypeÚnamer   r   Ú__annotations__r"   Ú__static_attributes__r   r   r   r   r   7   s'   ‡ Ø�;‰;€DØ€DÙ"*£*€HÐÓ,÷ñ r   r   c                  ó  a € ] tR t^Gt]! 4       tRtR!R R llt]RRRR/R l4       t	]R	 4       t
R
 tR tR R ltR R ltR tR tR"R lt]R R l4       tR tR#R ltR tR$R ltR t]R 4       tR tR tRRRR/V 3R lltR tV ;t# )%r   iè  NFc               ó   € V ^8„  d   QhRR/# ©r   r   ÚNoner   )r   s   "r   r   ÚJSONArray.__annotate__K   s   € ÷ -ñ -¸$ñ -r   c                	óü   € V FW  p\        W@P                  P                  4      '       d   K*  \        R \	        V P                  P                  4      ,           4      h	  Wn        V P
                  ;V n        V n        R# )zAll values must be of type N)Ú
isinstanceÚdtyper(   Ú	TypeErrorÚstrÚdataÚ_itemsÚ_data)r!   Úvaluesr3   ÚcopyÚvals   &&&& r   Ú__init__ÚJSONArray.__init__K   sX   € ÛˆCÜ˜c§:¡:§?¡?×3Ô3ÜÐ =ÄÀDÇJÁJÇOÁOÓ@TÕ TÓUÐUñ ð Œ	ð $(§9¡9Ð,ˆŒ�d–jr   r3   r:   c               	ó   € V ! V4      # ©Nr   )ÚclsÚscalarsr3   r:   s   &&$$r   Ú_from_sequenceÚJSONArray._from_sequenceX   s   € á�7‹|Ðr   c                	ó^   € T ! V Uu. uF  q3R8w  g   K  \        V4      NK  	  up4      # u upi )Nr   )r   )r@   r9   ÚoriginalÚxs   &&& r   Ú_from_factorizedÚJSONArray._from_factorized\   s)   € á©Ó;© A¸±7”K”H˜Q–K©Ñ;Ó<Ð<ùÒ;s   ‡*”*c                	óæ   €  \        V 4      P                  WP                  R 7      #   \        \        3 d9    ^ RIHp \        P                  ! T\        R 7      pTP                  TRR7      u # i ; i)©r3   )ÚlibT)Úconvert_non_numeric)r(   rB   r3   Ú
ValueErrorr4   Úpandas._libsrK   ÚnpÚasarrayÚobjectÚmaybe_convert_objects)r!   r9   rK   s   && r   Ú_cast_pointwise_resultÚ JSONArray._cast_pointwise_result`   sc   € ð	OÜ˜“:×,Ñ,¨V¿:¹:Ð,ÓFÐFøÜœIÐ&ô 	Oå(ä—Z’Z ¬fÔ5ˆFØ×,Ñ,¨VÈÐ,ÓNÒNð	Oús   ‚$' §AA0Á/A0c                	óà  € \        V\        4      '       d   \        V4      p\        V\        P                  4      '       d   V P
                  V,          # \        V\        4      '       d?   V\        R 4      8X  d/   \        V 4      ! V P
                  4      pV P                  Vn        V# \        V\        4      '       dG   \        V 4      ! V P
                  V,          4      p\        W4      '       d   V P                  Vn        V# \        V4      '       g   \        R4      h\        P                  P                  P                  W4      p\!        VP"                  4      '       dP   \        V 4      P%                  \'        WRR7       UUu. uF  w  r4V'       g   K  VNK  	  uppV P"                  R7      # \        V 4      ! V Uu. uF  qPP
                  V,          NK  	  up4      # u uppi u upi )Nzuonly integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indicesT©ÚstrictrJ   )r2   Útupler   ÚnumbersÚIntegralr6   Úslicer(   Ú	_readonlyr   r	   Ú
IndexErrorÚpdÚapiÚindexersÚcheck_array_indexerr   r3   rB   Úzip)r!   ÚitemÚresultrF   ÚmÚis   &&    r   Ú__getitem__ÚJSONArray.__getitem__j   ss  € Ü�dœE×"Ò"Ü,¨TÓ2ˆDä�dœG×,Ñ,×-Ò-Ø—9‘9˜T•?Ð"Ü˜œe×$Ò$¨´°t³Ô)<ä˜$”Z §	¡	Ó*ˆFØ#Ÿ~™~ˆFÔØˆMÜ˜œe×$Ò$ä˜$”Z §	¡	¨$¥Ó0ˆFÜ# D×/Ò/Ø#'§>¡>�Ô ØˆMÜ˜d×#Ò#ô ðLóð ô
 —6‘6—?‘?×6Ñ6°tÓBˆDÜ˜TŸZ™Z×(Ò(Ü˜D“z×0Ñ0Ü#& t¸$Õ#?ÔEÑ#?™4˜1Ä1—Q�QÑ#?ÒEÈTÏZÉZð 1ó ð ô ˜”:±TÓ:±T°Ÿy™y¨Ÿ|˜|±TÑ:Ó;Ð;ùó Fùò ;s   Æ	G%
ÆG%
ÇG+c               ó   € V ^8„  d   QhRR/# r.   r   )r   s   "r   r   r0   ‹   s   € ÷ %ñ %¨ñ %r   c                	óâ  € V P                   '       d   \        R 4      h\        V\        P                  4      '       d   W P
                  V&   R# \        V\        V 4      \        P                  34      '       g   \        P                  ! V.4      p\        V\        P                  4      '       du   VP                  R8X  dd   \        \        WRR7      4       FG  w  pw  rEV'       g   K  \        WPP                  P                  4      '       g   Q hWPP
                  V&   KI  	  R# \        WRR7       F:  w  rE\        WPP                  P                  4      '       g   Q hWPP
                  V&   K<  	  R# )zCannot modify read-only arrayÚboolFrV   N)r\   rM   r2   rY   rZ   r6   r(   r   ÚSequenceÚ	itertoolsÚcyclerO   Úndarrayr3   Ú	enumeraterb   )r!   ÚkeyÚvaluerf   ÚkÚvs   &&&   r   Ú__setitem__ÚJSONArray.__setitem__‹   sú   € Ø�>�>ˆ>ÜÐ<Ó=Ð=ä�cœ7×+Ñ+×,Ò,Ø"�I‰I�c‹Nä˜e¤d¨4£j´#·,±,Ð%?×@Ò@ä!Ÿš¨¨Ó0�ä˜#œrŸz™z×*Ò*¨s¯y©y¸FÔ/Bä!*¬3¨sÀ%Ô+HÖ!I‘I�A‘v˜ß‘qÜ)¨!¯Z©Z¯_©_×=Ò=Ð=Ð=Ø'(Ÿ	™	 !›ó "Jô
   °5×9‘D�AÜ% a¯©¯©×9Ò9Ð9Ð9Ø#$—I‘I˜a“Ló :r   c               ó   € V ^8„  d   QhRR/# ©r   r   Úintr   )r   s   "r   r   r0   ¡   s   € ÷ ñ ˜ñ r   c                	ó,   € \        V P                  4      # r?   )Úlenr6   r    s   &r   Ú__len__ÚJSONArray.__len__¡   s   € Ü�4—9‘9‹~Ðr   c                	ó   € \         # r?   ©ÚNotImplemented©r!   Úothers   &&r   Ú__eq__ÚJSONArray.__eq__¤   ó   € ÜÐr   c                	ó   € \         # r?   r   r�   s   &&r   Ú__ne__ÚJSONArray.__ne__§   r…   r   c                	ó  € VR J d   \        R4      hVf   \        pV\        8X  d   \        \        V 4      4      # Vf#   \        P
                  ! V P                  VR7      # \        P
                  ! V P                  WR7      # )Fz:Unable to avoid copy while creating an array as requested.rJ   ©r3   r:   )rM   rQ   r   ÚlistrO   rP   r6   )r!   r3   r:   s   &&&r   Ú	__array__ÚJSONArray.__array__ª   sj   € Ø�5‹=ÜØLóð ð Š=ÜˆEØ”FŒ?ä:¼4À»:ÓFÐFØŠ<ä—:’:˜dŸi™i¨uÔ5Ð5Ü�zŠz˜$Ÿ)™)¨5Ô<Ð<r   c               ó   € V ^8„  d   QhRR/# rx   r   )r   s   "r   r   r0   º   s   € ÷ (ñ (˜ñ (r   c                	óB   € \         P                  ! V P                  4      # r?   )ÚsysÚ	getsizeofr6   r    s   &r   ÚnbytesÚJSONArray.nbytes¹   s   € ä�}Š}˜TŸY™YÓ'Ð'r   c                	ó¤   € \         P                  ! V P                   Uu. uF  qV P                  P                  8H  NK  	  up\
        R 7      # u upi )rJ   )rO   Úarrayr6   r3   r   rk   )r!   rF   s   & r   ÚisnaÚJSONArray.isna½   s6   € Ü�xŠx¸4¿9º9ÓE¹9°a˜dŸj™j×1Ñ1Ô1¹9ÑEÌTÔRÐRùÒEs   Ÿ!Ac                	ó*  € \         P                  ! V4      pR pV'       df   Vf   V P                  P                  pVR8  P	                  4       '       d   \
        h V Uu. uF  qUR8w  d   V P                  V,          MTNK   	  ppM" V Uu. uF  qPP                  V,          NK  	  pp\        V 4      P                  W`P                  R7      # u upi   \         d   p\        T4      ThRp?ii ; iu upi   \         d   p\        T4      ThRp?ii ; i)zIIndex is out of bounds or cannot do a non-empty take from an empty array.NrJ   éÿÿÿÿ)
rO   rP   r3   r   ÚanyrM   r6   r]   r(   rB   )r!   ÚindexerÚ
allow_fillÚ
fill_valueÚmsgÚlocÚoutputÚerrs   &&&&    r   ÚtakeÚJSONArray.takeÀ   s  € ô —*’*˜WÓ%ˆàWð 	÷ ØÒ!Ø!ŸZ™Z×0Ñ0�
à˜"‘×!Ñ!×#Ò#Ü Ð ð/áKRóÙKRÀC¨R¤i�D—I‘I˜c–N°ZÒ?É7ð ð �ð/Ù4;Ó<±G¨SŸ)™) CŸ.˜.±G�Ð<ô �D‹z×(Ñ(¨·z±zÐ(ÓBÐBùòøô ô /Ü  “o¨3Ð.ûð/üò =øÜô /Ü  “o¨3Ð.ûð/úsT   ÁC Á$CÂC ÂC6 ÂC1Â&C6 ÃC ÃC.ÃC)Ã)C.Ã1C6 Ã6DÄDÄDc                	óF   € \        V 4      ! V P                  R ,          4      # ):NNN)r(   r6   r    s   &r   r:   ÚJSONArray.copyÝ   s   € Ü�DŒz˜$Ÿ)™) A�,Ó'Ð'r   Tc                	ó  € ^ RI Hp \        V4      p\        V\	        V P
                  4      4      '       d+   WP
                  8X  d   V'       d   V P                  4       # V # \        W4      '       d$   VP                  4       pVP                  WRR7      # V'       g2   \        P                  ! V  Uu. uF  p\        V4      NK  	  upVR7      # \        P                  ! V  Uu. uF  p\        V4      NK  	  upWR7      # u upi u upi )é    )ÚStringDtypeFrŠ   rJ   )Úpandas.core.arrays.string_r¨   r
   r2   r(   r3   r:   r"   rB   rO   rP   Údictr•   )r!   r3   r:   r¨   Úarr_clsrF   s   &&&   r   ÚastypeÚJSONArray.astypeà   sÆ   € õ 	;ä˜UÓ#ˆä�eœT $§*¡*Ó-×.Ò.°5¿J¹JÔ3FßØ—y‘y“{Ð"ØˆKÜ˜×+Ò+Ø×0Ñ0Ó2ˆGØ×)Ñ)¨$À%Ð)ÓHÐHßÜ—:’:±Ó5±¨1œt Ažw±Ñ5¸UÔCÐCä—8’8©dÓ3©d¨œT !žW©dÑ3¸5ÔLÐLùò 6ùâ3s   Â1C?Ã"Dc           	     	óÌ   € \        V 4      ! V P                   Uu0 uF  p\        VP                  4       4      kK  	  up Uu. uF  p\	        V4      NK  	  up4      # u upi u upi r?   )r(   r6   rX   Úitemsrª   )r!   ÚdrF   s   &  r   ÚuniqueÚJSONArray.uniqueô   sL   € ô �DŒzÀtÇyÂyÓ,QÁyÀ!¬U°1·7±7³9Ö-=ÁyÒ,QÓRÑ,Q qœ4 ž7Ñ,QÑRÓSÐSùÒ,QùÒRs   š"AÁA!c                	óp   € \        \        P                  P                  R  V 4       4      4      pV ! V4      # )c              3  ó8   "  € T F  qP                   x € K  	  R # 5ir?   )r6   )Ú.0rF   s   & r   Ú	<genexpr>Ú.JSONArray._concat_same_type.<locals>.<genexpr>û   s   é € Ð1LÁ)¸Q·&¶&Ã)ùs   ‚)r‹   rm   ÚchainÚfrom_iterable)r@   Ú	to_concatr6   s   && r   Ú_concat_same_typeÚJSONArray._concat_same_typeù   s+   € ä”I—O‘O×1Ñ1Ñ1LÁ)Ó1LÓLÓMˆÙ�4‹yÐr   c                	ój   € V P                  4       p\        V4      ^ 8X  d   VP                  4       pVR3# )r§   r   )Ú_values_for_argsortr{   Úravel)r!   Úfrozens   & r   Ú_values_for_factorizeÚJSONArray._values_for_factorizeþ   s1   € Ø×)Ñ)Ó+ˆÜˆv‹;˜!Ôà—\‘\“^ˆFØ�rˆzÐr   c                	ór   € V  Uu. uF  p\        VP                  4       4      NK  	  pp\        V4      # u upi r?   )rX   r¯   r   )r!   rF   rÀ   s   &  r   r¾   ÚJSONArray._values_for_argsort  s1   € á,0Ó1©D q”%˜Ÿ™›	Ö"©DˆÐ1Ü6°vÓ>Ð>ùò 2s   …"4Úlimitc               	ó&   <€ \         SV `  WVR 7      # ))ÚmethodrÅ   r:   )ÚsuperÚ_pad_or_backfill)r!   rÇ   rÅ   r:   Ú	__class__s   &$$$€r   rÉ   ÚJSONArray._pad_or_backfill
  s   ø€ ä‰wÑ'¨vÈÐ'ÓNÐNr   )r8   r7   r6   )NF)NN)FN)T)r$   r%   r&   r'   r   r3   Ú__array_priority__r<   ÚclassmethodrB   rG   rS   rg   ru   r|   rƒ   r‡   rŒ   Úpropertyr’   r–   r¢   r:   r¬   r±   r»   rÁ   r¾   rÉ   r+   Ú__classcell__)rÊ   s   @r   r   r   G   sÛ   ø† Ù‹K€EØÐ÷-ð ð¨dð ¸ó ó ðð ñ=ó ð=òOò<õB%õ,òòô=ð ô(ó ð(òSôCò:(ôMò(Tð
 ñó ðòò?ð
O°ð O¸4÷ Oõ Or   r   c               ó   € V ^8„  d   QhRR/# )r   Únry   r   )r   s   "r   r   r     s   € ÷ ñ �ñ r   c                ó^  € \         P                  P                  ^4      p\        V 4       Uu. uFo  p\	        \        VP                  ^ ^
4      4       Uu. uF=  pVP                  \        \        P                  4      4      VP                  ^ ^d4      3NK?  	  up4      NKq  	  up# u upi u upi )r   )
rO   ÚrandomÚdefault_rngÚranger   ÚintegersÚchoicer‹   ÚstringÚascii_letters)rÑ   ÚrngÚ_s   &  r   Ú	make_datarÜ     s    € ä
�)‰)×
Ñ
 Ó
"€Cô �q”óñ ˆAô 	ô ˜sŸ|™|¨A¨rÓ2Ô3óá3�Að —‘œD¤×!5Ñ!5Ó6Ó7¸¿¹ÀaÈÓ9MÓNÙ3ñö	
ñ ñð ùòùòs   ­'B*ÁAB%ÂB*Â%B*)$Ú__doc__Ú
__future__r   Úcollectionsr   r   rm   rY   rØ   r�   Útypingr   r   ÚnumpyrO   Úpandas.core.dtypes.castr   Úpandas.core.dtypes.commonr   r	   r
   Úpandasr^   Úpandas.api.extensionsr   r   Úpandas.core.indexersr   r   Úcollections.abcr   Úpandas._typingr   r   r   rÜ   r   r   r   Ú<module>ré      su   ðñõ #÷ó Û Û Û 
÷ó
 å K÷ñ ó ÷÷÷
 Ý'å%ô�ô ô EO�ô EO÷Pr   