+
    JV-j\³  ã                   ó´  € ^ RI t ^ RIHt ^ RIHt ^ RIt^ RIHt ^ RIt^ RI	H
t
 ^ RIt^ RIt^ RIt^ RIt ^ RIt^ RIt^ RIHtHtHt / s/ s/ sR tR tR	 tR
 tR tR t R*R lt!R t"R t#R t$R t%R t&R t'R t(R t)R t*R t+R*R lt,R+R lt-R t.R,R lt/R t0R-R lt10 R.mt2R t3R t4R  t5R*R! lt6R*R" lt7R# t8R$ t9R% t:R& t;R' t<R( t=R) t>R#   ] d    Rt Lœi ; i)/é    N)ÚSequence)Úfutures)Údeepcopy)Úzip_longest)Ú_pandas_apiÚ	frombytesÚis_threading_enabledc            	      óˆ  € \         '       Eg1   \         P                  / \        P                  P                  R b\        P                  P
                  Rb\        P                  P                  Rb\        P                  P                  Rb\        P                  P                  Rb\        P                  P                  Rb\        P                  P                  Rb\        P                  P                  Rb\        P                  P                  Rb\        P                  P                  R	b\        P                  P                  R
b\        P                  P                  Rb\        P                  P                   Rb\        P                  P"                  Rb\        P                  P$                  Rb\        P                  P&                  Rb\        P                  P(                  Rb\        P                  P*                  R\        P                  P,                  R\        P                  P.                  R/C4       \         # )ÚemptyÚboolÚint8Úint16Úint32Úint64Úuint8Úuint16Úuint32Úuint64Úfloat16Úfloat32Úfloat64ÚdateÚtimeÚbytesÚunicode)Ú_logical_type_mapÚupdateÚpaÚlibÚType_NAÚ	Type_BOOLÚ	Type_INT8Ú
Type_INT16Ú
Type_INT32Ú
Type_INT64Ú
Type_UINT8ÚType_UINT16ÚType_UINT32ÚType_UINT64ÚType_HALF_FLOATÚ
Type_FLOATÚType_DOUBLEÚType_DATE32ÚType_DATE64ÚType_TIME32ÚType_TIME64ÚType_BINARYÚType_FIXED_SIZE_BINARYÚType_STRING© ó    Úf/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/pyarrow/pandas_compat.pyÚget_logical_type_mapr7   .   sÉ  € ÷ ÔÜ× Ñ ð "
Ü�F‰F�N‰N˜Gð"
ä�F‰F×Ñ˜fð"
ô �F‰F×Ñ˜fð"
ô �F‰F×Ñ˜wð	"
ô
 �F‰F×Ñ˜wð"
ô �F‰F×Ñ˜wð"
ô �F‰F×Ñ˜wð"
ô �F‰F×Ñ ð"
ô �F‰F×Ñ ð"
ô �F‰F×Ñ ð"
ô �F‰F×"Ñ" Ið"
ô �F‰F×Ñ˜yð"
ô �F‰F×Ñ 	ð"
ô �F‰F×Ñ ð"
ô �F‰F×Ñ ð"
ô  �F‰F×Ñ ð!"
ô" �F‰F×Ñ ð#"
ô$ �F‰F×Ñ Ü�F‰F×)Ñ)¨7Ü�F‰F×Ñ 	ñ)"
ô 	ô, Ðr5   c                 ó  € \        4       p WP                  ,          #   \         dß    \        T \        P
                  P                  4      '       d    R # \        T \        P
                  P                  4      '       d   R\        T P                  4       R2u # \        T \        P
                  P                  4      '       d   T P                  e   Ru # Ru # \        P                  P                  T 4      '       d    R#  R# i ; i)Úcategoricalzlist[Ú]Ú
datetimetzÚdatetimeÚdecimalÚobject)r7   ÚidÚKeyErrorÚ
isinstancer   r   ÚDictionaryTypeÚListTypeÚget_logical_typeÚ
value_typeÚTimestampTypeÚtzÚtypesÚ
is_decimal)Ú
arrow_typeÚlogical_type_maps   & r6   rD   rD   K   s½   € Ü+Ó-ÐðØ§¡Õ.Ð.øÜô 	Ü�j¤"§&¡&×"7Ñ"7×8Ò8Ú Ü˜
¤B§F¡F§O¡O×4Ò4ØÔ+¨J×,AÑ,AÓBÐCÀ1ÐEÒEÜ˜
¤B§F¡F×$8Ñ$8×9Ò9Ø#-§=¡=Ò#<�<ÒLÀ*ÒLÜ�X‰X× Ñ  ×,Ò,ÚÚð	ús(   Œ ž5DÁADÂ:DÃDÃ$DÄDc                  óô  € \         '       gè   \         P                  \        P                  R \        P                  R\        P
                  R\        P                  R\        P                  R\        P                  R\        P                  R\        P                  R\        P                  R\        P                  R	\        P                  R
RR\        P                  R\        P                  R/4       \         # )r   r   r   r   r   r   r   r   r   r   r   údatetime64[D]r   Ústringr   )Ú_numpy_logical_type_mapr   ÚnpÚbool_r   r   r   r   r   r   r   r   r   r   Ústr_Úbytes_r4   r5   r6   Úget_numpy_logical_type_maprT   \   s�   € ç"Ó"Ü×&Ñ&Ü�H‰H�fÜ�G‰G�VÜ�H‰H�gÜ�H‰H�gÜ�H‰H�gÜ�H‰H�gÜ�I‰I�xÜ�I‰I�xÜ�I‰I�xÜ�J‰J˜	Ü�J‰J˜	Ø˜VÜ�G‰G�XÜ�I‰I�wð(
ô 	ô  #Ð"r5   c                 óv  € \        4       p WP                  P                  ,          #   \         d†    \	        T P                  R 4      '       d    R# \        T P                  4      P                  R4      '       d   \        T P                  4      u # \        P                  ! T 4      pTR8X  d    R# Tu # i ; i)rG   r;   Ú
datetime64rN   r   )	rT   ÚdtypeÚtyper@   ÚhasattrÚstrÚ
startswithr   Úinfer_dtype)Úpandas_collectionÚnumpy_logical_type_mapÚresults   &  r6   Úget_logical_type_from_numpyr`   r   s�   € Ü7Ó9ÐðØ%×&=Ñ&=×&BÑ&BÕCÐCøÜô 
ÜÐ$×*Ñ*¨D×1Ò1Úô Ð ×&Ñ&Ó'×2Ñ2°<×@Ò@ÜÐ(×.Ñ.Ó/Ò/Ü×(Ò(Ð):Ó;ˆØ�XÔÚØŠð
ús!   Œ( ¨'B8Á?B8ÂB8Â3B8Â7B8c                 óª  € V P                   p\        V4      R 8X  dY   \        V RV 4      pVf   Q hR\        VP                  4      RVP
                  /p\        VP                  P                   4      pWC3# \        VR4      '       d?   R\        P                  P                  VP                  4      /pRVP                   R2pWC3# Rp\        V4      pWC3# )	ÚcategoryÚcatNÚnum_categoriesÚorderedrG   Útimezonezdatetime64[r:   )rW   rZ   ÚgetattrÚlenÚ
categoriesre   ÚcodesrY   r   r   Útzinfo_to_stringrG   Úunit)ÚcolumnrW   ÚcatsÚmetadataÚphysical_dtypes   &    r6   Úget_extension_dtype_inforq   ƒ   sÒ   € Ø�L‰L€EÜ
ˆ5ƒz�ZÔÜ�v˜u fÓ-ˆØÒÐÐàœc $§/¡/Ó2Ø�t—|‘|ð
ˆô ˜TŸZ™Z×-Ñ-Ó.ˆð Ð#Ð#ô 
�˜×	Ò	Ø¤§¡× 7Ñ 7¸¿¹Ó AÐBˆØ& u§z¡z l°!Ð4ˆð Ð#Ð#ð ˆÜ˜U›ˆØÐ#Ð#r5   c           
     óÎ  € \        V4      p\        V 4      w  rVVR8X  d   RVP                  RVP                  /pRpVem   \	        V\
        4      '       d   \        P                  ! V4      '       g;   \	        V\        4      '       g%   \        RV R\        V4      P                   24      h\	        V\        4      '       g   Q \        \        V4      4      4       hRVRVR	VR
VRV/# )a‹  Construct the metadata for a given column

Parameters
----------
column : pandas.Series or pandas.Index
name : str
arrow_type : pyarrow.DataType
field_name : str
    Equivalent to `name` when `column` is a `Series`, otherwise if `column`
    is a pandas Index then `field_name` will not be the same as `name`.
    This is the name of the field in the arrow Table's schema.

Returns
-------
dict
r=   Ú	precisionÚscaler>   z)Column name must be a string. Got column z	 of type ÚnameÚ
field_nameÚpandas_typeÚ
numpy_typero   )rD   rq   rs   rt   rA   ÚfloatrP   ÚisnanrZ   Ú	TypeErrorrX   Ú__name__)rm   ru   rJ   rv   Úlogical_typeÚstring_dtypeÚextra_metadatas   &&&&   r6   Úget_column_metadatar€   –   sç   € ô" $ JÓ/€Lä#;¸FÓ#CÑ €LØ�yÔ à˜×-Ñ-Ø�Z×%Ñ%ð
ˆð  ˆð 	ÒÜ˜D¤%×(Ò(¬R¯XªX°d¯^ª^Ü˜4¤×%Ò%äØ7¸°v¸YÜ�D‹z×"Ñ"Ð#ð%ó
ð 	
ô
 �j¤#×&Ò&Ð=¬¬D°Ó,<Ó(=Ó=Ð&à�Ø�jØ�|Ø�lØ�Nðð r5   c                óÔ  € Vf   V Uu. uF  p\        V4      NK  	  pp\        W44       U	U
u. uF   w  rš\        V
\        4      '       d   K  Wš3NK"  	  pp	p
\	        V4      p\	        V4      pVRWÜ,
           pWmV,
          R p. p\        WW~4       F(  w  pppp\        VVVVR7      pVP                  V4       K*  	  . pVRJEdI   . p\        W¿4       F„  w  w  ršpV	P                  e<   \        V	P                  \         4      '       g   VP                  V	P                  4       \        V	\        V	P                  4      VV
R7      pVP                  V4       K†  	  \	        V4      ^ 8”  d"   \        P                  ! RV R2\        ^R7       . p\        VP                  RVP                  .4      p\        VP                  RVP                  P                  .4      p\        VV4       F!  w  r˜\        W˜4      pVP                  V4       K#  	  M. ;p;pp\        VR	4      '       d   VP                   M/ p \"        P$                  ! V4       R\"        P$                  ! RVRVRVV,           RVRRRR\(        P*                  /R\,        P.                  /4      P1                  R4      /# u upi u up
p	i   \&         d.   p/ p\        P                  ! R
T R2\        ^R7        Rp?L˜Rp?ii ; i)a–  Returns a dictionary containing enough metadata to reconstruct a pandas
DataFrame as an Arrow Table, including index columns.

Parameters
----------
columns_to_convert : list[pd.Series]
df : pandas.DataFrame
column_names : list[str | None]
column_field_names: list[str]
index_levels : List[pd.Index]
index_descriptors : List[Dict]
preserve_index : bool
types : List[pyarrow.DataType]

Returns
-------
dict
N)ru   rJ   rv   Fz&The DataFrame has non-str index name `z@` which will be converted to string and not roundtrip correctly.©Ú
stacklevelÚlevelsÚnamesÚattrsz(Could not serialize pd.DataFrame.attrs: z!, defaulting to empty attributes.s   pandasÚindex_columnsÚcolumn_indexesÚcolumnsÚ
attributesÚcreatorÚlibraryÚpyarrowÚversionÚpandas_versionÚutf8)rZ   ÚziprA   Údictrh   r€   Úappendru   Ú_column_name_to_stringsÚwarningsÚwarnÚUserWarningrg   r‰   Ú_get_simple_index_descriptorrY   r†   ÚjsonÚdumpsÚ	Exceptionr   Ú__version__r   rŽ   Úencode)Úcolumns_to_convertÚdfÚcolumn_namesÚindex_levelsÚindex_descriptorsÚpreserve_indexrH   Úcolumn_field_namesru   ÚlevelÚ
descriptorÚserialized_index_levelsÚnum_serialized_index_levelsÚntypesÚdf_typesÚindex_typesÚcolumn_metadataÚcolrv   rJ   ro   Úindex_column_metadataÚnon_str_index_namesrˆ   r„   r…   rŠ   Úes   &&&&&&&&                    r6   Úconstruct_metadatar±   Å   sý  € ð* Ò!ñ 5AÓA±L¨Dœc $ži±LÐÐAô "% \Ô!Eôá!EÑˆEÜ˜*¤d×+ô 	ˆÓÙ!Eð ñ ô #&Ð&=Ó">Ðô �‹Z€FØÐ:�fÕ:Ð;€HØÐ!<Õ<Ð=Ð>€Kà€OÜ-0Ð1CØ1Cö.OÑ)ˆˆT�:˜zä& s°Ø2<Ø2<ô>ˆð 	×Ñ˜xÖ(ñ.Oð ÐØ˜UÔ"Ø ÐÜ/2Ø#ö0
Ñ+ÑˆU ð �z‰zÒ%¬j¸¿¹ÄS×.IÒ.IØ#×*Ñ*¨5¯:©:Ô6ä*ØÜ,¨U¯Z©ZÓ8Ø%Ø%ô	ˆHð "×(Ñ(¨Ö2ñ0
ô Ð"Ó# aÔ'Ü�MŠMØ8Ð9LÐ8Mð N0ð 0ô ¨õ	+ð ˆä˜Ÿ™ X°·
±
¨|Ó<ˆÜ˜Ÿ
™
 G¨b¯j©j¯o©oÐ->Ó?ˆÜ˜v uÖ-‰KˆEÜ3°EÓ@ˆHØ×!Ñ! (Ö+ò .ð FHÐGÐÐGÐ1°Nä$ R¨×1Ò1�—’°r€Jð'Ü�
Š
�:Ôð 	”4—:’:ØÐ.Ø˜nØ�Ð)>Õ>Ø˜*ØØ˜9Øœ2Ÿ>™>ðð œk×1Ñ1ð

ó 
÷ ‰6�&‹>ðð ùòK Bùóøôx ô 'Øˆ
Ü�ŠØ6°q°cð :/ð 0ä A÷	'ò 	'ûð'ús(   ‰J$­J)ÁJ)È4J/ Ê/K'Ê:#K"Ë"K'c           
      ó¼   € \        V 4      w  r#\        V 4      pR V9   d   \        P                  ! R\        ^R7       VR8X  d   V'       d   Q hRR/pRVRVRVR	VR
V/# )ÚmixedzlThe DataFrame has column names of mixed type. They will be converted to strings and not roundtrip correctly.r‚   r   ÚencodingúUTF-8ru   rv   rw   rx   ro   )rq   r`   r•   r–   r—   )r¥   ru   r~   r   rw   s   &&   r6   r˜   r˜   2  sx   € Ü#;¸EÓ#BÑ €LÜ-¨eÓ4€KØ�+ÔÜ�Šð@ä Aõ	'ð �iÔß!Ð!Ð!Ø$ gÐ.ˆà�Ø�dØ�{Ø�lØ�Nðð r5   c                ó¸  € \        V \        4      '       d   V # \        V \        4      '       d   V P                  R4      # \        V \        4      '       d#   \        \	        \        \        V 4      4      4      # \        V \        4      '       d   \        R4      hV e3   \        V \        4      '       d   \        P                  ! V 4      '       d   V # \        V 4      # )aÑ  Convert a column name (or level) to either a string or a recursive
collection of strings.

Parameters
----------
name : str or tuple

Returns
-------
value : str or tuple

Examples
--------
>>> name = 'foo'
>>> _column_name_to_strings(name)
'foo'
>>> name = ('foo', 'bar')
>>> _column_name_to_strings(name)
"('foo', 'bar')"
>>> import pandas as pd
>>> name = (1, pd.Timestamp('2017-02-01 00:00:00'))
>>> _column_name_to_strings(name)
"('1', '2017-02-01 00:00:00')"
r�   z%Unsupported type for MultiIndex level)rA   rZ   r   ÚdecodeÚtupleÚmapr”   r   r{   ry   rP   rz   ©ru   s   &r6   r”   r”   F  sœ   € ô2 �$œ×ÒØˆÜ	�Dœ%×	 Ò	 à�{‰{˜6Ó"Ð"Ü	�Dœ%×	 Ò	 Ü”5œÔ4°dÓ;Ó<Ó=Ð=Ü	�Dœ(×	#Ò	#ÜÐ?Ó@Ð@Ø	Šœ* T¬5×1Ò1´b·h²h¸t·n²nØˆÜˆt‹9Ðr5   c                óx   € V P                   e'   V P                   V9  d   \        V P                   4      # RVR R2# )z¹Return the name of an index level or a default name if `index.name` is
None or is already a column name.

Parameters
----------
index : pandas.Index
i : int

Returns
-------
name : str
Ú__index_level_ÚdÚ__)ru   r”   )ÚindexÚir    s   &&&r6   Ú_index_level_namerÁ   m  s9   € ð ‡z�zÒ %§*¡*°LÔ"@Ü& u§z¡zÓ2Ð2à  !˜u BÐ'Ð'r5   c                 óŒ  € \        WV4      pV P                  P                  '       g"   \        R \	        V P                  4       24      hVe   \        WV4      # . p. pVRJd   \        V P                  4      M. p. p. pV FŽ  p	W	,          p
\        V	4      p	\        P                  ! V
4      '       d   \        RV	 R24      hVP                  V
4       VP                  R4       VP                  V	4       VP                  \        V	4      4       K�  	  . p. p\        V4       F‘  w  rÞ\        WíV4      p	\!        V\        P"                  P$                  4      '       d   Vf   \'        V4      pM5VP                  V4       VP                  R4       T	pVP                  V	4       VP                  V4       K“  	  W\,           pVWEVW¶Wx3# )zDuplicate column names found: NFúSparse pandas data (column ú) not supported.)Ú_resolve_columns_of_interestr‰   Ú	is_uniqueÚ
ValueErrorÚlistÚ$_get_columns_to_convert_given_schemaÚ_get_index_level_valuesr¿   r”   r   Ú	is_sparser{   r“   rZ   Ú	enumeraterÁ   rA   ÚpdÚ
RangeIndexÚ_get_range_index_descriptor)rŸ   Úschemar£   r‰   r    r¤   r¡   rž   Úconvert_fieldsru   r­   r¢   Úindex_column_namesrÀ   Úindex_levelÚdescrÚ	all_namess   &&&&             r6   Ú_get_columns_to_convertrÖ   €  sÅ  € Ü*¨2°wÓ?€Gà�:‰:××ÐÜØ,¬T°"·*±*Ó-=Ð,>Ð?ó
ð 	
ð ÒÜ3°BÀÓOÐOà€LØÐð .<À5Ó-HÔ §¡Ô)Øð ð
 ÐØ€NãˆØ�hˆÜ& tÓ,ˆä× Ò  ×%Ò%ÜØ-¨d¨VÐ3CÐDóFð Fð 	×!Ñ! #Ô&Ø×Ñ˜dÔ#Ø×Ñ˜DÔ!Ø×!Ñ!¤# d£)Ö,ñ ð ÐØÐÜ# LÖ1‰ˆÜ  °Ó>ˆÜ�{¤K§N¡N×$=Ñ$=×>Ò>ØÒ&Ü/°Ó<‰Eà×%Ñ% kÔ2Ø×!Ñ! $Ô'ØˆEØ×%Ñ% dÔ+Ø× Ñ  Ö'ñ 2ð #Õ7€Ið �|Ð9KØÐ-?ðQð Qr5   c                óø  € . p. p. p. p. p. pVP                    Fº  p	 W	,          p
Rp\        P                  ! T
4      '       d   \        RT	 R24      hTP                  T	4      pTP                  T
4       TP                  T4       TP                  T	4       T'       g   K‡  TP                  T	4       TP                  T	4       TP                  T
4       K¼  	  W7,           pWÓW7WhWE3#   \         dŠ     \        Y	4      p
M$  \        \        3 d    \        RT	 R24      hi ; iTRJ d   \	        RT	 R24      hTf:   \        T
\        P                  P                  4      '       d   \	        RT	 R24      hRp ELQi ; i)	zá
Specialized version of _get_columns_to_convert in case a Schema is
specified.
In that case, the Schema is used as the single point of truth for the
table structure (types, which columns are included, order of columns, ...).
Fzname 'zF' present in the specified schema is not found in the columns or indexzd' present in the specified schema corresponds to the index, but 'preserve_index=False' was specifiedzý' is present in the schema, but it is a RangeIndex which will not be converted as a column in the Table, but saved as metadata-only not in columns. Specify 'preserve_index=True' to force it being added as a column, or remove it from the specified schemaTrÃ   rÄ   )r…   r@   Ú_get_index_levelÚ
IndexErrorrÇ   rA   r   rÍ   rÎ   rË   r{   Úfieldr“   )rŸ   rÐ   r£   r    rž   rÑ   r¢   rÒ   r¡   ru   r­   Úis_indexrÚ   rÕ   s   &&&           r6   rÉ   rÉ   Â  s¾  € ð €LØÐØ€NØÐØÐØ€Là—”ˆð	Ø•(ˆCØˆHô2 × Ò  ×%Ò%ÜØ-¨d¨VÐ3CÐDóFð Fð —‘˜TÓ"ˆØ×!Ñ! #Ô&Ø×Ñ˜eÔ$Ø×Ñ˜DÔ!ç‰8Ø×%Ñ% dÔ+Ø×$Ñ$ TÔ*Ø×Ñ Ö$ñQ ðT Õ1€Ià \ØÐ-?ðQð QøôQ ô 	ð/Ü& rÓ0‘øÜœjÐ)ô /äØ˜T˜Fð #.ð .ó/ð /ð/úð
  Ó&Ü Ø˜T˜Fð # ð  ó!ð !ð !Ò(Ü˜s¤K§N¡N×$=Ñ$=×>Ò>Ü Ø˜T˜Fð #'ð 'ó(ð (ð ‹Hð-	ús*   �
C%Ã%E9Ã1C=Ã<E9Ã=!DÄAE9Å8E9c                óÀ   € TpWP                   P                  9  d)   \        V4      '       d   \        V\	        R4      R 4      pV P                   P                  V4      # )zS
Get the index level of a DataFrame given 'name' (column name in an arrow
Schema).
r¼   éþÿÿÿ)r¿   r…   Ú_is_generated_index_nameÚintrh   Úget_level_values)rŸ   ru   Úkeys   && r6   rØ   rØ      sP   € ð
 €CØ—8‘8—>‘>Ô!Ô&>¸t×&DÒ&Dô �$”sÐ+Ó,¨RÐ0Ó1ˆØ�8‰8×$Ñ$ SÓ)Ð)r5   c                 ól   €  \         P                  ! V 4       V #   \         d    \        T 4      u # i ; i©N)r™   rš   r{   rZ   rº   s   &r6   Ú_level_namerä     s1   € ðÜ�
Š
�4ÔØˆøÜô Ü�4‹yÒðús   ‚ š3²3c                 ó¾   € R RR\        V P                  4      R\        P                  ! V R4      R\        P                  ! V R4      R\        P                  ! V R4      /# )ÚkindÚrangeru   ÚstartÚstopÚstep)rä   ru   r   Úget_rangeindex_attribute)r¥   s   &r6   rÏ   rÏ     sW   € ð 	�Ø”˜EŸJ™JÓ'Ø”×5Ò5°e¸WÓEØ”×4Ò4°U¸FÓCØ”×4Ò4°U¸FÓCðð r5   c                 óŒ   € \        \        V R V .4      4      p\        V4       Uu. uF  q P                  V4      NK  	  up# u upi )r„   )rh   rg   rç   rà   )r¿   ÚnrÀ   s   &  r6   rÊ   rÊ   !  s<   € ÜŒG�E˜8 e WÓ-Ó.€AÜ/4°Q¬xÓ8©x¨!×"Ñ" 1Ö%©xÑ8Ð8ùÒ8s   ¥Ac                 óÄ   € Ve   Ve   \        R4      hVe   VP                  pV# Ve&   V Uu. uF  q3V P                  9   g   K  VNK  	  ppV# V P                  pV# u upi )NzJSchema and columns arguments are mutually exclusive, pass only one of them)rÇ   r…   r‰   )rŸ   rÐ   r‰   Úcs   &&& r6   rÅ   rÅ   &  sw   € ØÒ˜gÒ1Üð <ó =ð 	=à	Ò	Ø—,‘,ˆð €Nð 
Ò	Ù%Ó9™g˜¨b¯j©j©—1�1™gˆÐ9ð €Nð —*‘*ˆà€Nùò	 :s   ®AÁAc                 óè  € \        V R W4      w  ppppppp	p. p
V	 EF@  pVP                  p\        P                  ! V4      '       d$   \        P
                  ! VRR7      P                  pMà\        P                  ! V4      '       dh   \        V\        P                  P                  4      '       d   VP                  ^ 4      MVR,          p\        P
                  ! VRR7      P                  pM]\        WËP                  R 4      w  rÍ\        P                  P                  WÍ4      pVf#   \        P
                  ! VRR7      P                  pV
P!                  V4       EKC  	  \#        W�WHVWVR7      pW:V3# )NT)Úfrom_pandas:Nr   N©r¤   )rÖ   Úvaluesr   Úis_categoricalr   ÚarrayrX   Úis_extension_array_dtyperA   rÍ   ÚSeriesÚheadÚget_datetimetz_typerW   r   Ú_ndarray_to_arrow_typer“   r±   )rŸ   r£   r‰   rÕ   r    r¤   Ú_r¢   r‡   rž   rH   rï   ró   Útype_r   ro   s   &&&             r6   Údataframe_to_typesrý   4  s8  € ô " " d¨NÓ
Dñ€YØØØØØØØà€EäˆØ—‘ˆÜ×%Ò% f×-Ò-Ü—H’H˜Q¨DÔ1×6Ñ6‰EÜ×1Ò1°&×9Ò9Ü!+Ø”;—>‘>×(Ñ(÷"*ò "*�A—F‘F˜1”IØ/0°­uð ä—H’H˜U°Ô5×:Ñ:‰Eä/°¿¹ÀÓF‰MˆFÜ—F‘F×1Ñ1°&Ó@ˆEØŠ}ÜŸš °Ô5×:Ñ:�Ø�‰�U×ñ  ô "Ø Ð=NØÐ2Dô€Hð
 ˜XÐ%Ð%r5   c                 ó  a€ \        WVV4      w  pppp	p
pppVfL   \        V 4      \        V P                  4      rþWï^d,          8”  d   V^8”  d   \        P                  ! 4       pM^p\        4       '       g   ^pV3R lpR pV^8X  d(   \        WÍ4       UUu. uF  w  ppV! VV4      NK  	  pppMÜ. p\        P                  ! V4      ;_uu_ 4       p\        WÍ4       FZ  w  ppV! VP                  4      '       d   VP                  V! VV4      4       K8  VP                  VP                  VVV4      4       K\  	  R R R 4       \        V4       F;  w  pp\        V\        P                  4      '       g   K(  VP                  4       VV&   K=  	  V Uu. uF  pVP                   NK  	  ppVfU   . p\        VV4       F,  w  ppVP                  \        P"                  ! VV4      4       K.  	  \        P$                  ! V4      p\'        WÀW{V
VVVR7      pVP(                  '       d   \+        VP(                  4      M	\-        4       pVP/                  V4       VP1                  V4      pR p\        V4      ^ 8X  d_    V
^ ,          R,          p V R8X  dG   V
^ ,          R,          p!V
^ ,          R,          p"V
^ ,          R,          p#\        \3        V!V"V#4      4      pVVV3# u uppi   + '       g   i     EL­; iu upi   \4         d     L1i ; i)	Nc                 óÌ  <€ Vf   RpR pMVP                   pVP                  p \        P                  ! WRSR7      pT'       g.   TP                  ^ 8”  d   \        RT RTP                   R24      hT#   \        P                  \        P
                  \        P                  3 d<   pT;P                  RT P                   RT P                   23,          un        ThR p?ii ; i)NT)rX   rñ   ÚsafezConversion failed for column z with type zField z( was non-nullable but pandas column had z null values)ÚnullablerX   r   rõ   ÚArrowInvalidÚArrowNotImplementedErrorÚArrowTypeErrorÚargsru   rW   Ú
null_countrÇ   )r­   rÚ   Úfield_nullablerü   r_   r°   r   s   &&    €r6   Úconvert_columnÚ+dataframe_to_arrays.<locals>.convert_columnp  sá   ø€ ØŠ=Ø!ˆNØ‰Eà"Ÿ^™^ˆNØ—J‘JˆEð	Ü—X’X˜c¸4ÀdÔKˆF÷  &×"3Ñ"3°aÔ"7Ü˜v e Wð -$Ø$*×$5Ñ$5Ð#6°lðDó Eð Eàˆøô —‘Ü×+Ñ+Ü×!Ñ!ð#ô 	ð �FŠFØ/°·±¨z¸ÀSÇYÁYÀKÐPðSõ S�FàˆGûð	ús   ¤A4 Á44C#Â(6CÃC#c                 óÞ   € \        V \        P                  4      ;'       dM    V P                  P                  ;'       d/    \        V P                  P                  \        P                  4      # rã   )	rA   rP   ÚndarrayÚflagsÚ
contiguousÚ
issubclassrW   rX   Úinteger)Úarrs   &r6   Ú_can_definitely_zero_copyÚ6dataframe_to_arrays.<locals>._can_definitely_zero_copy…  sL   € Ü˜3¤§
¡
Ó+÷ 7ð 7Ø—	‘	×$Ñ$÷7ð 7ä˜3Ÿ9™9Ÿ>™>¬2¯:©:Ó6ð	8r5   rò   ræ   rç   rè   ré   rê   )rÖ   rh   r‰   r   Ú	cpu_countr	   r‘   r   ÚThreadPoolExecutorró   r“   ÚsubmitrÌ   rA   ÚFuturer_   rX   rÚ   rÐ   r±   ro   r   r’   r   Úwith_metadatarç   rÙ   )$rŸ   rÐ   r£   Únthreadsr‰   r   rÕ   r    r¤   rÒ   r¢   r‡   rž   rÑ   ÚnrowsÚncolsr  r  rï   ÚfÚarraysÚexecutorrÀ   Ú	maybe_futÚxrH   Úfieldsru   rü   Úpandas_metadataro   Ún_rowsræ   rè   ré   rê   s$   &&&&&f                              r6   Údataframe_to_arraysr#  W  sÀ  ø€ ô /¨r¸>Ø/6ó8ñ€YØØØØØØØð ÒÜ˜2“w¤ B§J¡J£ˆuØ˜3•;Ô 5¨1¤9Ü—|’|“~‰HàˆHä×!Ò!Øˆõò*8ð
 �1„}ä!Ð"4ÔEôGÙE‘d�a˜ñ !  AÖ&ÙEð 	ñ Gˆð ˆÜ×'Ò'¨×1Ô1°XÜÐ.Ö?‘��1Ù,¨Q¯X©X×6Ò6Ø—M‘M¡.°°AÓ"6Ö7à—M‘M (§/¡/°.À!ÀQÓ"GÖHñ	 @÷ 2ô & fÖ-‰LˆAˆyÜ˜)¤W§^¡^×4Ô4Ø%×,Ñ,Ó.��q“	ñ .ñ $Ó$™V˜ˆQ�VŒV™V€EÐ$à‚~ØˆÜ˜y¨%Ö0‰KˆD�%Ø�M‰Mœ"Ÿ(š( 4¨Ó/Ö0ñ 1ä—’˜6Ó"ˆä(Ø Ð=NØ˜Ð2Dô€Oð -3¯O¯O¨OŒx˜Ÿ™Ô(ÄÃ€HØ‡O�O�OÔ$Ø×!Ñ! (Ó+€Fð €FÜ
ˆ6ƒ{�aÔð	Ø$ QÕ'¨Õ/ˆDØ�wŒØ)¨!Õ,¨WÕ5�Ø(¨Õ+¨FÕ3�Ø(¨Õ+¨FÕ3�ÜœU 5¨$°Ó5Ó6�ð �6˜6Ð!Ð!ùó[G÷ 2×1Ð1üò %øô6 ô 	Ùð	ús,   ÂKÃA*KÆK2É6AK7 ËK/	Ë7LÌLc                 óJ  € V P                   P                  \        P                  8w  d   W3# \        P
                  ! V4      '       d6   Vf2   VP                  pVP                  p\        P                  ! WC4      pW3# Vf!   \        P                  ! V P                   4      pW3# rã   )rW   rX   rP   rV   r   Úis_datetimetzrG   rl   r   Ú	timestampÚfrom_numpy_dtype)ró   rW   rü   rG   rl   s   &&&  r6   rù   rù   »  s‚   € Ø‡|�|×ÑœBŸM™MÔ)Øˆ}Ðä× Ò  ×'Ò'¨EªMà�X‰XˆØ�z‰zˆÜ—’˜TÓ&ˆð
 ˆ=Ðð	 
Šä×#Ò# F§L¡LÓ1ˆàˆ=Ðr5   c                ó.  € ^ RI Hu Hp V P                  RR4      pV R,          pRV 9   d2   \        P
                  P                  WPR,          V R,          R7      pEMRV 9   d­   \        P                  ! VP                  4      w  r‰\        W€R,          4      p
\        P                  ! 4       '       d3   \        P                  P                  VP                  R4      V
R	R
7      pM•TpV'       d!   VP                  WVVP                   V
R7      pV# MjRV 9   db   V R,          p\#        V4      ^8X  g   Q hW^ ,          ,          pW,,          p\%        VR4      '       g   \'        R4      hVP)                  V4      pMTpV'       d   VP                  WvR7      # Wv3# )a\  
Construct a pandas Block from the `item` dictionary coming from pyarrow's
serialization or returned by arrow::python::ConvertTableToPandas.

This function takes care of converting dictionary types to pandas
categorical, Timestamp-with-timezones to the proper pandas Block, and
conversion to pandas ExtensionBlock

Parameters
----------
item : dict
    For basic types, this is a dictionary in the form of
    {'block': np.ndarray of values, 'placement': pandas block placement}.
    Additional keys are present for other types (dictionary, timezone,
    object).
columns :
    Column names of the table being constructed, used for extension types
extension_columns : dict
    Dictionary of {column_name: pandas_dtype} that includes all columns
    and corresponding dtypes that will be converted to a pandas
    ExtensionBlock.

Returns
-------
pandas Block

NÚblockÚ	placementÚ
dictionaryre   )ri   re   rf   r   F)rW   Úcopy)r*  ÚklassrW   Úpy_arrayÚ__from_arrow__zGThis column does not support to be converted to a pandas ExtensionArray)r*  )Úpandas.core.internalsÚcoreÚ	internalsÚgetr   Úcategorical_typeÚ
from_codesrP   Údatetime_datarW   Úmake_datetimetzÚ	is_ge_v21rÍ   rõ   ÚviewÚ
make_blockÚDatetimeTZBlockrh   rY   rÇ   r/  )Úitemr‰   Úextension_columnsÚreturn_blockÚ_intÚ	block_arrr*  r  rl   rû   rW   r)  ru   Úpandas_dtypes   &&&&          r6   Ú_reconstruct_blockrB  Î  s  € ÷8 )Ð(à—‘˜ $Ó'€IØ�[Õ!€IØ�tÔÜ×*Ñ*×5Ñ5Ø |Õ"4Ø˜•Oð 6ó %Šð 
�tÔ	Ü×"Ò" 9§?¡?Ó3‰ˆÜ ¨:Õ&6Ó7ˆÜ× Ò ×"Ò"Ü—.‘.×&Ñ&Ø—‘˜wÓ'¨u¸5ð 'ó ‰Cð ˆCßØŸ™¨	Ø.2×.BÑ.BØ.3ð (ó 5�ð �ð	 ð
 
�tÔ	à�:ÕˆÜ�9‹~ Ô"Ð"Ð"Ø •|Õ$ˆØ(Õ.ˆÜ�|Ð%5×6Ò6Üð :ó ;ð ;à×)Ñ)¨#Ó.‰àˆçØ�‰˜sˆÓ8Ð8àˆ~Ðr5   c                 ó¨   € \         P                  ! 4       '       d   R p \        P                  P	                  V4      p\         P
                  ! WR7      # )Úns©rG   )r   Úis_v1r   r   Ústring_to_tzinfoÚdatetimetz_type)rl   rG   s   &&r6   r7  r7    s;   € Ü×Ò×ÒØˆÜ	�‰×	 Ñ	  Ó	$€BÜ×&Ò& tÔ3Ð3r5   c           
      óÞ  € . p. p/ pVP                   P                  pV'       gb   Ve^   VR,          pVP                  R. 4      pVP                  R/ 4      pVR,          p	\        W4      p\	        WWT4      w  r\        WW@V4      pM7\        P                  P                  VP                  4      p
\        V. W@V4      p\        V4       \        WV4      pVP                  p\        P                  P                  WV\!        VP#                  4       4      4      p\        P$                  ! 4       '       d7   ^ RIHp V Uu. uF  p\+        VWÛRR7      NK  	  ppV! VW¬R7      pVVn        V# ^ R	IHp ^ R
IHp V Uu. uF  p\+        VWÛ4      NK  	  ppWÊ.pV! VV4      p\        P6                  ! 4       '       d   VP9                  VVP:                  4      pMV! V4      pVVn        V# u upi u upi )Nr‰   rˆ   rŠ   r‡   )Úcreate_dataframe_from_blocksF)r>  )r¿   r‰   )ÚBlockManager)Ú	DataFrame)rÐ   r!  r3  Ú_add_any_metadataÚ_reconstruct_indexÚ_get_extension_dtypesr   rÍ   rÎ   Únum_rowsÚ'_check_data_column_metadata_consistencyÚ_deserialize_column_indexr    r   r   Útable_to_blocksrÈ   ÚkeysÚis_ge_v3Úpandas.api.internalsrJ  rB  r†   r0  rK  ÚpandasrL  r8  Ú	_from_mgrÚaxes)ÚoptionsÚtableri   Úignore_metadataÚtypes_mapperÚall_columnsrˆ   rŠ   r!  r¢   r¿   Úext_columns_dtypesr‰   r    r_   rJ  r<  ÚblocksrŸ   rK  rL  rY  Úmgrs   &&&&&                  r6   Útable_to_dataframerb    só  € ð €KØ€NØ€JØ—l‘l×2Ñ2€Oç˜Ò:Ø% iÕ0ˆØ(×,Ñ,Ð-=¸rÓBˆØ$×(Ñ(¨°rÓ:ˆ
Ø+¨OÕ<ÐÜ! %Ó9ˆÜ)¨%Ø*5óE‰ˆä2Ø °zóCÑô —‘×)Ñ)¨%¯.©.Ó9ˆÜ2Ø�2�|¨jó
Ðô ,¨KÔ8Ü'¨¸NÓK€Gà×%Ñ%€LÜ�V‰V×#Ñ# G°JÜ$(Ð);×)@Ñ)@Ó)BÓ$CóE€Fä×Ò×ÒÝEñ
 ó
ñ �ô Ø�lÀU÷Láð 	ð 
ñ
 *¨&¸ÔOˆØˆŒàˆ	å6Ý$ñ ó
á�ô ˜t \ÖFÙð 	ð 
ð ÐˆÙ˜6 4Ó(ˆÜ× Ò ×"Ò"Ø×$Ñ$ S¨#¯(©(Ó3‰Bá˜3“ˆBàˆŒàˆ	ùò5
ùò
s   Ä=G%Å9G*c                ó¨  € VR,          pT;'       g    . p/ p\         P                  f   V# V'       d<   V P                   F+  pVP                  pV! V4      p	V	f   K  W–VP                  &   K-  	  V P                   Fc  pVP                  pVP                  V9  g   K"  \        V\        P                  4      '       g   KD   VP                  4       p	W–VP                  &   Ke  	  V EF  p
 V
R,          pV
R,          pW¶9  g   K  V\        9  g   K,  \         P                  ! V4      p	\        V	\         P                  4      '       g   Kd  \        V	\         P                  P                  4      '       d]   V'       g   W´9   d   Kž   \        P                  P!                  V P                  P#                  V4      P                  4      '       d   Ké   \%        V	R4      '       g   Kþ  W–V&   EK  	  \         P&                  ! 4       '       Ed   V'       Eg   V P                   Fò  pVP                  V9  g   K  \        P                  P)                  VP                  4      '       ga   \        P                  P+                  VP                  4      '       g2   \        P                  P-                  VP                  4      '       g   K¥  VP                  V9  g   K¸  \         P                  P                  \.        P0                  R7      WgP                  &   Kô  	  V#   \         d     EK¨  i ; i  \         d    T
R,          p ELLi ; i  \         d     EL‚i ; i)aÏ  
Based on the stored column pandas metadata and the extension types
in the arrow schema, infer which columns should be converted to a
pandas extension dtype.

The 'numpy_type' field in the column metadata stores the string
representation of the original pandas dtype (and, despite its name,
not the 'pandas_type' field).
Based on this string representation, a pandas/numpy dtype is constructed
and then we can check if this dtype supports conversion from arrow.

Ústrings_to_categoricalrv   ru   rx   r/  )Úna_value)r   Úextension_dtyperÐ   rX   ru   rA   r   ÚBaseExtensionTypeÚto_pandas_dtypeÚNotImplementedErrorr@   Ú_pandas_supported_numpy_typesrA  rÍ   ÚStringDtyperH   Úis_dictionaryrÚ   rY   Úuses_string_dtypeÚ	is_stringÚis_large_stringÚis_string_viewrP   Únan)r[  Úcolumns_metadatar]  rZ  ri   rd  Úext_columnsrÚ   ÚtyprA  Úcol_metaru   rW   s   &&&&&        r6   rO  rO  b  sˆ  € ð %Ð%=Õ>ÐØ×!Ð!˜r€Jà€Kô ×"Ñ"Ò*ØÐ÷ Ø—\”\ˆEØ—*‘*ˆCÙ'¨Ó,ˆLØÔ'Ø*6˜EŸJ™JÓ'ñ	 "ð —”ˆØ�j‰jˆØ�:‰:˜[Ö(¬Z¸¼R×=QÑ=Q×-RÔ-Rð7Ø"×2Ñ2Ó4�ð +7˜EŸJ™JÓ'ñ ô %ˆð	$Ø˜LÕ)ˆDð ˜Õ&ˆàÖ" uÔ4QÖ'Qô '×3Ò3°EÓ:ˆLÜ˜,¬×(CÑ(C×DÔDÜ˜l¬K¯N©N×,FÑ,F×GÒG÷ .°Ô1CÙ ðÜŸ8™8×1Ñ1°%·,±,×2DÑ2DÀTÓ2J×2OÑ2O×PÒPÙ$ð Qô ˜<Ð)9×:Ô:Ø(4 Ô%ñ5 %ô: ×$Ò$×&Ó&×/EÐ/EØ—\”\ˆEØ�z‰z Ö,Ü—‘×"Ñ" 5§:¡:×.Ò.Ü—8‘8×+Ñ+¨E¯J©J×7Ò7Ü—8‘8×*Ñ*¨5¯:©:×6Ô6Ø—*‘* JÖ.Ü*5¯.©.×*DÑ*DÌbÏfÉfÐ*DÓ*U�ŸJ™JÓ'ñ "ð ÐøôY 'ô Ûðûô ô 	$Ø˜FÕ#‹Dð	$ûô( $ô Úðús7   Ã LÃ)	L'ÆAMÌL$Ì#L$Ì'L?Ì>L?ÍMÍMc                 ó~   € \         ;QJ d    R  V  4       F  '       d   K   RM	  RM! R  V  4       4      '       g   Q hR# )c              3   óx   "  € T F0  pVR ,          RJ ;'       d    RV9   ;'       g    VR ,          RJx € K2  	  R# 5i)ru   Nrv   r4   )Ú.0rï   s   & r6   Ú	<genexpr>Ú:_check_data_column_metadata_consistency.<locals>.<genexpr>º  sA   é € ð áˆAð 
ˆ6��dÐ	×	0Ð	0˜|¨qÑ0×JÐJ°Q°vµYÀdÐ5JÔJÛùs   ‚:™:¦:FTN)Úall)r^  s   &r6   rQ  rQ  µ  s=   € ÷
 ‹3ñ áó�3�3Š3ñ áó÷ ò ð ò r5   c           
      óž  € V'       dd   V Uu/ uF-  pVP                  R \        VR,          4      4      VR,          bK/  	  ppV P                   Uu. uF  qTP                  WU4      NK  	  ppMV P                  p\        V4      ^8”  dd   \        P
                  P                  P                  \        \        \        P                  V4      4      V Uu. uF  qwR,          NK  	  upR7      pM8\        P
                  P                  Yb'       d   V^ ,          R,          MRR7      p\        V4      ^ 8”  d   \        W‚4      pV# u upi u upi u upi )rv   ru   ©r…   Nrº   )r3  r”   r    rh   r   rÍ   Ú
MultiIndexÚfrom_tuplesrÈ   r¹   ÚastÚliteral_evalÚIndexÚ"_reconstruct_columns_from_metadata)	Úblock_tabler^  rˆ   rï   Úcolumns_name_dictru   Úcolumns_valuesÚ	col_indexr‰   s	   &&&      r6   rR  rR  À  s=  € ßñ !ó
á �ð �E‰E�,Ô 7¸¸&½	Ó BÓCÀQÀvÅYÒNÙ ð 	ð 
ð
 ;F×:RÒ:Ró
Ù:R°$×!Ñ! $Ö-Ñ:Rð 	ð 
ˆð %×1Ñ1ˆô ˆ>Ó˜QÔô —.‘.×+Ñ+×7Ñ7Ü””S×%Ñ% ~Ó6Ó7Ù6DÓE±n¨˜V×$Ð$±nÑEð 8ó 
‰ô
 —.‘.×&Ñ&Ø¾n °Õ!2°6Ö!:ÐRVð 'ó 
ˆô
 ˆ>Ó˜QÔÜ4°WÓMˆà€Nùò9
ùò
ùò Fs   �3E ÁEÃE

c                 ót  € V Uu/ uF  pVP                  R VR,          4      VbK  	  pp. p. pT pV FÒ  p	\        V	\        4      '       d   \        WW•V4      w  rŠpV
f   K/  M€V	R,          R8X  d^   V	R,          p\        P
                  P                  V	R,          V	R,          V	R,          VR7      p
\        V
4      \        V 4      8w  d   Kš  M\        RV	R,           24      hVP                  V
4       VP                  V4       KÔ  	  \        P
                  p\        V4      ^8”  d    VP                  P                  WgR	7      pW�3# \        V4      ^8X  dA   V^ ,          p\        WÜP                  4      '       g   VP                  W×^ ,          R
7      pW�3# VP                  V P                  4      pW�3# u upi )rv   ru   ræ   rç   rè   ré   rê   )rê   ru   zUnrecognized index kind: r}  rº   )r3  rA   rZ   Ú_extract_index_levelr   rÍ   rÎ   rh   rÇ   r“   r~  Úfrom_arraysr‚  rP  )r[  r¢   r^  r]  rï   Úfield_name_to_metadataÚindex_arraysÚindex_namesÚresult_tablerÔ   rÓ   Ú
index_namerÍ   r¿   s   &&&&          r6   rN  rN  á  sÂ  € ñ óáˆAð 	
�‰ˆl˜A˜f�IÓ&¨Ò)Ùð ð ð €LØ€KØ€LÛ"ˆÜ�eœS×!Ò!Ü4HØ UÀLó5RÑ1ˆL zàÒ"áð #ð �6�]˜gÔ%Ø˜v�ˆJÜ%Ÿ.™.×3Ñ3°E¸'µNØ49¸&µMØ9>¸v½Ø9Cð 4ó EˆKô �;Ó¤3 u£:Ô-áð .ô Ð8¸¸v½¸ÐHÓIÐIØ×Ñ˜KÔ(Ø×Ñ˜:Ö&ñ' #ô* 
�‰€Bô ˆ<Ó˜1ÔØ—‘×)Ñ)¨,Ð)ÓJˆð ÐÐô 
ˆ\Ó	˜aÔ	Ø˜Q•ˆÜ˜%§¡×*Ò*à—H‘H˜U°Q­�HÓ8ˆEð ÐÐð —‘˜eŸn™nÓ-ˆàÐÐùòYs   …#F5c                 ó4  € W2,          R ,          p\        W%4      pV P                  P                  V4      pVR8X  d   VRR3# V P                  V4      pVP	                  VR7      p	RV	n        VP                  VP                  P                  V4      4      pWV3# )ru   N)r]  éÿÿÿÿ)Ú _backwards_compatible_index_namerÐ   Úget_field_indexrm   Ú	to_pandasru   Úremove_column)
r[  rŽ  rv   r‹  r]  Úlogical_namer�  rÀ   r­   rÓ   s
   &&&&&     r6   r‰  r‰    s—   € à)Õ5°fÕ=€LÜ1°*ÓK€JØ�‰×$Ñ$ ZÓ0€AàˆB„wà˜T 4Ð'Ð'à
�,‰,�q‹/€CØ—-‘-¨\�-Ó:€KØ€KÔØ×-Ñ-Ø×Ñ×+Ñ+¨JÓ7ó€Lð  jÐ0Ð0r5   c                ó8   € W8X  d   \        V 4      '       d   R# V# )a  Compute the name of an index column that is compatible with older
versions of :mod:`pyarrow`.

Parameters
----------
raw_name : str
logical_name : str

Returns
-------
result : str

Notes
-----
* Part of :func:`~pyarrow.pandas_compat.table_to_blockmanager`
N)rÞ   )Úraw_namer–  s   &&r6   r’  r’  )  s   € ð$ ÔÔ$<¸X×$FÒ$FÙàÐr5   c                 ó6   € R p\         P                  ! W4      RJ# )z^__index_level_\d+__$N)ÚreÚmatch)ru   Úpatterns   & r6   rÞ   rÞ   A  s   € Ø&€GÜ�8Š8�GÓ"¨$Ð.Ð.r5   c                  ó  € \         '       gp   \         P                  R RRRRRRRR\        P                  RRR	\        P                  R
\        P
                  R\        P                  R\        P                  /
4       \         # )r   rM   r<   zdatetime64[ns]r;   r   rZ   r   rN   r  Úfloatingr=   r   )Ú_pandas_logical_type_mapr   rP   rS   r   r   Úobject_r4   r5   r6   Úget_pandas_logical_type_mapr¡  F  sm   € ÷ $Ó#Ü ×'Ñ'Ø�OØÐ(ØÐ*Ø�uØ”R—Y‘YØ�eØ”r—x‘xØœŸ
™
Ø”r—z‘zØ”R—Z‘Zð)
ô 	ô $Ð#r5   c                ó¨   € \        4       p W,          #   \         d3    RT 9   d   \        P                  u # \        P                  ! T 4      u # i ; i)zçGet the numpy dtype that corresponds to a pandas type.

Parameters
----------
pandas_type : str
    The result of a call to pandas.lib.infer_dtype.

Returns
-------
dtype : np.dtype
    The dtype that corresponds to `pandas_type`.
r³   )r¡  r@   rP   r   rW   )rw   Úpandas_logical_type_maps   & r6   Ú_pandas_type_to_numpy_typer¤  Y  sK   € ô :Ó;Ðð%Ø&Õ3Ð3øÜô %Ø�kÔ!ä—:‘:ÒÜ�xŠx˜Ó$Ò$ð	%ús   Œ ”"A¸AÁAc                óÈ  € \         P                  p\        V RR4      ;'       g    V .p\        V RR4      ;'       g    R.p\        W1/ R7       UUu. uF<  w  rVWVP	                  R\        VP                  4      4      VP	                  RR4      3NK>  	  ppp. p\        P                  ! RR4      p	V EFÀ  w  rZp\        V
4      pV\        P                  8X  d   VP                  V	4      pEMLV
R	8X  dŸ   \        P                  P                  V^ ,          R
,          R,          4      pVP!                  VRR7      P#                  V4      p\         P$                  ! 4       '       d-   VP'                  \        P(                  ! V4      ^ ,          4      pM§V
R8X  dE   \         P                  P+                  V Uu. uF  p\,        P.                  ! V4      NK  	  up4      pM\VP                  R8X  d*   VR8X  d#   RV
9   g   V
R9   d   VP1                  V4       EKd  VP                  V8w  d   VP3                  V4      pVP                  V8w  d   V
R	8w  d   VP3                  V4      pVP1                  V4       EKÃ  	  \5        V4      ^8”  d   VP7                  W„V P8                  R7      # VP+                  V^ ,          V^ ,          P                  V P:                  R7      # u uppi u upi )a  Construct a pandas MultiIndex from `columns` and column index metadata
in `column_indexes`.

Parameters
----------
columns : List[pd.Index]
    The columns coming from a pyarrow.Table
column_indexes : List[Dict[str, str]]
    The column index metadata deserialized from the JSON schema metadata
    in a :class:`~pyarrow.Table`.

Returns
-------
result : MultiIndex
    The index reconstructed using `column_indexes` metadata with levels of
    the correct type.

Notes
-----
* Part of :func:`~pyarrow.pandas_compat.table_to_blockmanager`
r„   Nrj   )Ú	fillvaluerw   rx   r�   rµ   r;   ro   rf   T)Úutcr=   rZ   r>   r³   r}  )rW   ru   )r   rN   )r   rÍ   rg   r   r3  rZ   rW   ÚoperatorÚmethodcallerr¤  rP   rS   r¹   r   r   rG  Úto_datetimeÚ
tz_convertrU  Úas_unitr6  r‚  r=   ÚDecimalr“   Úastyperh   r~  r…   ru   )r‰   rˆ   rÍ   r„   Úlabelsr¥   r‡  Úlevels_dtypesÚ
new_levelsÚencoderrA  Únumpy_dtyperW   rG   rÀ   s   &&             r6   rƒ  rƒ  p  so  € ô, 
�‰€Bô �W˜h¨Ó-×:Ð:°'°€FÜ�W˜g tÓ,×6Ð6°°€Fô !,Ø¨bõ!
ôñ!
ÑˆEð 
—‘˜m¬S°·±Ó-=Ó>Ø	�‰�| TÓ	*ó	,ñ!
ð ñ ð €JÜ×#Ò# H¨gÓ6€Gä,9Ñ(ˆ˜[Ü*¨<Ó8ˆð ”B—I‘IÔØ—I‘I˜gÓ&ŠEà˜\Ô)Ü—‘×(Ñ(Ø˜qÕ! *Õ-¨jÕ9ó;ˆBà—N‘N 5¨d�NÓ3×>Ñ>¸rÓBˆEÜ×#Ò#×%Ò%ð Ÿ™¤b×&6Ò&6°{Ó&CÀAÕ&FÓG�øà˜YÔ&Ü—N‘N×(Ñ(ÁeÓ)LÁeÀ¬'¯/ª/¸!Ö*<ÁeÑ)LÓM‰Eà�K‰K˜5Ô  [°HÔ%<Ø˜LÔ(¨LÐ<QÔ,Qð ×Ñ˜eÔ$ÚØ�[‰[˜EÔ!Ø—L‘L Ó'ˆEà�;‰;˜+Ô%¨,¸,Ô*FØ—L‘L Ó-ˆEà×Ñ˜%× ñO -:ôR ˆ:ƒ˜ÔØ�}‰}˜Z°w·}±}ˆ}ÓEÐEà�x‰x˜
 1�¨Z¸­]×-@Ñ-@ÀwÇ|Á|ˆxÓTÐTùóoùò: *Ms   ÁAKÆ4K
c                 óš  € / p/ pV P                   pVR ,          pV Uu. uF  p\        V\        4      '       g   K  VNK  	  pp\        V4      p\        VR,          4      V,
          p\	        VR,          4       EFk  w  ršV
P                  R4      pV'       g%   V
R,          pW˜8¼  d   WYV,
          ,          pVf   RpVP                  V4      pVR8w  g   K]  V
R,          R8X  g   Km  W,          p\        VP                  \        P                  P                  4      '       g   K«  V
R,          pV'       g   K¾  VP                  R4      pV'       g   KÙ  WýP                  P                  8w  g   Kõ  VP                  4       p\        P                  ! R	VR
7      p\        P                  P                  VVR7      p\        P                   ! WL,          P"                  V4      W<&   VW,&   EKn  	  \        V4      ^ 8”  dÎ   . p. p\%        \        V P                   4      4       Fr  p	W’9   d1   VP'                  W),          4       VP'                  W9,          4       K9  VP'                  W	,          4       VP'                  V P                   V	,          4       Kt  	  \        P(                  P+                  V\        P                   ! V4      R7      # V # u upi )r‡   r‰   rv   ru   ÚNonerw   r;   ro   rf   rD  rE  )rX   )rÐ   r‘  )rÐ   rA   rZ   rh   rÌ   r3  r“  rX   r   r   rF   rG   r”  r&  ÚArrayrñ   rÚ   ru   rç   r“   ÚTablerŠ  )r[  r!  Úmodified_columnsÚmodified_fieldsrÐ   r‡   Úidx_colÚn_index_levelsÚ	n_columnsrÀ   ru  r˜  Úidxr­   ro   Úmetadata_tzÚ	convertedÚtz_aware_typer  r‰   r   s   &&                   r6   rM  rM  Ç  s;  € ØÐØ€Oà�\‰\€Fà# OÕ4€Má,9ó 2©M Ü" 7¬C×0÷ �W©M€Mð 2ä˜Ó'€NÜ�O IÕ.Ó/°.Õ@€Iô ! °Õ!;×<‰ˆà—<‘< Ó-ˆßà Õ'ˆHØŒ~à(¨Y­Õ7�ØÒØ!�à×$Ñ$ XÓ.ˆØ�"Ž9Ø˜Õ&¨,Ö6Ø•j�Ü! #§(¡(¬B¯F©F×,@Ñ,@×AÒAÙØ# JÕ/�ßÙØ&Ÿl™l¨:Ó6�ß‘; ;·(±(·+±+Ö#=Ø #§¡£�IÜ$&§L¢L°¸+Ô$F�MÜ$&§H¡H×$8Ñ$8¸Ø>Kð %9ó %M�Mô ,.¯8ª8°FµK×4DÑ4DØ4Aó,C�OÑ(à,9Ð$Ô)ñ= =ô@ ÐÓ˜qÔ ØˆØˆÜ”s˜5Ÿ<™<Ó(Ö)ˆAØÔ$Ø—‘Ð/Õ2Ô3Ø—‘˜oÕ0Ö1à—‘˜u�xÔ(Ø—‘˜eŸl™l¨1�oÖ.ñ *ô �x‰x×#Ñ# G´B·I²I¸fÓ4EÐ#ÓFÐFàˆùòe2s
   žK»Kc                ó¬   € \         P                  P                  V4      pV P                  P	                  R4      P                  P                  V4      p V # )z:
Make a datetime64 Series timezone-aware for the given tz
r§  )r   r   rG  ÚdtÚtz_localizer«  )ÚseriesrG   s   &&r6   Úmake_tz_awarerÅ    sA   € ô 
�‰×	 Ñ	  Ó	$€BØ�i‰i×#Ñ# EÓ*ß‘RŸ
™
 2›ð à€Mr5   rã   )é   NT)NNT)NFN>   r   r   r   r   r   r   r>   r   r   r   r   r   r   )?r€  Úcollections.abcr   Ú
concurrentr   Úconcurrent.futures.threadr,  r   r=   Ú	itertoolsr   r™   r¨  rš  r•   ÚnumpyrP   ÚImportErrorr�   r   Úpyarrow.libr   r   r	   r   rO   rŸ  r7   rD   rT   r`   rq   r€   r±   r˜   r”   rÁ   rÖ   rÉ   rØ   rä   rÏ   rÊ   rÅ   rý   r#  rù   rB  r7  rb  rj  rO  rQ  rR  rN  r‰  r’  rÞ   r¡  r¤  rƒ  rM  rÅ  r4   r5   r6   Ú<module>rÎ     s5  ðó& Ý $Ý ó !Ý Û Ý !Û Û Û 	Û ðÛó ß DÑ Dð Ð ØÐ ØÐ òò:ò"#ò,ò"$ò&,ô^jòZò($òN(ò&?QòD;Qò|
*òòò9ò
ô &ôFa"òHô&BòJ4ô;ò@!Ð òPòfòôB2ôj1ò&ò0/ò
$ò&%ò.TUòn:ôBøðK' ô Ø	‚Bðús   ¶C Ã	CÃC