Ë
    Èš§j¥l ã                   ó$+  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlmZ d dlmZ 	 d dlZd dlZd dlZd dlmZ d dlZd dlZd dlmZ d dlZd dlmZ d dlm Z m!Z!m"Z"m#Z#m$Z$ 	 d dl%Z&	 d dl'm(Z) 	 d dl*m+Z, ejZ                  jP                  Z. G d„ d«      Z/d„ Z0d	„ Z1d
„ Z2ejf                  d„ «       Z4ejf                  d„ «       Z5ejf                  d„ «       Z6 ejf                  d¬«      d„ «       Z7ejf                  d„ «       Z( ejf                  ddgddg¬«      d„ «       Z8ejZ                  jV                  d„ «       Z9d„ Z:ejZ                  jV                  d„ «       Z;d„ Z<d„ Z=ejZ                  jV                  d„ «       Z>ejZ                  jV                  d„ «       Z?ejZ                  jV                  d„ «       Z@ejZ                  jV                  d „ «       ZAejZ                  jV                  d!„ «       ZBejZ                  jV                  d"„ «       ZCd#„ ZDd$„ ZEd%„ ZFejZ                  j�                  d&g d'¢«      d(eHd)eId*eIfd+„«       ZJd,„ ZKd-„ ZLejZ                  jV                  d.„ «       ZMejZ                  jV                  d/„ «       ZNejZ                  jV                  d0„ «       ZOd1„ ZPd2„ ZQejZ                  j�                  d3 ej¤                  d4d¬5«      d6d7gg«      ejZ                  j�                  d8ddg«      ejZ                  jV                  d9„ «       «       «       ZSejZ                  jV                  d:„ «       ZTejZ                  jV                  ejZ                  jª                  d;„ «       «       ZVd<„ ZWd=„ ZXejZ                  jV                  d>„ «       ZYejZ                  jV                  �dd?„«       ZZejZ                  jV                  d@„ «       Z[ejZ                  jJ                  ejZ                  jV                  dA„ «       «       Z\ejZ                  jV                  dB„ «       Z]ejZ                  jV                  dC„ «       Z^ejZ                  jV                  dD„ «       Z_ejZ                  jJ                  ejZ                  jV                  dE„ «       «       Z`ejZ                  jV                  dF„ «       ZaejZ                  jV                  dG„ «       Zb�ddH„ZcejZ                  jJ                  ejZ                  jV                  dI„ «       «       ZdejZ                  jV                  dJ„ «       ZeejZ                  jJ                  ejZ                  jV                  dK„ «       «       ZfejZ                  jV                  dL„ «       ZgejZ                  jV                  dM„ «       ZhejZ                  jV                  dN„ «       ZiejZ                  jV                  dO„ «       ZjejZ                  jV                  dP„ «       ZkejZ                  jV                  dQ„ «       ZlejZ                  jJ                  ejZ                  jV                  dR„ «       «       ZmejZ                  jV                  ejZ                  j�                  dSdT„ dU„ g«      dV„ «       «       ZnejZ                  jV                  ejZ                  j�                  dWddg«      ejZ                  j�                  dSdX„ dY„ g«      dZ„ «       «       «       ZoejZ                  j�                  dSd[„ d\„ g«      d]„ «       ZpejZ                  j�                  dSd^„ d_„ g«      d`„ «       Zqda„ Zrdb„ ZsejZ                  jV                  ejZ                  jJ                  dc„ «       «       Ztdd„ Zude„ Zvdf„ Zwdg„ Zxdh„ Zydi„ Zzdj„ Z{ejZ                  jV                  dk„ «       Z|dl„ Z}�ddm„Z~dn„ Zdo„ Z€dp„ Z�ejZ                  jV                  dq„ «       Z‚ejZ                  jV                  dr„ «       ZƒejZ                  jV                  ds„ «       Z„ejZ                  jV                  dt„ «       Z…ejZ                  jV                  du„ «       Z†ejZ                  jV                  dv„ «       Z‡ejZ                  jV                  dw„ «       ZˆejZ                  jV                  dx„ «       Z‰ejZ                  jV                  dy„ «       ZŠejZ                  jV                  dz„ «       Z‹d{„ ZŒd|„ Z�d}„ ZŽd~„ Z�ejZ                  j�                  dddg«      d€„ «       Z�d�„ Z‘ejZ                  jV                  d‚„ «       Z’ejZ                  jV                  dƒ„ «       Z“ejZ                  jV                  d„„ «       Z”ejZ                  jV                  d…„ «       Z•d†„ Z–d‡„ Z—ejZ                  jV                  ejZ                  j�                  dˆd‰dŠg«      ejZ                  j�                  d‹dŒdg«      ejZ                  j�                  dWddg«      ejZ                  j�                  d�g dŽ¢g d�¢fg d�¢g dŽ¢fg dŽ¢g d�¢fg d�¢g d‘¢fg d’¢g dŽ¢fg d�¢g d“¢fg d”¢g d”¢fg«      d•„ «       «       «       «       «       Z˜ejZ                  jJ                  d–„ «       Z™ejf                  d—„ «       ZšejZ                  jV                  ejZ                  jª                  d˜„ «       «       Z›ejZ                  jV                  ejZ                  jª                  d™„ «       «       ZœejZ                  jV                  ejZ                  jª                  dš„ «       «       Z�ejZ                  jV                  ejZ                  jª                  d›„ «       «       ZžejZ                  jV                  dœ„ «       ZŸejZ                  jV                  d�„ «       Z ejZ                  jJ                  dž„ «       Z¡ejZ                  jV                  dŸ„ «       Z¢ejZ                  jV                  d „ «       Z£ejZ                  jV                  d¡„ «       Z¤d¢„ Z¥d£„ Z¦d¤„ Z§d¥„ Z¨ejZ                  jV                  d¦„ «       Z©ejZ                  jV                  d§„ «       Zªd¨„ Z«ejZ                  �jX                  d©„ «       Z­ejZ                  �jX                  dª„ «       Z®d«„ Z¯ejZ                  �jX                  d¬„ «       Z°ejZ                  jJ                  d­„ «       Z±ejZ                  jJ                  ejZ                  j�                  d®g d¯¢«      d°„ «       «       Z²d±„ Z³d²„ Z´d³„ ZµejZ                  jJ                  d´„ «       Z¶ejZ                  jJ                  dµ„ «       Z·ejZ                  jJ                  d¶„ «       Z¸d·„ Z¹d¸„ ZºejZ                  �jw                  d¹«      dº„ «       Z¼ejZ                  jJ                  ejZ                  j�                  d®g d»¢«      d¼„ «       «       Z½d½„ Z¾ejZ                  jV                  ejZ                  jJ                  d¾„ «       «       Z¿ejZ                  jV                  ejZ                  jJ                  ejZ                  �j�                  e�j‚                  d¿k(  dÀ¬Á«      dÂ„ «       «       «       ZÂejZ                  jV                  ejZ                  jJ                  dÃ„ «       «       ZÃejZ                  jV                  dÄ„ «       ZÄejZ                  jV                  ejZ                  jJ                  dÅ„ «       «       ZÅdÆ„ ZÆdÇ„ ZÇejZ                  jV                  ejZ                  jJ                  dÈ„ «       «       ZÈejZ                  jV                  ejZ                  jJ                  dÉ„ «       «       ZÉejZ                  jV                  ejZ                  jJ                  dÊ„ «       «       ZÊejZ                  jV                  ejZ                  jJ                  dË„ «       «       ZËejZ                  jV                  dÌ„ «       ZÌejZ                  jV                  ejZ                  jJ                  dÍ„ «       «       ZÍejZ                  jV                  ejZ                  jJ                  dÎ„ «       «       ZÎdÏ„ ZÏejZ                  jJ                  ejZ                  jV                  dÐ„ «       «       ZÐejZ                  jV                  ejZ                  jJ                  dÑ„ «       «       ZÑdÒ„ ZÒ	 �ddÓ„ZÓejZ                  jV                  dÔ„ «       ZÔejZ                  jV                  ejZ                  jJ                  dÕ„ «       «       ZÕdÖ„ ZÖd×„ Z×dØ„ ZØejZ                  jV                  ejZ                  j                  dÙ„ «       «       ZÙdÚ„ ZÚejZ                  jJ                  dÛ„ «       ZÛ�ddÜ„ZÜdÝ„ ZÝdÞ„ ZÞejZ                  jV                  dß„ «       ZßejZ                  jV                  dà„ «       ZàejZ                  jV                  dá„ «       ZáejZ                  jV                  dâ„ «       ZâejZ                  jV                  ejZ                  jJ                  dã„ «       «       ZãejZ                  jV                  ejZ                  jJ                  dä„ «       «       ZäejZ                  jV                  ejZ                  jJ                  då„ «       «       Zådæ„ Zædç„ Zçdè„ Zèdé„ Zédê„ ZêejZ                  j                  ejZ                  jV                  dë„ «       «       Zëdì„ ZìejZ                  jV                  dí„ «       ZíejZ                  jV                  dî„ «       ZîejZ                  jV                  ejZ                  jJ                  dï„ «       «       Zïdð„ ZðejZ                  jV                  dñ„ «       ZñejZ                  jV                  ejZ                  jª                  dò„ «       «       ZòdóZóejZ                  jV                  ejZ                  jª                  dô„ «       «       ZôejZ                  jV                  dõ„ «       ZõejZ                  jP                  dö„ «       ZöejZ                  jP                  d÷„ «       Z÷ejZ                  jP                  dø„ «       ZøejZ                  jP                  dù„ «       ZùejZ                  jP                  dú„ «       ZúejZ                  jP                  dû„ «       ZûejZ                  jP                  dü„ «       ZüejZ                  j�                  dýdþdÿg«      �d „ «       ZýejZ                  j�                  dýdþdÿg«      �d„ «       Zþ�d„ Zÿ�d„ �Z ejZ                  j�                  �d�d«      �d„ «       �Z�d„ �ZejZ                  jV                  �d„ «       �Z�d	„ �Z�d
„ �ZejZ                  j�                  dýdþdÿg«      �d„ «       �Z�d„ �Z�d„ �ZejZ                  �j                  �d„ «       �Z
y# e$ r dZY �Œ&w xY w# e$ r dZ&Y �Œûw xY w# e$ r dZ)Y �Œw xY w# e$ r dZ,Y �Œ	w xY w(  é    N)Úcopytree)Úquote)Úis_threading_enabled)ÚFSProtocolClassÚProxyHandlerÚ_configure_s3_limited_userÚ_filesystem_uriÚ
change_cwdc                   ó   — e Zd Zd„ Zdd„Zy)ÚTableStreamWrapperc                 ó   — || _         y ©N©Útable)Úselfr   s     ú]C:\Users\Luka\AppData\Local\Temp\pip-target-o84fipzb\lib\python\pyarrow/tests/test_dataset.pyÚ__init__zTableStreamWrapper.__init__F   s	   € Øˆ�
ó    Nc                 ó8   — | j                   j                  |«      S r   )r   Ú__arrow_c_stream__)r   Úrequested_schemas     r   r   z%TableStreamWrapper.__arrow_c_stream__I   s   € Ø�z‰z×,Ñ,Ð-=Ó>Ð>r   r   )Ú__name__Ú
__module__Ú__qualname__r   r   © r   r   r   r   E   s   „ òô?r   r   c           	      ó4  — dd l }dd l} |j                   ddd«      } |j                  d¬«      }|j                  g d¢«      }g }t	        | «      D ].  }|j                  ||t        |«      t        |«      f«       ||z  }Œ0 t        j                  |g d¢¬«      S )	Nr   iÐ  é   é   )Údays)ÚgreenÚblueÚyellowÚredÚorange)ÚdateÚindexÚvalueÚcolor©Úcolumns)
ÚdatetimeÚ	itertoolsÚ	timedeltaÚcycleÚrangeÚappendÚfloatÚnextÚpdÚ	DataFrame)Únr+   r,   ÚdayÚintervalÚcolorsÚdataÚis           r   Ú_generate_datar;   M   sŒ   € ÛÛà
ˆ(×
Ñ
˜D ! QÓ
'€CØ!ˆx×!Ñ! qÔ)€HØ�_‰_ÒIÓJ€Fà€DÜ�1ŽXˆØ�‰�S˜!œU 1›X¤t¨F£|Ð4Ô5Øˆx‰‰ð ô �<‰<˜Ò&IÔJÐJr   c           
      óÈ  — t        j                  t        j                  dt        j                  «       «      t        j                  dt        j                  «       «      t        j                  dt        j
                  «       «      t        j                  dt        j                  «       «      g«      }t         j                  j                  | |d¬«      }|j                  «       S )Nr%   r&   r'   r(   F)ÚschemaÚpreserve_index)
Úpar=   ÚfieldÚdate32Úint64Úfloat64ÚstringÚTableÚfrom_pandasÚreplace_schema_metadata)Údfr=   r   s      r   Ú_table_from_pandasrI   ]   s‘   € Ü�Y‰YÜ
�‰�œŸ™›Ó%Ü
�‰�œ"Ÿ(™(›*Ó%Ü
�‰�œ"Ÿ*™*›,Ó'Ü
�‰�œ"Ÿ)™)›+Ó&ð	ó €Fô �H‰H× Ñ  ¨FÀ5Ð ÓI€EØ×(Ñ(Ó*Ð*r   c                 ó:  — | j                  «       D ]|  }|j                  «       5 }t        |t        j                  «      sJ ‚|j
                  rJ ‚|j                  «       sJ ‚|j                  «       sJ ‚|j                  «       rJ ‚	 d d d «       Œ~ y # 1 sw Y   Œ‰xY wr   )	Úget_fragmentsÚopenÚ
isinstancer?   Ú
NativeFileÚclosedÚseekableÚreadableÚwritable)ÚdatasetÚfragmentÚnfs      r   Ú+assert_dataset_fragment_convenience_methodsrV   h   sz   € à×)Ñ)Ö+ˆØ�]‰]Œ_ Ü˜b¤"§-¡-Ô0Ð0Ð0Ø—y’yÐ �=Ø—;‘;”=Ð �=Ø—;‘;”=Ð �=Ø—{‘{”}Ð$Ð$�}÷ ˆ_ñ ,ßˆ_ús   ¤A!BÂB	c                  óÜ  — t        j                  «       } ddg}t        |«      D �]²  \  }}|› d|› d�}| j                  |«       | j	                  |«      5 }t        t        d«      «      t        t        t        t        d«      «      «      t        t        t        t        d«      «      «      |gdz  t        d«      D �cg c]  }|dz  t        |dz  «      dœ‘Œ c}g}t        j                  dt        j                  «       fd	t        j                  «       fd
t        j                  «       fdt        j                  «       fdt        j                  t        j                  «       t        j                  «       dœ«      fg«      }t        j                   ||¬«      }	t        j"                  j%                  |	g«      }
t'        j(                  |
|«       d d d «       �Œµ | S c c}w # 1 sw Y   �ŒÇxY w)Nzsubdir/1/xxxzsubdir/2/yyyz/fileú.parquetr   é   ©ÚaÚbÚi64Úf64ÚstrÚconstÚstruct©r=   )ÚfsÚ_MockFileSystemÚ	enumerateÚ
create_dirÚopen_output_streamÚlistr/   Úmapr1   r_   r?   r=   rB   rC   rD   ra   Úrecord_batchrE   Úfrom_batchesÚpqÚwrite_table)ÚmockfsÚdirectoriesr:   Ú	directoryÚpathÚoutÚjr9   r=   Úbatchr   s              r   rn   rn   s   s�  € ä×ÑÓ!€Fð 	Øð€Kô
 " +×.‰ˆˆ9Ø�˜E !  HÐ-ˆØ×Ñ˜)Ô$Ø×&Ñ& tÔ,°ä”U˜1“X“Ü”Sœ¤ a£Ó)Ó*Ü”Sœœe A›hÓ'Ó(Ø��a‘Ü8=¸a¼ÓA¹°1�q˜1‘u¤3 q¨1¡u£:Ó.¸ÑAðˆDô —Y‘YØœŸ™›
Ð#ØœŸ
™
›Ð%ØœŸ	™	›Ð$Øœ"Ÿ(™(›*Ð%Øœ2Ÿ9™9¬2¯8©8«:¼B¿I¹I»KÑ%HÓIÐJð ó ˆFô —O‘O D°Ô8ˆEÜ—H‘H×)Ñ)¨5¨'Ó2ˆEä�N‰N˜5 #Ô&÷% -Ñ,ð /ð. €Mùò B÷ -Ñ,ús    ÁA(G!Â=GÃC7G!ÇG!Ç!G+	c            
      óv  — t        j                  «       } t        j                  t        j                  ddgt        j
                  «       ¬«      t        j                  j                  t        j                  ddgt        j
                  «       ¬«      ddg«      dœ«      }t        j                  t        j                  dd	gt        j                  «       ¬«      t        j                  j                  t        j                  ddgt        j                  «       ¬«      d
dg«      dœ«      }| j                  d«       d}| j                  |«      5 }t        j                  ||«       ddd«       d}| j                  |«      5 }t        j                  ||«       ddd«       | ||fS # 1 sw Y   Œ@xY w# 1 sw Y   ŒxY w)zÙ
    Creates a _MockFileSystem with two parquet files that have promotable schemas.
    - file1: value: int8, dictionary: dictionary<int8, string>
    - file2: value: uint16, dictionary: dictionary<int16, string>
    r   é   ©Útyper   r[   r\   ©r'   Ú
dictionaryrY   é   ÚdÚcz
subdir/zzzzsubdir/zzz/file1.parquetNzsubdir/zzz/file2.parquet)rc   rd   r?   r   ÚarrayÚint8ÚDictionaryArrayÚfrom_arraysÚuint16Úint16rf   rg   rl   rm   )rn   Útable1Útable2Úpath1rr   Úpath2s         r   Úpromotable_mockfsrˆ   –   sS  € ô ×ÑÓ!€Fä�X‰XÜ—‘˜1˜a˜&¤r§w¡w£yÔ1Ü×(Ñ(×4Ñ4Ü�H‰H�a˜�V¤"§'¡'£)Ô,Ø�#ˆJó
ñó €Fô �X‰XÜ—‘˜1˜a˜&¤r§y¡y£{Ô3Ü×(Ñ(×4Ñ4Ü�H‰H�a˜�V¤"§(¡(£*Ô-Ø�#ˆJó
ñó €Fð ×Ñ�lÔ#Ø&€EØ	×	"Ñ	" 5Ô	)¨SÜ
�‰�v˜sÔ#÷ 
*ð '€EØ	×	"Ñ	" 5Ô	)¨SÜ
�‰�v˜sÔ#÷ 
*ð �5˜%ÐÐ÷ 
*Ð	)ú÷ 
*Ð	)ús   ÅF#Å?F/Æ#F,Æ/F8c                 óØ   ‡‡‡	— ddl m}m} ddlm}  |«       Šˆfd„Št        «       Š	ˆˆ	fd„}| j                  |d|«        | |‰«      «      }t        j                  ˆˆ	fd„«       }||fS )	Nr   )ÚLocalFileSystemÚPyFileSystemr   )r   c                 ó^   •— | D �ch c]  }‰j                  t        |«      «      ’Œ c}S c c}w r   )Únormalize_pathr_   )ÚpathsÚpÚlocalfss     €r   Ú
normalizedz#open_logging_fs.<locals>.normalizedÂ   s*   ø€ Ù8=Ó>¹°1�×&Ñ&¤s¨1£vÕ.¸Ñ>Ð>ùÒ>s   †!*c                 ó�   •— ‰j                  t        |«      «      }‰j                  |«       | j                  j	                  |«      S r   )r�   r_   ÚaddÚ_fsÚopen_input_file)r   rq   r�   Úopeneds     €€r   r•   z(open_logging_fs.<locals>.open_input_fileÇ   s8   ø€ Ø×%Ñ%¤c¨$£iÓ0ˆØ�
‰
�4ÔØ�x‰x×'Ñ'¨Ó-Ð-r   r•   c              3   óŽ   •K  — ‰j                  «        	 d –—  ‰‰«       ‰| «      k(  sJ ‚y #  ‰‰«       ‰| «      k(  sJ ‚w xY w­wr   )Úclear)Úexpected_openedr‘   r–   s    €€r   Úassert_opensz%open_logging_fs.<locals>.assert_opensÐ   sI   øè ø€ à�‰Œð	EÛá˜fÓ%©°OÓ)DÒDÐDÑDø‘:˜fÓ%©°OÓ)DÒDÐDÑDüs   ƒA•- ™A­AÁA)	Ú
pyarrow.fsrŠ   r‹   Útest_fsr   ÚsetÚsetattrÚ
contextlibÚcontextmanager)
ÚmonkeypatchrŠ   r‹   r   r•   rc   rš   r�   r‘   r–   s
          @@@r   Úopen_logging_fsr¢   º   so   ú€ ç8å%áÓ€Gô?ô ‹U€Fõ.ð ×Ñ˜Ð&7¸ÔIÙ	‘l 7Ó+Ó	,€Bä×ÑôEó ðEð ˆ|ÐÐr   Úmodule)Úscopec           
      óö  — | j                   j                  j                  d«       | j                   j                  j                  d«       t        d«      }t	        j
                  «       }t        |«      }t        d||dz  «      D �cg c]  }|j                  |||dz  z    ‘Œ c}\  }}}}|j                  d«       t        |«      }t        t        d||dz  «      D �cg c]  }|j                  |||dz  z    ‘Œ c}«      D ]D  \  }}	d|› d	�}
|j                  |
«      5 }t        j                  t        |	«      |«       d d d «       ŒF |j                  d
«       |j                  |j                   j"                  j$                  |j&                  g«      D ]b  \  }}	d|d   › d|d   › �}|› d�}
|j                  |«       |j                  |
«      5 }t        j                  t        |	«      |«       d d d «       Œd |j                  d«       |j                  |j                   j"                  j(                  |j                   j"                  j*                  g«      D ]b  \  }}	d|d   › d|d   › �}|› d�}
|j                  |«       |j                  |
«      5 }t        j                  t        |	«      |«       d d d «       Œd |j                  d«       |j                  d«      D ]Y  \  }}	d|› �}|› d�}
|j                  |«       |j                  |
«      5 }t        j                  t        |	«      |«       d d d «       Œ[ |S c c}w c c}w # 1 sw Y   �ŒQxY w# 1 sw Y   �ŒËxY w# 1 sw Y   �ŒxY w# 1 sw Y   Œ˜xY w)NÚpandasÚparquetéè  r   r{   Úplainé
   zplain/chunk-rX   r=   zschema/Ú/r   z/chunk.parquetÚhivez
hive/year=z/month=Ú
hive_colorr(   zhive_color/color=)ÚconfigÚpyarrowÚrequiresr;   rc   rd   Úlenr/   Úilocrf   re   rg   rl   rm   rI   Úgroupbyr%   ÚdtÚ	dayofweekr(   ÚyearÚmonth)ÚrequestrH   rn   r5   r:   Údf_aÚdf_bÚdf_cÚdf_dÚchunkrq   rr   ÚpartÚfolders                 r   ÚmultisourcefsrÀ   Û   s#  € à‡N�N×Ñ×#Ñ# HÔ-Ø‡N�N×Ñ×#Ñ# IÔ.ä	˜Ó	€BÜ×ÑÓ!€Fô 	ˆB‹€AÜ9>¸qÀ!ÀQÈÁTÔ9JÓKÑ9J°A˜bŸg™g a¨¨!¨Q©$©Ò/Ð9JÑKÑ€Dˆ$��dð ×Ñ�gÔÜˆD‹	€AÜ¼UÀ1ÀaÈÈBÉÔ=OÓPÑ=O¸˜tŸy™y¨¨1¨Q°©U©7Ò3Ð=OÑPÖQ‰ˆˆ5Ø˜a˜S Ð)ˆØ×&Ñ& tÔ,°Ü�N‰NÔ-¨eÓ4°cÔ:÷ -Ð,ð Rð ×Ñ�hÔØ—|‘| T§Y¡Y§\¡\×%;Ñ%;¸T¿Z¹ZÐ$HÖI‰ˆˆeØ˜4 ™7˜) 1 T¨!¡W IÐ.ˆØ�˜Ð(ˆØ×Ñ˜&Ô!Ø×&Ñ& tÔ,°Ü�N‰NÔ-¨eÓ4°cÔ:÷ -Ð,ð	 Jð ×Ñ�fÔØ—|‘| T§Y¡Y§\¡\×%6Ñ%6¸¿	¹	¿¹×8JÑ8JÐ$KÖL‰ˆˆeØ˜d 1™g˜Y g¨d°1©g¨YÐ7ˆØ�˜Ð(ˆØ×Ñ˜&Ô!Ø×&Ñ& tÔ,°Ü�N‰NÔ-¨eÓ4°cÔ:÷ -Ð,ð	 Mð ×Ñ�lÔ#Ø—|‘| GÖ,‰ˆˆeØ$ T FÐ+ˆØ�˜Ð(ˆØ×Ñ˜&Ô!Ø×&Ñ& tÔ,°Ü�N‰NÔ-¨eÓ4°cÔ:÷ -Ð,ð	 -ð €MùòM Lùò Qç,Ñ,ú÷ -Ñ,ú÷ -Ñ,ú÷ -Ð,ús<   ÂL>ÃMÄ MÇ MÊ M"Ì M/ÍM	ÍM	Í"M,	Í/M8	c           
      óÈ  — t        j                  «       }t        j                  dd¬«      }t        j                  d«      }t        j
                  t        j                  t        j                  dt        j                  «       «      t        j                  dt        j                  «       «      g«      «      |_        t        j                  | |||«      }|j                  «       S )NÚsubdirT©Ú	recursiveÚgroupÚkey)ÚdsÚParquetFileFormatrc   ÚFileSelectorÚFileSystemFactoryOptionsÚDirectoryPartitioningr?   r=   r@   Úint32rD   ÚpartitioningÚFileSystemDatasetFactoryÚfinish)rn   ÚformatÚselectorÚoptionsÚfactorys        r   rS   rS     s¡   € ä×!Ñ!Ó#€FÜ�‰˜x°4Ô8€HÜ×)Ñ)¨(Ó3€GÜ×3Ñ3Ü
�	‰	Ü�H‰H�WœbŸh™h›jÓ)Ü�H‰H�UœBŸI™I›KÓ(ð
ó 	ó€GÔô ×)Ñ)¨&°(¸FÀGÓL€GØ�>‰>ÓÐr   TFÚthreadedÚserial)ÚparamsÚidsc                 óB   ‡— | j                   Š G ˆfd„d«      } |«       S )z]
    Fixture which allows dataset scanning operations to be
    run with/without threads
    c                   óF   •— e Zd Zˆ fd„Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
údataset_reader.<locals>.readerc                 ó   •— ‰| _         y r   ©Úuse_threads)r   rÝ   s    €r   r   z'dataset_reader.<locals>.reader.__init__+  s   ø€ Ø*ˆDÕr   c                 ó.   •— d|v rt        d«      ‚‰|d<   y )NrÝ   z9Invalid use of dataset_reader, do not specify use_threads)Ú	Exception)r   ÚkwargsrÝ   s     €r   Ú_patch_kwargsz,dataset_reader.<locals>.reader._patch_kwargs.  s)   ø€ Ø Ñ&Üð$ó&ð &ð %0ˆF�=Ò!r   c                 óH   — | j                  |«        |j                  di |¤ŽS ©Nr   )rá   Úto_table©r   rS   rà   s      r   rä   z'dataset_reader.<locals>.reader.to_table5  s&   € Ø×Ñ˜vÔ&Ø#�7×#Ñ#Ñ- fÑ-Ð-r   c                 óH   — | j                  |«        |j                  di |¤ŽS rã   )rá   Ú
to_batchesrå   s      r   rç   z)dataset_reader.<locals>.reader.to_batches9  ó&   € Ø×Ñ˜vÔ&Ø%�7×%Ñ%Ñ/¨Ñ/Ð/r   c                 óH   — | j                  |«        |j                  di |¤ŽS rã   )rá   Úscannerrå   s      r   rê   z&dataset_reader.<locals>.reader.scanner=  s$   € Ø×Ñ˜vÔ&Ø"�7—?‘?Ñ, VÑ,Ð,r   c                 óJ   — | j                  |«        |j                  |fi |¤ŽS r   )rá   Úhead)r   rS   Únum_rowsrà   s       r   rì   z#dataset_reader.<locals>.reader.headA  s&   € Ø×Ñ˜vÔ&Ø�7—<‘< Ñ3¨FÑ3Ð3r   c                 óJ   — | j                  |«        |j                  |fi |¤ŽS r   )rá   Útake)r   rS   Úindicesrà   s       r   rï   z#dataset_reader.<locals>.reader.takeE  s&   € Ø×Ñ˜vÔ&Ø�7—<‘< Ñ2¨6Ñ2Ð2r   c                 óH   — | j                  |«        |j                  di |¤ŽS rã   )rá   Ú
count_rowsrå   s      r   rò   z)dataset_reader.<locals>.reader.count_rowsI  rè   r   N)r   r   r   r   rá   rä   rç   rê   rì   rï   rò   rÜ   s   €r   ÚreaderrÚ   )  s+   ø„ ô	+ô	0ò	.ò	0ò	-ò	4ò	3ó	0r   ró   )Úparam)r¸   ró   rÝ   s     @r   Údataset_readerrõ     s"   ø€ ð —-‘-€K÷"0ó "0ñH ‹8€Or   c           	      ó*
  — t        j                  t        j                  dt        j                  «       «      g«      }t	        j
                  «       }ddg}t        dd«      D �cg c]  }t	        j                  d«      |k(  ‘Œ }}t        ||«      D ��cg c]  \  }}|j                  || |«      ‘Œ }}}t	        j                  d«      t	        j                  d«      k(  }	t	        j                  |||| |	¬	«      }
t        j                  j                  |||| ||	¬
«      }|
|fD �]"  }t        |t        j                  «      sJ ‚t        |j                  t        j
                  «      sJ ‚|j                  j                  |	«      sJ ‚t!        |j"                  «      t!        |«      k(  sJ ‚t%        |j'                  «       «      }t        |||«      D �]2  \  }}}|j                  j                  |«      sJ ‚|j(                  |k(  sJ ‚t        |j                  t        j
                  «      sJ ‚t        |t        j*                  «      sJ ‚|j,                  dgk(  sJ ‚|j.                  dk(  sJ ‚t%        |j1                  «       «      }|j.                  t3        |«      cxk(  rdk(  sJ ‚ J ‚t        |d   t        j*                  «      sJ ‚|d   j(                  |k(  sJ ‚|d   j,                  dgk(  sJ ‚|d   j.                  dk(  r�Œ3J ‚ t%        |j'                  t	        j                  d«      dk(  ¬«      «      }t3        |«      dk(  r�Œ#J ‚ t	        j                  |||| ¬«      }|j                  j                  t	        j                  d«      «      sJ ‚t        j                  j                  |||| ¬«      }|j                  j                  t	        j                  d«      «      sJ ‚|j'                  «       D ]2  }|j                  j                  t	        j                  d«      «      rŒ2J ‚ t5        j6                  t8        d¬«      5  t	        j                  |||«       d d d «       t5        j6                  t8        d¬«      5  t	        j                  |||d¬«       d d d «       t5        j6                  t8        d¬«      5  t        j                  j                  ||¬«       d d d «       y c c}w c c}}w # 1 sw Y   Œ—xY w# 1 sw Y   ŒfxY w# 1 sw Y   y xY w)Nr`   úsubdir/1/xxx/file0.parquetúsubdir/2/yyy/file1.parquetr   rY   r¾   Úleveli9  )r=   rÐ   Ú
filesystemÚroot_partition)r=   rÐ   rú   Ú
partitionsrû   r   ©Úfilterrv   ©r=   rÐ   rú   Tzincorrect type©Úmatch)r=   rÐ   rû   ©rÐ   )r?   r=   r@   rB   rÇ   rÈ   r/   ÚzipÚmake_fragmentÚscalarÚFileSystemDatasetÚ
from_pathsrM   rÐ   Úpartition_expressionÚequalsr�   Úfilesrh   rK   rq   ÚParquetFileFragmentÚ
row_groupsÚnum_row_groupsÚsplit_by_row_groupr±   ÚpytestÚraisesÚ	TypeError)rn   r=   Úfile_formatrŽ   Úxrü   rq   r¾   Ú	fragmentsrû   Údataset_from_fragmentsÚdataset_from_pathsrS   rT   Ú	partitionÚrow_group_fragmentss                   r   Útest_filesystem_datasetr  P  s  € ä�Y‰YÜ
�‰�œ"Ÿ(™(›*Ó%ðó €Fô ×&Ñ&Ó(€KØ)Ð+GÐH€EÜ16°q¸!´Ó=±¨A”"—(‘(˜6Ó" aÓ'°€JÐ=ä#& u¨jÔ#9ô;Ù#9‘Z�T˜4ð ×*Ñ*¨4°¸Õ>Ø#9ð ñ ;ä—X‘X˜gÓ&¬"¯)©)°D«/Ñ9€Nä×1Ñ1Ø˜&¨Ø¨.ôÐô ×-Ñ-×8Ñ8Ø�f [¸VØ¨nð 9ó Ðð
 +Ð,>Ô?ˆÜ˜'¤2×#7Ñ#7Ô8Ð8Ð8Ü˜'Ÿ.™.¬"×*>Ñ*>Ô?Ð?Ð?Ø×+Ñ+×2Ñ2°>ÔBÐBÐBÜ�7—=‘=Ó!¤S¨£ZÒ/Ð/Ð/ä˜×.Ñ.Ó0Ó1ˆ	Ü),¨Y¸
ÀE×)JÑ%ˆH�i Ø×0Ñ0×7Ñ7¸	ÔBÐBÐBØ—=‘= DÒ(Ð(Ð(Ü˜hŸo™o¬r×/CÑ/CÔDÐDÐDÜ˜h¬×(>Ñ(>Ô?Ð?Ð?Ø×&Ñ&¨1¨#Ò-Ð-Ð-Ø×*Ñ*¨aÒ/Ð/Ð/ä"& x×'BÑ'BÓ'DÓ"EÐØ×*Ñ*¬cÐ2EÓ.FÔKÈ!ÒKÐKÑKÐKÐKÜÐ1°!Ñ4´b×6LÑ6LÔMÐMÐMØ& qÑ)×.Ñ.°$Ò6Ð6Ð6Ø& qÑ)×4Ñ4¸¸Ò;Ð;Ð;Ø& qÑ)×8Ñ8¸AÔ=Ð=Ð=ð *Kô ˜×.Ñ.´b·h±h¸wÓ6GÈ1Ñ6LÐ.ÓMÓNˆ	Ü�9‹~ Ô"Ð"Ð"ð/ @ô4 ×"Ñ"Ø˜&¨Àô€Gð ×'Ñ'×.Ñ.¬r¯y©y¸«Ô?Ð?Ð?ô ×"Ñ"×-Ñ-Ø�f [¸Vð .ó €Gð ×'Ñ'×.Ñ.¬r¯y©y¸«Ô?Ð?Ð?Ø×)Ñ)Ö+ˆØ×,Ñ,×3Ñ3´B·I±I¸d³OÕDÐDÐDð ,ô 
�‰”yÐ(8Ö	9Ü
×Ñ˜Y¨°VÔ<÷ 
:ô 
�‰”yÐ(8Ö	9Ü
×Ñ˜Y¨vØ$/Àõ	C÷ 
:ô 
�‰”yÐ(8Ö	9Ü
×Ñ×'Ñ'¨	¸+Ð'ÔF÷ 
:Ð	9ùò{ >ùó;÷j 
:Ð	9ú÷ 
:Ð	9ú÷ 
:Ð	9ús0   Á#S&ÂS+ÑS1Ñ>S=Ò;"T	Ó1S:Ó=TÔ	Tc                 ó²  — t        j                  t        j                  dt        j                  «       «      g«      }t	        j
                  «       }dg}t        j                  j                  |||t        j                  «       ¬«      }|j                  «        t        j                  t        «      5  | j                  |«       d d d «       y # 1 sw Y   y xY w)NÚf1znonexistingfile.arrowrÿ   )r?   r=   r@   rB   rÇ   ÚIpcFileFormatr  r  rc   rŠ   rK   r  r  ÚFileNotFoundErrorrä   )rõ   r=   r  rŽ   rS   s        r   Ú1test_filesystem_dataset_no_filesystem_interactionr  ˜  s¨   € ä�Y‰YÜ
�‰�”r—x‘x“zÓ"ðó €Fô ×"Ñ"Ó$€KØ$Ð%€Eô ×"Ñ"×-Ñ-Ø�f [Ü×%Ñ%Ó'ð .ó €Gð ×ÑÔô 
�‰Ô(Õ	)Ø×Ñ Ô(÷ 
*×	)Ñ	)ús   Â2CÃCc                 óB  — t        | t        j                  «      sJ ‚t        | j                  t        j
                  «      sJ ‚t        j                  d«      }t        j                  t        d¬«      5  | j                  |¬«       d d d «       t        j                  d«      dz   }t        j                  t        d¬«      5  | j                  |¬«       d d d «       t	        j                  g d¢t	        j                  «       ¬«      }t	        j                  g d¢t	        j                  «       ¬«      }|j                  | «      D ]b  }t        |t        j                  «      sJ ‚|j!                  d«      j#                  |«      sJ ‚|j!                  d«      j#                  |«      rŒbJ ‚ |j%                  | «      j'                  «       D ]D  }t        |t        j(                  «      sJ ‚t        |j*                  t        j,                  «      rŒDJ ‚ |j                  | «      }t        |t        j.                  «      sJ ‚t1        |«      d	k(  sJ ‚t        j                  d«      dk(  }| j                  d
|¬«      }	|	j3                  d«      j5                  «       }	|	d   ddgk(  sJ ‚|	d   ddgk(  sJ ‚t7        |	d   «      ddgk(  sJ ‚t7        |	d   «      ddgk(  sJ ‚t        j                  d«      dk(  }| j                  d
|¬«      }	|	j3                  d«      j5                  «       }	|	d   g d¢k(  sJ ‚|	d   g d¢k(  sJ ‚|	d   g d¢k(  sJ ‚|	d   g d¢k(  sJ ‚t        j                  d«      t        j                  d«      t        j                  d«      dk(  dœ}
| j                  d
|
¬«      }	|	j3                  d«      j5                  «       }	t9        |	«      g d¢k(  sJ ‚|	d   g d¢k(  sJ ‚|	d   g d¢k(  sJ ‚|	d   g d¢k(  sJ ‚t;        | «       y # 1 sw Y   �ŒƒxY w# 1 sw Y   �ŒBxY w)Nr]   zmust evaluate to boolr   rý   r   ©r   r   rv   rY   r{   rw   r   rª   T)rÝ   rþ   rÅ   r^   ç      ð?rv   rÆ   ÚxxxÚyyy)ra   r\   Ú1)r   r{   r   r{   )r!  ç      @r!  r%  )r   r   rv   rv   )r"  r"  r#  r#  )r]   r^   Únew)rÝ   r*   )
r   r   r   r   rv   rv   rY   rY   r{   r{   )
ç        r'  r!  r!  ç       @r(  ç      @r)  r%  r%  r&  )
FFTTFFFFTT)rM   rÇ   ÚDatasetr=   r?   ÚSchemar@   r  r  r  rä   r~   rB   rC   rç   ÚRecordBatchÚcolumnr	  rê   Úscan_batchesÚTaggedRecordBatchrT   ÚFragmentrE   r±   Úsort_byÚ	to_pydictÚsortedrh   rV   )rS   rõ   Únon_boolean_exprÚnon_boolean_expr2Úexpected_i64Úexpected_f64rt   r   Ú	conditionÚresultÚ
projections              r   Útest_datasetr;  ®  s·  € ä�gœrŸz™zÔ*Ð*Ð*Ü�g—n‘n¤b§i¡iÔ0Ð0Ð0ä—x‘x “ÐÜ	�‰”yÐ(?Ö	@Ø×ÑÐ 0ÐÔ1÷ 
Aô Ÿ™ ›¨!Ñ+ÐÜ	�‰”yÐ(?Ö	@Ø×ÑÐ 1ÐÔ2÷ 
Aô —8‘8šO´"·(±(³*Ô=€LÜ—8‘8šO´"·*±*³,Ô?€Là×*Ñ*¨7Ö3ˆÜ˜%¤§¡Ô0Ð0Ð0Ø�|‰|˜A‹×%Ñ% lÔ3Ð3Ð3Ø�|‰|˜A‹×%Ñ% lÕ3Ð3Ð3ð 4ð
  ×'Ñ'¨Ó0×=Ñ=Ö?ˆÜ˜%¤×!5Ñ!5Ô6Ð6Ð6Ü˜%Ÿ.™.¬"¯+©+Õ6Ð6Ð6ð @ð ×#Ñ# GÓ,€EÜ�eœRŸX™XÔ&Ð&Ð&Üˆu‹:˜ÒÐÐä—‘˜“ 1Ñ$€IØ×Ñ¨$°yÐÓA€Fà�^‰^˜GÓ$×.Ñ.Ó0€Fà�%‰=˜Q ˜FÒ"Ð"Ð"Ø�%‰=˜R ˜HÒ$Ð$Ð$Ü�&˜‘/Ó" q¨! fÒ,Ð,Ð,Ü�&˜‘-Ó  U¨E NÒ2Ð2Ð2ô —‘˜Ó)¨SÑ0€IØ×Ñ¨$°yÐÓA€FØ�^‰^˜GÓ$×.Ñ.Ó0€Fà�%‰=šLÒ(Ð(Ð(Ø�%‰=Ò0Ò0Ð0Ð0Ø�'‰?šlÒ*Ð*Ð*Ø�%‰=Ò8Ò8Ð8Ð8ô �x‰x˜‹Ü�x‰x˜‹Ü�x‰x˜Ó(¨CÑ/ñ€Jð
 ×Ñ¨$¸
ÐÓC€FØ�^‰^˜EÓ"×,Ñ,Ó.€Fä�‹<Ò0Ò0Ð0Ð0Ø�%‰=Ò:Ò:Ð:Ð:Ø�%‰=ò ;ò ;ð ;ð ;à�%‰=ò 7ò 7ð 7ð 7ä/°Õ8÷u 
AÑ	@ú÷ 
AÑ	@ús   Á3PÃPÐPÐPc                 óF  — | \  }}}t        j                  |||gt        j                  «       «      }t        j                  t
        j                  d¬«      5  |j                  «        d d d «       |j                  d¬«      }t        j                  t        j                  dt        j                  «       «      t        j                  dt        j                  t        j                  «       t        j                  «       «      «      g«      }|j                  |«      sJ ‚|j                  |«      }|j!                  «       }|j#                  d¬«       t        j$                  t        j&                  d	d
gddggt        j                  «       ¬«      t        j&                  t
        j(                  j+                  t        j,                  dd	gt        j                  «       ¬«      ddg«      t
        j(                  j+                  t        j,                  d	dgt        j                  «       ¬«      ddg«      g«      dœ«      }	|j                  |	«      sJ ‚|j                  dd	¬«      }
|
j                  d«      j.                  t        j                  «       k7  sJ ‚y # 1 sw Y   �Œ0xY w)NzCUnable to merge: Field value has incompatible types: int8 vs uint16r   Ú
permissive©Úpromote_optionsr'   rz   T©Úfullr   rv   rY   r{   rw   r   r[   r\   r|   r}   ry   )r?  r  )rÇ   rÎ   rÈ   r  r  r?   ÚArrowTypeErrorÚinspectr=   r@   rÌ   rz   rƒ   rD   r	  rÏ   rä   Úvalidater   Úchunked_arrayr€   r�   r~   rx   )rˆ   rn   r†   r‡   rÓ   r=   Úexpected_schemarS   r   Úexpected_tableÚinspected_schema_one_frags              r   Ú-test_dataset_factory_inspect_schema_promotionrI  ñ  s
  € Ø,Ñ€FˆE�5Ü×)Ñ)Ø�˜�¤× 4Ñ 4Ó 6ó€Gô 
�‰Ü
×ÑØSö
ð 	�‰Ô÷	
ð �_‰_¨\ˆ_Ó:€FÜ—i‘iä
�‰�œ"Ÿ(™(›*Ó%ä
�‰�œrŸ}™}¬R¯X©X«Z¼¿¹»ÓEÓFð	!ó €Oð �=‰=˜Ô)Ð)Ð)Ø�n‰n˜VÓ$€GØ×ÑÓ€EØ	‡N�N˜€NÔÜ—X‘XÜ×!Ñ! A q 6¨A¨q¨6Ð"2¼¿¹»ÔDÜ×&Ñ&Ü×Ñ×*Ñ*Ü—‘˜!˜Q˜¤b§h¡h£jÔ1Ø�c�
óô ×Ñ×*Ñ*Ü—‘˜!˜Q˜¤b§h¡h£jÔ1Ø�c�
óð	(
ó 	ñó €Nð �<‰<˜Ô'Ð'Ð'ð !(§¡Ø$°ð !0ó !3Ðà$×*Ñ*¨7Ó3×8Ñ8¼B¿H¹H»JÒFÐFÑF÷G
ñ 
ús   ÁJÊJ c                 óò  — | \  }}}t        j                  |||gt        j                  «       «      }t        j                  t
        d¬«      5  |j                  d¬«       d d d «       t        j                  t
        d¬«      5  |j                  d¬«       d d d «       t        j                  t
        d¬«      5  |j                  d	¬«       d d d «       y # 1 sw Y   ŒvxY w# 1 sw Y   ŒLxY w# 1 sw Y   y xY w)
Nz#Invalid promote_options: bad_optionr   Ú
bad_optionr>  z<Fragment count must be a non-negative int or None; got 'one'Úone)r  z9Fragment count must be a non-negative int or None; got -1éÿÿÿÿ)rÇ   rÎ   rÈ   r  r  Ú
ValueErrorrC  )rˆ   rn   r†   r‡   rÓ   s        r   Ú'test_dataset_factory_inspect_bad_paramsrO    sÎ   € Ø,Ñ€FˆE�5Ü×)Ñ)Ø�˜�¤× 4Ñ 4Ó 6ó€Gô 
�‰”zÐ)NÖ	OØ�‰¨ˆÔ5÷ 
Pô 
�‰ÜÐXö
ð 	�‰ %ˆÔ(÷
ô
 
�‰ÜÐUö
ð 	�‰ "ˆÔ%÷
ð 
÷ 
PÐ	Oú÷
ð 
ú÷

ð 
ús$   ÁCÂC!Â9C-ÃCÃ!C*Ã-C6c                 ób   — | j                  dd¬«      }t        |«      }|j                  dk(  sJ ‚y )Né   é   )Úfragment_readaheadÚbatch_readaheadé   )rç   r2   Únum_columns)rS   rê   rt   s      r   Útest_scanner_optionsrW  1  s4   € à× Ñ °BÈÐ ÓJ€GÜ�‹M€EØ×Ñ Ò!Ð!Ñ!r   c                 óÜ  — |j                  | t        j                  «       ¬«      }t        |t        j
                  «      sJ ‚t        j                  t        j                  «      5  |j                  | dg¬«       d d d «       |j                  | dgt        j                  «       ¬«      }|j                  | j                  k(  sJ ‚|j                  t        j                  dt        j                  «       fg«      k(  sJ ‚t        |t        j
                  «      sJ ‚|j                  «       }|j                  «       D ].  }|j                  |j                  k(  sJ ‚|j                  dk(  rŒ.J ‚ ||j!                  «       j#                  «       k(  sJ ‚|j                  |j                  k(  sJ ‚t%        |j&                  «      D ]=  }t        j(                  |g«      }|j+                  |«      |j+                  |«      k(  rŒ=J ‚ t        j                  t        j,                  «      5  |j+                  t        j(                  |j&                  g«      «       d d d «       |j&                  |j/                  «       k(  sJ ‚|j                  | g d¢t        j                  «       ¬«      }|j                  «       }g d¢}|j0                  |k(  sJ ‚|j3                  d«      }|d	   j5                  «       d
gdz  dgdz  z   k(  sJ ‚|d   j5                  «       dgdz  dgdz  z   k(  sJ ‚|d   j5                  «       dgdz  k(  sJ ‚|d   j5                  «       dgdz  k(  sJ ‚y # 1 sw Y   �ŒÜxY w# 1 sw Y   �ŒxY w)N)Úmemory_poolÚunknownr)   r]   )r*   rY  r   )Ú
__filenameÚ__fragment_indexÚ__batch_indexÚ__last_in_fragmentr\  r[  r÷   r   rø   r   r]  rª   r^  T)rê   r?   Údefault_memory_poolrM   rÇ   ÚScannerr  r  ÚArrowInvalidÚdataset_schemar=   Úprojected_schemarB   rä   rç   rV  Ú	to_readerÚread_allr/   rí   r~   rï   ÚArrowIndexErrorrò   Úcolumn_namesr1  Ú	to_pylist)	rS   rõ   rê   r   rt   r:   rð   Úexpected_namesÚsorted_tables	            r   Útest_scannerrk  8  s(  € à×$Ñ$ØœR×3Ñ3Ó5ð %ó 7€Gä�gœrŸz™zÔ*Ð*Ð*ä	�‰”r—‘Õ	'Ø×Ñ˜w°°ÐÔ<÷ 
(ð ×$Ñ$ W°u°gÜ13×1GÑ1GÓ1Ið %ó K€Gà×!Ñ! W§^¡^Ò3Ð3Ð3Ø×#Ñ#¤r§y¡y°5¼"¿(¹(»*Ð2EÐ1FÓ'GÒGÐGÐGä�gœrŸz™zÔ*Ð*Ð*Ø×ÑÓ€EØ×#Ñ#Ö%ˆØ�|‰|˜w×7Ñ7Ò7Ð7Ð7Ø× Ñ  AÓ%Ð%Ð%ð &ð �G×%Ñ%Ó'×0Ñ0Ó2Ò2Ð2Ð2à�<‰<˜7×3Ñ3Ò3Ð3Ð3Ü�5—>‘>Ö"ˆÜ—(‘(˜A˜3“-ˆØ�z‰z˜'Ó" g§l¡l°7Ó&;Ó;Ð;Ð;ð #ô 
�‰”r×)Ñ)Õ	*Ø�‰”R—X‘X˜uŸ~™~Ð.Ó/Ô0÷ 
+ð �>‰>˜W×/Ñ/Ó1Ò1Ð1Ð1à×$Ñ$ Wò 7Mô 24×1GÑ1GÓ1Ið	 %ó K€Gð
 ×ÑÓ€Eò=€Nà×Ñ Ò/Ð/Ð/à—=‘=Ð!3Ó4€LØ˜Ñ%×/Ñ/Ó1Ø	%Ð&¨Ñ*Ø	%Ð&¨Ñ*ñ	+ò,ð ,ð ,ð Ð*Ñ+×5Ñ5Ó7¸Q¸CÀ!¹GÀqÀcÈAÁgÑ<MÒNÐNÐNØ˜Ñ(×2Ñ2Ó4¸¸¸b¹Ò@Ð@Ð@ØÐ,Ñ-×7Ñ7Ó9¸d¸VÀb¹[ÒHÐHÑH÷Q 
(Ñ	'ú÷& 
+Ñ	*ús   Á%MÈ 0M!ÍMÍ!M+c                 óˆ  — t        j                  «       }t        j                  «       }t        j                  |«       	 |j	                  «       }t
        j                  j                  | «      }|j                  «       }|j	                  «       |kD  sJ ‚	 t        j                  |«       y # t        j                  |«       w xY wr   )	r?   r_  Úsystem_memory_poolÚset_memory_poolÚbytes_allocatedrÇ   r`  Úfrom_dataseträ   )rS   Úold_poolÚpoolÚallocated_beforerê   Ú_s         r   Útest_scanner_memory_poolru  i  s›   € ô ×%Ñ%Ó'€Hô × Ñ Ó"€DÜ×Ñ�tÔð%Ø×/Ñ/Ó1ÐÜ—*‘*×)Ñ)¨'Ó2ˆØ×ÑÓˆØ×#Ñ#Ó%Ð(8Ò8Ð8Ñ8ä
×Ñ˜8Õ$øŒ×Ñ˜8Õ$ús   ¿AB* Â*Cc                 óò  — |j                  | d«      }|t        j                  j                  g | j                  ¬«      k(  sJ ‚|j                  | ddg¬«      j                  «       }|ddgik(  sJ ‚|j                  | ddgt        j                  d«      dkD  ¬«      j                  «       }|dddgik(  sJ ‚|j                  | d	dg¬«      j                  «       }|dt        t        d
«      «      dz  ik(  sJ ‚t        | j                  «       «      }|j                  ddg¬«      j                  «       }|ddgik(  sJ ‚|j                  d	dg¬«      j                  «       }|dt        t        d
«      «      ik(  sJ ‚y )Nr   rb   r   r]   r)   rv   ©r*   rþ   rY   é   r   )rì   r?   rE   rk   r=   r2  rÇ   r@   rh   r/   r2   rK   )rS   rõ   r9  rT   s       r   Ú	test_headry  |  s{  € à× Ñ  ¨!Ó,€FØ”R—X‘X×*Ñ*¨2°g·n±nÐ*ÓEÒEÐEÐEà× Ñ  ¨!°e°WÐ Ó=×GÑGÓI€FØ�e˜a˜S�\Ò!Ð!Ð!à× Ñ  ¨!°e°WÜ(*¯©°«¸!Ñ(;ð !ó =ß=F¹Y»[ð à�e˜a ˜V�_Ò$Ð$Ð$à× Ñ  ¨$¸¸Ð Ó@×JÑJÓL€FØ�eœT¤%¨£(›^¨aÑ/Ð0Ò0Ð0Ð0ä�G×)Ñ)Ó+Ó,€HØ�]‰]˜1 u gˆ]Ó.×8Ñ8Ó:€FØ�e˜a˜S�\Ò!Ð!Ð!à�]‰]˜4¨%¨ˆ]Ó1×;Ñ;Ó=€FØ�eœT¤%¨£(›^Ð,Ò,Ð,Ñ,r   c                 óÞ  — t        | j                  «       «      }ddgt        j                  ddg«      fD ]9  }|j	                  |«      j                  |«      }|j                  ||«      |k(  rŒ9J ‚ t        j                  t        «      5  |j                  |t        j                  dg«      «       d d d «       ddgt        j                  ddg«      fD ]7  }|j                  | |«      |j	                  | «      j                  |«      k(  rŒ7J ‚ t        j                  t        «      5  |j                  | t        j                  dg«      «       d d d «       y # 1 sw Y   Œ§xY w# 1 sw Y   y xY w)Nr   rY   r   rU  rª   )	r2   rK   r?   r~   rä   rï   r  r  Ú
IndexError)rS   rõ   rT   rð   Úexpecteds        r   Ú	test_taker}  “  s:  € ä�G×)Ñ)Ó+Ó,€HØ˜�FœBŸH™H a¨ VÓ,Ó-ˆØ!×*Ñ*¨8Ó4×9Ñ9¸'ÓBˆØ×"Ñ" 8¨WÓ5¸ÓAÐAÐAð .ô 
�‰”zÕ	"Ø×Ñ˜H¤b§h¡h°¨s£mÔ4÷ 
#ð ˜�FœBŸH™H a¨ VÓ,Ó-ˆØ×"Ñ"Ø�WóØ!/×!8Ñ!8¸Ó!A×!FÑ!FÀwÓ!OóPð 	Pð Pð .ô 
�‰”zÕ	"Ø×Ñ˜G¤R§X¡X¨r¨d£^Ô4÷ 
#Ð	"÷ 
#Ð	"ú÷ 
#Ð	"ús   Â
'EÄ''E#ÅE Å#E,c                 óþ  — t        | j                  «       «      }|j                  |«      dk(  sJ ‚|j                  |t        j                  d«      dk(  ¬«      dk(  sJ ‚|j                  | «      dk(  sJ ‚|j                  | t        j                  d«      dk(  ¬«      dk(  sJ ‚|j                  | t        j                  d«      dk\  ¬«      dk(  sJ ‚|j                  | t        j                  d«      d	k  ¬«      d	k(  sJ ‚y )
Nr   r]   r{   rý   r   rª   rÅ   rY   r   )r2   rK   rò   rÇ   r@   )rS   rõ   rT   s      r   Útest_count_rowsr  £  s  € ä�G×)Ñ)Ó+Ó,€HØ×$Ñ$ XÓ.°!Ò3Ð3Ð3Ø×$Ñ$ØœŸ™ %›¨AÑ-ð %ó /Ø23ò4ð 4ð 4ð ×$Ñ$ WÓ-°Ò3Ð3Ð3à×$Ñ$ØœŸ™ Ó)¨QÑ.ð %ó 0Ø34ò5ð 5ð 5ð ×$Ñ$ W´R·X±X¸e³_ÈÑ5IÐ$ÓJÈaÒOÐOÐOØ×$Ñ$ W´R·X±X¸e³_ÀqÑ5HÐ$ÓIÈQÒNÐNÑNr   c                  óÚ   — t         j                  t         j                  t         j                  g} | D ]+  }t	        j
                  t        «      5   |«        d d d «       Œ- y # 1 sw Y   Œ8xY wr   )rÇ   Ú
FileFormatr`  ÚPartitioningr  r  r  )ÚclassesÚklasss     r   Útest_abstract_classesr…  ³  sJ   € ä
�‰Ü
�
‰
Ü
�‰ð€Gó
 ˆÜ�]‰]œ9Õ%ÙŒG÷ &Ð%ñ ß%Ð%ús   ÁA!Á!A*	c                  óN  — t        j                  t        j                  dt        j                  «       «      t        j                  dt        j                  «       «      g«      } t
        j                  t
        j                  t
        j                  fD ]:  } || «      }t        |t
        j                  «      sJ ‚| || «      k(  sJ ‚|dk7  rŒ:J ‚ t        j                  t        j                  dt        j                  «       «      t        j                  dt        j                  «       «      g«      } t        j                  | «      }t        |j                  «      dk(  sJ ‚t        d„ |j                  D «       «      sJ ‚|j                  d«      }t        |t
        j                  «      sJ ‚t        j                  d«      d	k(  t        j                  d«      d
k(  z  }|j!                  |«      sJ ‚t#        j$                  t         j&                  «      5  |j                  d«       d d d «       |j                  d«      }t        j                  d«      d	k(  }|j!                  |«      sJ ‚|t        j                  | d¬«      k7  sJ ‚t        j                  t        j                  dt        j                  «       «      t        j                  dt        j                  «       «      g«      } t        j                  | d¬«      }t        |j                  «      dk(  sJ ‚t        d„ |j                  D «       «      sJ ‚|j                  d«      }t        j                  d«      t        j(                  d«      k(  t        j                  d«      t        j(                  d	«      k(  z  }|j!                  |«      sJ ‚|j                  d«      }t        j                  d«      j+                  «       t        j                  d«      t        j(                  d	«      k(  z  }|j!                  |«      sJ ‚dD ]?  }t#        j$                  t         j&                  «      5  |j                  |«       d d d «       ŒA |t        j                  | d¬«      k7  sJ ‚t        j                  t        j                  dt        j                  «       «      t        j                  dt        j                  «       «      g«      } t        j                  | «      }t        |j                  «      dk(  sJ ‚t        d„ |j                  D «       «      sJ ‚|j                  d«      }t        |t
        j                  «      sJ ‚t        j                  d«      d	k(  t        j                  d«      d
k(  z  }|j!                  |«      sJ ‚t#        j$                  t         j&                  «      5  |j                  d«       d d d «       |t        j                  | d¬«      k7  sJ ‚t        j                  t        j                  dt        j                  «       «      t        j                  dt        j,                  t        j.                  «       t        j0                  «       «      «      g«      } t        j                  | dt        j2                  g d¢«      i¬«      }|j                  d   �J ‚|j                  d   j5                  «       g d¢k(  sJ ‚|t        j                  | d ¬«      k7  sJ ‚t        j                  t        j                  t        j                  dt        j                  «       «      t        j                  dt        j,                  t        j.                  «       t        j0                  «       «      «      g«      dt        j2                  g d¢«      i¬«      }|j                  d   �J ‚|j                  d   j5                  «       g d¢k(  sJ ‚t        j6                  t        j2                  t9        d«      «      t        j2                  d „ t9        d«      D «       «      t        j2                  d!gd"z  d#gd"z  z   «      gg d$¢¬%«      }t        j                  d&t        j0                  «       fg«      }t
        j                  t
        j                  t
        j                  fD ]|  }t;        j<                  «       5 } ||«      }t        j>                  ||d'|¬(«       t        j@                  |d'|¬(«      }	|	jC                  «       }
|
j!                  |«      sJ ‚	 d d d «       Œ~ t;        j<                  «       5 }t        j                  |«      }t        j>                  ||d'|¬(«       d }	t#        j$                  tD        d)¬*«      5  t        j@                  |d'tG        d«      ¬(«      }	d d d «       |	�J ‚	 d d d «       y # 1 sw Y   �Œ·xY w# 1 sw Y   �ŒÊxY w# 1 sw Y   �ŒxY w# 1 sw Y   �ŒHxY w# 1 sw Y   ŒKxY w# 1 sw Y   y xY w)+Nr]   r^   zother objectrÅ   rÆ   rv   c              3   ó$   K  — | ]  }|d u –— Œ
 y ­wr   r   ©Ú.0r  s     r   Ú	<genexpr>z$test_partitioning.<locals>.<genexpr>Ð  ó   è ø€ Ð<Ñ";˜Qˆq�DŒyÑ";ùó   ‚z/3/3.14/rY   g…ëQ¸	@z/prefix/3/aaaz/3/Únone©Úsegment_encodingÚalphaÚbetaÚxyz)Únull_fallbackc              3   ó$   K  — | ]  }|d u –— Œ
 y ­wr   r   rˆ  s     r   rŠ  z$test_partitioning.<locals>.<genexpr>æ  r‹  rŒ  z/alpha=0/beta=3/r   z/alpha=xyz/beta=3/)z/alpha=one/beta=2/z/alpha=one/z
/beta=two/Úotherc              3   ó$   K  — | ]  }|d u –— Œ
 y ­wr   r   rˆ  s     r   rŠ  z$test_partitioning.<locals>.<genexpr>   r‹  rŒ  z3_3.14_Úprefix_3_aaa_)ÚfirstÚsecondÚthird©Údictionariesr   é   c              3   óD   K  — | ]  }t        j                   «       –— Œ y ­wr   ©Úrandom©r‰  rt  s     r   rŠ  z$test_partitioning.<locals>.<genexpr>&  ó   è ø€ Ð%I¹y¸!¤f§m¡m§o¹yùó   ‚ r[   rª   r\   ©r  Úf2r¾   ©Únamesr¾   Úipc©rÐ   rÍ   z,Expected Partitioning or PartitioningFactoryr   )$r?   r=   r@   rB   rC   rÇ   rË   ÚHivePartitioningÚFilenamePartitioningrM   r‚  r±   rœ  ÚallÚparseÚ
Expressionr	  r  r  ra  r  Úis_nullrz   r   rD   r~   rh  r   r/   ÚtempfileÚTemporaryDirectoryÚwrite_datasetrS   rä   rN  Úint)r=   r„  rÍ   Úexprr|  Ú
shouldfailr   Úpartitioning_schemaÚtempdirÚ	load_backÚload_back_tables              r   Útest_partitioningrº  ¾  sî  € Ü�Y‰YÜ
�‰�œŸ™›
Ó#Ü
�‰�œŸ
™
›Ó%ðó €Fô ×*Ñ*¬B×,?Ñ,?Ü×)Ñ)ó+ˆá˜V“}ˆÜ˜,¬¯©Ô8Ð8Ð8Ø™u V›}Ò,Ð,Ð,Ø˜~Ó-Ð-Ð-ð+ô �Y‰YÜ
�‰�œ"Ÿ(™(›*Ó%Ü
�‰�œŸ
™
›Ó%ðó €Fô ×+Ñ+¨FÓ3€LÜˆ|×(Ñ(Ó)¨QÒ.Ð.Ð.ÜÑ< ,×";Ò";Ó<Ô<Ð<Ð<Ø×Ñ˜jÓ)€DÜ�dœBŸM™MÔ*Ð*Ð*ä—‘˜Ó! QÑ&¬2¯8©8°E«?¸dÑ+BÑC€HØ�;‰;�xÔ Ð Ð ä	�‰”r—‘Õ	'Ø×Ñ˜?Ô+÷ 
(ð ×Ñ˜eÓ$€DÜ�x‰x˜Ó  AÑ%€HØ�;‰;�xÔ Ð Ð àœ2×3Ñ3°FÈVÔTÒTÐTÐTä�Y‰YÜ
�‰�œ"Ÿ(™(›*Ó%Ü
�‰�œŸ™›Ó$ðó €Fô ×&Ñ& v¸UÔC€LÜˆ|×(Ñ(Ó)¨QÒ.Ð.Ð.ÜÑ< ,×";Ò";Ó<Ô<Ð<Ð<Ø×ÑÐ0Ó1€Dä	�‰�'Ó	œbŸi™i¨›lÑ	*Ü	�‰�&Ó	œRŸY™Y q›\Ñ	)ñ	+ð ð �;‰;�xÔ Ð Ð à×ÑÐ2Ó3€Dä	�‰�'Ó	×	"Ñ	"Ó	$¬¯©°Ó(8¼B¿I¹IÀa»LÑ(HÑ	Ið ð �;‰;�xÔ Ð Ð ãIˆ
Ü�]‰]œ2Ÿ?™?Õ+Ø×Ñ˜zÔ*÷ ,Ð+ð Jð œ2×.Ñ.¨vÀWÔMÒMÐMÐMä�Y‰YÜ
�‰�œ"Ÿ(™(›*Ó%Ü
�‰�œŸ
™
›Ó%ðó €Fô ×*Ñ*¨6Ó2€LÜˆ|×(Ñ(Ó)¨QÒ.Ð.Ð.ÜÑ< ,×";Ò";Ó<Ô<Ð<Ð<Ø×Ñ˜iÓ(€DÜ�dœBŸM™MÔ*Ð*Ð*ä—‘˜Ó! QÑ&¬2¯8©8°E«?¸dÑ+BÑC€HØ�;‰;�xÔ Ð Ð ä	�‰”r—‘Õ	'Ø×Ñ˜?Ô+÷ 
(ð œ2×2Ñ2°6ÈFÔSÒSÐSÐSä�Y‰YÜ
�‰�œ"Ÿ(™(›*Ó%Ü
�‰�œŸ™¤b§g¡g£i´·±³Ó=Ó>ðó €Fô ×+Ñ+Ø˜e¤R§X¡XÒ.JÓ%KÐLô€Lð ×$Ñ$ QÑ'Ð/Ð/Ð/Ø×$Ñ$ QÑ'×1Ñ1Ó3ò 8$ò $ð $ð $àœ2×3Ñ3°FÈÔNÒNÐNÐNä×*Ñ*Ü
�	‰	Ü�H‰H�WœbŸh™h›jÓ)Ü�H‰H�UœBŸM™M¬"¯'©'«)´R·Y±Y³[ÓAÓBð
ó 	ð
 ”2—8‘8Ò8Ó9ð
ô€Lð ×$Ñ$ QÑ'Ð/Ð/Ð/Ø×$Ñ$ QÑ'×1Ñ1Ó3ò 8$ò $ð $ð $ô �H‰HÜ
�‰”�r“ÓœRŸX™XÑ%I¼uÀR¼yÓ%IÓIÜ
�‰�#�˜‘˜s˜e b™jÑ(Ó)ð+ò #ô€Eô
 Ÿ)™) f¬b¯i©i«kÐ%:Ð$;Ó<ÐÜ×*Ñ*¬B×,?Ñ,?Ü×)Ñ)ó+ˆä×(Ñ(Ô*¨gÙ Ð!4Ó5ˆLÜ×Ñ˜U GØ$)¸õFäŸ
™
 7°5Ø0<ô>ˆIà'×0Ñ0Ó2ˆOØ"×)Ñ)¨%Ô0Ð0Ñ0÷ +Ð*ð+ô 
×	$Ñ	$Ô	&¨'Ü×/Ñ/Ð0CÓDˆÜ
×Ñ˜ Ø %°Lõ	Bàˆ	Ü�]‰]œ:Ø!OöQäŸ
™
 7°5ÄsÈ1ÃvÔNˆI÷Qð Ð Ð Ñ ÷ 
'Ð	&÷A 
(Ñ	'ú÷< ,Ñ+ú÷$ 
(Ñ	'ú÷L +Ñ*ú÷Qð Qú÷ 
'Ð	&úsV   ÈgÑg(×
g5ãAhåAhæ#"hçhçg%ç(g2	ç5g?èh	èh	èhèh$c           
      ó$  — t        j                  t        j                  dt        j                  «       «      t        j                  dt        j                  «       «      g«      }t        j                  |«      t        j                  |«      t        j                  |«      t        j                  |d¬«      t        j                  |d¬«      t        j                  |dd¬«      g}|D ]'  }| j                  | j                  |«      «      |k(  rŒ'J ‚ y )Nr]   r^   r�  rŽ  r’  )r�  r“  )r?   r=   r@   rB   rC   rÇ   rË   rª  r«  ÚloadsÚdumps)Úpickle_moduler=   Úpartsr¾   s       r   Útest_partitioning_picklingrÀ  B  sÒ   € Ü�Y‰YÜ
�‰�œŸ™›
Ó#Ü
�‰�œŸ
™
›Ó%ðó €Fô
 	× Ñ  Ó(Ü
×Ñ˜FÓ#Ü
×Ñ Ó'Ü
× Ñ  ¸&ÔAÜ
×Ñ ¸Ô@Ü
×Ñ˜F°VÈ5ÔQð€Eó ˆØ×"Ñ" =×#6Ñ#6°tÓ#<Ó=ÀÓEÐEÐEñ r   z@flavor, expected_defined_partition, expected_undefined_partition))rª  )zfoo=A/bar=ant%20beeÚ ©rÁ  rÁ  )rË   )z	A/ant beerÁ  rÂ  )r«  )rÁ  z
A_ant bee_)rÁ  rt  ÚflavorÚexpected_defined_partitionÚexpected_undefined_partitionc                 óü  — t        j                  dt        j                  «       fdt        j                  «       fg«      } t        t        | «      |¬«      }|j                  t        j                  d«      dk(  t        j                  d«      dk(  z  «      |k(  sJ ‚|j                  dj                  |«      «      j                  t        j                  d«      dk(  t        j                  d«      dk(  z  «      sJ ‚|j                  t        j                  d«      dk(  t        j                  d«      dk(  z  t        j                  d«      dk(  t        j                  d«      dk(  z  z  «      |k(  sJ ‚|j                  t        j                  d«      dk(  t        j                  d«      dk(  z  t        j                  d«      dk(  t        j                  d«      dk(  z  z  «      |k(  sJ ‚| dk7  rVt        j                  t         j                  d¬	«      5  |j                  t        j                  d«      dk(  «       d d d «       y |j                  t        j                  d«      dk(  «      d
k(  sJ ‚y # 1 sw Y   y xY w)NÚfooÚbarrb   zant beeÚAr«   rª  zDNo partition key for foo but a key was provided subsequently for barr   )zbar=ant%20beerÁ  )r?   r=   rD   ÚgetattrrÇ   rÐ   Úpcr@   r­  Újoinr	  r  r  ra  )rÃ  rÄ  rÅ  r¶  rÍ   s        r   Ú test_dataset_partitioning_formatrÍ  T  s:  € ô Ÿ)™) e¬R¯Y©Y«[Ð%9¸EÄ2Ç9Á9Ã;Ð;OÐ$PÓQÐà&”7œ2˜vÓ&Ð.AÔB€Lð 	×ÑœRŸX™X e›_°	Ñ9¼b¿h¹hÀu»oÐQTÑ>TÑUÓVØ%ò	&ðð	&ð
 ×Ñ˜cŸh™hÐ'AÓBÓC×JÑJÜ	�‰�%‹˜CÑ	¤B§H¡H¨U£O°yÑ$@ÑAôð ð ð 	×ÑÜ�h‰h�u‹o Ñ*¬r¯x©x¸«À#Ñ/EÑFÜ—‘˜“ 9Ñ,´·±¸%³ÀCÑ1GÑHñJó	
ð &ò		&ðð	&ð 	×ÑÜ�h‰h�u‹o Ñ*¬r¯x©x¸«À#Ñ/EÑFÜ—‘˜“ 9Ñ,´·±¸%³ÀCÑ1GÑHñJó	
ð (ò		(ðð	(ð Ð#Ò#ô �]‰]Ü�O‰Oð(ö
ð ×Ñ¤"§(¡(¨5£/°YÑ">ÔA÷
ð 
ð ×"Ñ"¤R§X¡X¨e£_¸	Ñ%AÓDð I
ò 
ð 	
ñ 
÷
ð 
ús   È(I2É2I;c                  ó„  — t        j                  t        j                  g d¢g d¢dœ«      «      } t        j                  d«      }t        j                  d«      }| j                  |dz   ||z
  |dz  |j                  d«      |z  d	œ¬
«      }t        j                  g d¢g d¢g d¢g d¢d	œ«      }|j                  |«      sJ ‚y )N©r   rv   rY   )rv   rv   rv   rZ   r[   r\   r   rv   rC   )za+1zb-aza*2za/br)   ©rv   rY   r{   )r   r   rM  )rv   r{   é   )ç      à?r!  g      ø?)rÇ   rS   r?   r   r@   rä   Úcastr	  )rS   r[   r\   r9  r|  s        r   Ú$test_expression_arithmetic_operatorsrÔ  —  s©   € Ü�j‰jœŸ™ª	º	Ñ"BÓCÓD€GÜ
�‰�‹€AÜ
�‰�‹€AØ×ÑØ�1‰uØ�1‰uØ�1‰uØ�v‰v�iÓ  1Ñ$ñ	'Ðó €Fô �x‰xÚ¢Ú¢ñó €Hð �=‰=˜Ô"Ð"Ñ"r   c                  ó|  — dD � cg c]  } t        j                  | «      | k(  ‘Œ c} \  }}}t        j                  |«      ddik(  sJ ‚t        j                  |«      t        j                  |«      k(  sJ ‚t        j                  ||z  |z  «      dD � ci c]  } | | “Œ c} k(  sJ ‚t        j                  d«      dk\  }t        j                  |«      i k(  sJ ‚t        j                  ||z  «      ddik(  sJ ‚t        j                  d«      j	                  «       }t        j                  |«      dd ik(  sJ ‚y c c} w c c} w )NÚabcr[   r|   rY   )rÇ   r@   Úget_partition_keysÚ_get_partition_keysr¯  )Úfr[   r\   r}   ÚnopeÚnulls         r   Útest_partition_keysrÜ  ¨  s(  € Ù).Ó/© AŒr�x‰x˜‹{˜aÓ¨Ñ/�G€A€qˆ!Ü× Ñ  Ó#¨¨S zÒ1Ð1Ð1Ü× Ñ  Ó#¤r×'=Ñ'=¸aÓ'@Ò@Ð@Ð@Ü× Ñ   Q¡¨¡Ó+¹eÓ/D¹e¸°°1±¸eÑ/DÒDÐDÐDä�8‰8�C‹=˜AÑ€DÜ× Ñ  Ó&¨"Ò,Ð,Ð,Ü× Ñ   T¡Ó*¨s°C¨jÒ8Ð8Ð8ä�8‰8�C‹=× Ñ Ó"€DÜ× Ñ  Ó&¨3°¨+Ò5Ð5Ñ5ùò 0ùò 0Es   …D4Â
D9c                  óÖ  — t        j                  «       } t        j                  ddg¬«      }t        j                  d¬«      }t        j                  t        j                  «       ¬«      }t        j                  t        j                  ¬«      }| j
                  t        «       k(  sJ ‚|j
                  ddhk(  sJ ‚| j                  dk(  sJ ‚|j                  dk(  sJ ‚| j                  t        j                  «       k(  sJ ‚|j                  t        j                  «       k(  sJ ‚| j                  t        j                  u sJ ‚|j                  t        j                  u sJ ‚| | k(  sJ ‚| |k7  sJ ‚| |k7  sJ ‚| |k7  sJ ‚| |k7  sJ ‚d |_        |j                  t        j                  «       k(  sJ ‚| |k(  sJ ‚t        j                  «       |_        |j                  t        j                  «       k(  sJ ‚| |k7  sJ ‚t        j                  |_
        |j                  t        j                  u sJ ‚|| k(  sJ ‚t        j                  |_
        |j                  t        j                  u sJ ‚|| k7  sJ ‚y )	Nr[   r\   ©Údictionary_columnsÚms©Úcoerce_int96_timestamp_unit©Úbinary_type©Ú	list_typeÚns)rÇ   ÚParquetReadOptionsr?   Úbinary_viewÚLargeListTyperß  r�   râ  rä  Úbinaryræ  ÚListTypeÚlarge_binary)Úopts1Úopts2Úopts3Úopts4Úopts5s        r   Útest_parquet_read_optionsró  ¶  s  € ä×!Ñ!Ó#€EÜ×!Ñ!°c¸3°ZÔ@€EÜ×!Ñ!¸dÔC€EÜ×!Ñ!¬b¯n©nÓ.>Ô?€EÜ×!Ñ!¬B×,<Ñ,<Ô=€Eà×#Ñ#¤s£uÒ,Ð,Ð,à×#Ñ#¨¨S zÒ1Ð1Ð1à×,Ñ,°Ò4Ð4Ð4Ø×,Ñ,°Ò4Ð4Ð4à×Ñ¤§	¡	£Ò+Ð+Ð+Ø×Ñ¤§¡Ó 0Ò0Ð0Ð0à�?‰?œbŸk™kÑ)Ð)Ð)Ø�?‰?œb×.Ñ.Ñ.Ð.Ð.à�EŠ>Ðˆ>Ø�EŠ>Ðˆ>Ø�EŠ>Ðˆ>Ø�EŠ>Ðˆ>Ø�EŠ>Ðˆ>à€EÔØ×Ñ¤§	¡	£Ò+Ð+Ð+Ø�EŠ>Ðˆ>ÜŸ™Ó)€EÔØ×Ñ¤§¡Ó 1Ò1Ð1Ð1Ø�EŠ>Ðˆ>ä—k‘k€E„OØ�?‰?œbŸk™kÑ)Ð)Ð)Ø�EŠ>Ðˆ>Ü×&Ñ&€E„OØ�?‰?œb×.Ñ.Ñ.Ð.Ð.Ø�EŠ>Ð‰>r   c                  óÎ  — t        j                  «       } t        j                  dh¬«      }t        j                  d¬«      }t        j                  t        j                  «       ¬«      }t        j                  t        j                  ¬«      }| j
                  t        j                  «       k(  sJ ‚|j
                  t        j                  dg¬«      k(  sJ ‚|j
                  t        j                  d¬«      k(  sJ ‚|j
                  t        j                  t        j                  «       ¬«      k(  sJ ‚|j
                  t        j                  t        j                  ¬«      k(  sJ ‚y )Nr[   rÞ  Úsrá  rã  rå  )rÇ   rÈ   r?   ré  rê  Úread_optionsrè  )Úpff1Úpff2Úpff3Úpff4Úpff5s        r   Ú%test_parquet_file_format_read_optionsrü  à  s"  € ä×ÑÓ!€DÜ×Ñ°C°5Ô9€DÜ×Ñ¸CÔ@€DÜ×Ñ¬B¯N©NÓ,<Ô=€DÜ×Ñ¬"×*:Ñ*:Ô;€Dà×Ñ¤× 5Ñ 5Ó 7Ò7Ð7Ð7Ø×Ñ¤× 5Ñ 5È#ÈÔ OÒOÐOÐOØ×Ñ¤× 5Ñ 5Ø$'ô!)ò )ð )ð )à×Ñ¤× 5Ñ 5Ü—N‘NÓ$ô!&ò &ð &ð &à×Ñ¤× 5Ñ 5Ü×"Ñ"ô!$ò $ð $ñ $r   c                  óú  — t        j                  «       } t        j                  d¬«      }t        j                  dd¬«      }t        j                  dd¬«      }t        j                  dd	¬
«      }t        j                  d¬«      }t        j                  ddd¬«      }t        j                  d|¬«      }| j                  du sJ ‚| j
                  dk(  sJ ‚t        «       r| j                  du sJ ‚| j                  dk(  sJ ‚| j                  dk(  sJ ‚| j                  du sJ ‚|j                  du sJ ‚|j
                  dk(  sJ ‚t        «       r|j                  du sJ ‚|j                  du sJ ‚|j
                  dk(  sJ ‚t        «       r|j                  du sJ ‚|j                  du sJ ‚|j
                  dk(  sJ ‚t        «       r|j                  du sJ ‚|j                  dk(  sJ ‚|j                  d	k(  sJ ‚|j                  du sJ ‚t        «       r|j                  du sJ ‚|j                  |k(  sJ ‚|j                  | j                  k7  sJ ‚| | k(  sJ ‚| |k7  sJ ‚||k7  sJ ‚||k7  sJ ‚|| k7  sJ ‚|| k7  sJ ‚|| k7  sJ ‚y )Né   ©Úbuffer_sizei    T)r   Úuse_buffered_streamF)r   Ú
pre_bufferi@â i )Úthrift_string_size_limitÚthrift_container_size_limit©Úpage_checksum_verificationrx  )Úhole_size_limitÚrange_size_limitÚlazy)r  Úcache_optionsi áõé@B )rÇ   ÚParquetFragmentScanOptionsr?   ÚCacheOptionsr  r   r   r  r  r  r  r
  )rî  rï  rð  rñ  rò  Úopts6Ú
cache_optsÚopts7s           r   Útest_parquet_scan_optionsr  ò  s¶  € ä×)Ñ)Ó+€EÜ×)Ñ)°dÔ;€EÜ×)Ñ)Ø¨tô5€Eä×)Ñ)°eÈÔN€EÜ×)Ñ)Ø!'Ø$*ô-€Eô ×)Ñ)Ø#'ô)€Eä—‘Ø°¸dôD€Jä×)Ñ)°TÈÔT€Eà×$Ñ$¨Ñ-Ð-Ð-Ø×Ñ Ò%Ð%Ð%ÜÔØ×Ñ 4Ñ'Ð'Ð'Ø×)Ñ)¨[Ò8Ð8Ð8Ø×,Ñ,°	Ò9Ð9Ð9Ø×+Ñ+¨uÑ4Ð4Ð4à×$Ñ$¨Ñ-Ð-Ð-Ø×Ñ Ò%Ð%Ð%ÜÔØ×Ñ 4Ñ'Ð'Ð'à×$Ñ$¨Ñ,Ð,Ð,Ø×Ñ Ò%Ð%Ð%ÜÔØ×Ñ 4Ñ'Ð'Ð'à×$Ñ$¨Ñ-Ð-Ð-Ø×Ñ Ò%Ð%Ð%ÜÔØ×Ñ 5Ñ(Ð(Ð(à×)Ñ)¨VÒ3Ð3Ð3Ø×,Ñ,°Ò6Ð6Ð6à×+Ñ+¨tÑ3Ð3Ð3äÔØ×Ñ 4Ñ'Ð'Ð'Ø×Ñ *Ò,Ð,Ð,Ø×Ñ %×"5Ñ"5Ò5Ð5Ð5à�EŠ>Ðˆ>Ø�EŠ>Ðˆ>Ø�EŠ>Ðˆ>Ø�EŠ>Ðˆ>Ø�EŠ>Ðˆ>Ø�EŠ>Ðˆ>Ø�EŠ>Ð‰>r   c                 ó  — t        j                  «       t        j                  «       t        j                  t        j                  j                  dd¬«      «      t        j                  t        j                  j                  ddg¬«      ¬«      t        j                  t        j                  j                  dd¬	«      ¬«      t        j                  «       t        j                  t        j                  j                  dd
¬«      ¬«      t        j                  t        j                  j                  dd¬«      ¬«      g}	 |j                  t        j                  «       «       t        �g|j                  t        j                  «       t        j                  dh¬«      t        j                  d¬«      t        j                  dddd¬«      g«       |D ]'  }| j                  | j!                  |«      «      |k(  rŒ'J ‚ y # t        $ r Y Œ¥w xY w)NÚ	T)Ú	delimiterÚignore_empty_linesrY   rÇ  )Ú	skip_rowsrg  ©rö  i   )r  Ú
block_sizeÚignore©Únewlines_in_valuesÚunexpected_field_behavior)Úparse_optionsFé   ©rÝ   r  r[   rÞ  )r  rþ  é{   iÈ  )r  r   r  r  )rÇ   r  ÚCsvFileFormatr?   ÚcsvÚParseOptionsÚReadOptionsÚJsonFileFormatÚjsonr0   ÚOrcFileFormatÚImportErrorrl   ÚextendrÈ   r¼  r½  )r¾  Úformatsr  s      r   Útest_file_format_picklingr+  ,  s½  € ä
×ÑÓÜ
×ÑÓÜ
×ÑœŸ™×,Ñ,°tØ@Dð -ó Fó 	Gä
×Ñ¤b§f¡f×&8Ñ&8Ø u gð '9ó '/ô 	0ä
×Ñ¤b§f¡f×&8Ñ&8Ø Eð '9ó '+ô 	,ä
×ÑÓÜ
×ÑÜŸ'™'×.Ñ.À$ØIQð /ó Sô	Tô 	×Ñ¤r§w¡w×':Ñ':Ø¨"ð (;ó (.ô 	/ð€Gð Ø�‰”r×'Ñ'Ó)Ô*ô 
€~Ø�‰Ü× Ñ Ó"Ü× Ñ °S°EÔ:Ü× Ñ °TÔ:Ü× Ñ Ø$(Ø Ø),Ø,/ô	ð	

ô 
	ó ˆØ×"Ñ" =×#6Ñ#6°{Ó#CÓDÈÓSÐSÐSñ øô! ò Ùðús   Å#G> Ç>	H
È	H
c                 óÈ  — t        j                  «       t        j                  t        j                  j	                  d¬«      ¬«      t        j                  t        j                  j                  d¬«      ¬«      t        j                  «       t        j                  t        j                  j                  dd¬	«      «      t        j                  t        j                  j                  dd
¬«      ¬«      g}t        �;|j                  t        j                  d¬«      t        j                  d¬«      g«       |D ]'  }| j                  | j                  |«      «      |k(  rŒ'J ‚ y )NT)Ústrings_can_be_null©Úconvert_optionsé   ©r  r  FÚerrorr  i   r  rþ  rÿ  )r  )rÇ   ÚCsvFragmentScanOptionsr?   r"  ÚConvertOptionsr$  ÚJsonFragmentScanOptionsr&  r#  rl   r)  r  r¼  r½  )r¾  rÒ   Úoptions      r   Ú#test_fragment_scan_options_picklingr7  S  s   € ä
×!Ñ!Ó#Ü
×!Ñ!ÜŸF™F×1Ñ1ÀdÐ1ÓKô	Mä
×!Ñ!ÜŸ™×+Ñ+°uÐ+Ó=ô	?ä
×"Ñ"Ó$Ü
×"Ñ"Ü�G‰G× Ñ °EØ;Bð !ó Dó	Eô 	×"Ñ"ÜŸ™×,Ñ,¸È#Ð,ÓNô	Pð€Gô 
€~Ø�‰Ü×)Ñ)°dÔ;Ü×)Ñ)°TÔ:ð
ô 	ó
 ˆØ×"Ñ" =×#6Ñ#6°vÓ#>Ó?À6ÓIÐIÐIñ r   Úpaths_or_selectorrÂ   rÃ   r÷   rø   r  c                 óx  — t        j                  t        j                  dh¬«      |¬«      }t        j                  d«      }t        j                  t        j                  t        j                  dt        j                  «       «      t        j                  dt        j                  «       «      g«      «      |_
        |j                  dk(  sJ ‚|j                  ddgk(  sJ ‚|j                  d	u sJ ‚t        j                  | |||«      }|j                  «       }|j                  «       j!                  t        j                  t        j                  d
t        j"                  «       «      t        j                  dt        j$                  «       «      t        j                  dt        j&                  t        j                  «       t        j                  «       «      «      t        j                  dt        j"                  «       «      t        j                  dt        j(                  t        j"                  «       t        j                  «       dœ«      «      t        j                  dt        j                  «       «      t        j                  dt        j                  «       «      g«      d	¬«      sJ ‚t+        |j-                  «       t.        «      sJ ‚t+        |j1                  |«      t         j2                  «      sJ ‚|j4                  j!                  t        j6                  d«      «      sJ ‚|j1                  «       }t+        |t         j2                  «      sJ ‚|j9                  «       }t        j:                  g d¢t        j"                  «       ¬«      }	t        j:                  g d¢t        j$                  «       ¬«      }
t
        j<                  j?                  t        j:                  g d¢t        j                  «       ¬«      t        j:                  djA                  «       t        j                  «       ¬«      «      }t        j:                  tC        d«      D �cg c]  }|dz  tE        |dz  «      dœ‘Œ c}«      }|jG                  «       }tI        |ddgddg«      D �]M  \  \  }}}}t        j:                  |gdz  t        j                  «       ¬«      }t        j:                  |gdz  t        j                  «       ¬«      }t        j:                  |dz
  gdz  t        j"                  «       ¬«      }|jJ                  €J ‚|jL                  dk(  sJ ‚|d   j!                  |	«      sJ ‚|d   j!                  |
«      sJ ‚|d   j!                  |«      sJ ‚|d   j!                  |«      sJ ‚|d   j!                  |«      sJ ‚|d   j!                  |«      sJ ‚|d   j!                  |«      r�ŒNJ ‚ |jO                  «       }t+        |t
        jP                  «      sJ ‚tS        |«      dk(  sJ ‚|jL                  dk(  sJ ‚y c c}w )Nr_   rÞ  )rö  r  rÂ   rÅ   rÆ   Ú.rt  Fr]   r^   r`   ra   rZ   ©Úcheck_metadataTr   rw   z	0 1 2 3 4r   rY   r   rv   r"  r#  rU  r   r{   rÑ  rª   )*rÇ   rÈ   rè  rÊ   rË   r?   r=   r@   rÌ   rD   rÍ   Úpartition_base_dirÚselector_ignore_prefixesÚexclude_invalid_filesrÎ   rC  r	  rB   rC   rz   ra   rM   Úinspect_schemasrh   rÏ   r  rû   r  rê   r~   r€   r�   Úsplitr/   r_   r.  r  r  rV  rä   rE   r±   )rn   r8  r  rÐ   rÒ   rÓ   Úinspected_schemarS   rê   r6  r7  Úexpected_strr:   Úexpected_structÚiteratorrt   rT   rÅ   rÆ   Úexpected_groupÚexpected_keyÚexpected_constr   s                          r   Útest_filesystem_factoryrI  l  sÃ  € ô ×!Ñ!Ü×*Ñ*¸u¸gÔFØô€Fô
 ×)Ñ)¨(Ó3€GÜ×3Ñ3Ü
�	‰	Ü�H‰H�WœbŸh™h›jÓ)Ü�H‰H�UœBŸI™I›KÓ(ð
ó 	ó€GÔð ×%Ñ%¨Ò1Ð1Ð1Ø×+Ñ+°°S¨zÒ9Ð9Ð9Ø×(Ñ(¨EÑ1Ð1Ð1ä×)Ñ)ØÐ! 6¨7ó€Gð —‘Ó(Ðà�?‰?Ó×#Ñ#¤B§I¡IÜ
�‰�œŸ™›
Ó#Ü
�‰�œŸ
™
›Ó%Ü
�‰�œŸ™¤b§h¡h£j´"·)±)³+Ó>Ó?Ü
�‰�œ"Ÿ(™(›*Ó%Ü
�‰�œ2Ÿ9™9¬2¯8©8«:Ü+-¯9©9«;ñ&8ó 9ó 	:ä
�‰�œ"Ÿ(™(›*Ó%Ü
�‰�œŸ	™	›Ó$ð	/ó 	%ð ð $ô 	ð 	ð 	ô �g×-Ñ-Ó/´Ô6Ð6Ð6Ü�g—n‘nÐ%5Ó6Ü×*Ñ*ô,ð ,ð ,à×!Ñ!×(Ñ(¬¯©°4«Ô9Ð9Ð9à�n‰nÓ€GÜ�gœr×3Ñ3Ô4Ð4Ð4à�o‰oÓ€GÜ—8‘8šO´"·(±(³*Ô=€LÜ—8‘8šO´"·*±*³,Ô?€LÜ×%Ñ%×1Ñ1Ü
�‰’¤r§x¡x£zÔ2Ü
�‰�×"Ñ"Ó$¬2¯9©9«;Ô7ó€Lô —h‘hÜ).¨q¬ó 3Ù)1 Að '(¨!¡e´#°a¸!±e³*Ó =Ø)1ñ 3ó 4€Oà×#Ñ#Ó%€HÜ),¨X¸¸1°vÀÀu¸~×)NÑ%Ñˆ�˜5 #ÜŸ™ 5 '¨A¡+´B·H±H³JÔ?ˆÜ—x‘x  ¨¡	´·	±	³Ô<ˆÜŸ™ 5¨1¡9 +°¡/¼¿¹»
ÔCˆà×,Ñ,Ð8Ð8Ð8Ø× Ñ  AÒ%Ð%Ð%Ø�Q‰x�‰˜|Ô,Ð,Ð,Ø�Q‰x�‰˜|Ô,Ð,Ð,Ø�Q‰x�‰˜|Ô,Ð,Ð,Ø�Q‰x�‰˜~Ô.Ð.Ð.Ø�Q‰x�‰˜Ô/Ð/Ð/Ø�Q‰x�‰˜~Ô.Ð.Ð.Ø�Q‰x�‰˜|Ö,Ð,Ð,ð *Oð ×ÑÓ€EÜ�eœRŸX™XÔ&Ð&Ð&Üˆu‹:˜ÒÐÐØ×Ñ Ò!Ð!Ñ!ùò+ 3s   ÑX7c                 óÂ  — t        j                  «       }t        j                  d| |¬«      }|j                  D ]¤  }|j	                  || «      }|j
                  dgk(  sJ ‚|j	                  || dg¬«      }||fD ]P  }t        |t         j                  «      sJ ‚|j                  |k(  sJ ‚t        |j                  t        | «      «      rŒPJ ‚ |j
                  dgk(  rŒ¤J ‚ y )Nú/plain©rú   rÐ   r   ©r  )rÇ   rÈ   rS   r
  r  r  rM   r  rq   rú   rx   )rÀ   Úparquet_formatrS   rq   rT   Úrow_group_fragmentrÙ  s          r   Útest_make_fragmentrP  ½  sä   € ä×)Ñ)Ó+€NÜ�j‰j˜¨mØ .ô0€Gð —”ˆØ!×/Ñ/°°mÓDˆØ×"Ñ" q cÒ)Ð)Ð)à+×9Ñ9¸$ÀØFGÀSð :ó JÐàÐ.Ó/ˆAÜ˜a¤×!7Ñ!7Ô8Ð8Ð8Ø—6‘6˜T’>Ð!�>Ü˜aŸl™l¬D°Ó,?Õ@Ð@Ð@ð 0ð "×,Ñ,°°Ó3Ð3Ð3ñ r   c           	      ór  — | \  }}}}}}}}t        j                  «       }	|g}
|
D �cg c]  }|	j                  ||«      ‘Œ }}t        j                  ||	|j                  |¬«      }|j                  «       }|j                  |«      sJ ‚|j                  D �cg c]'  }|j                  j                  |«      j                  ‘Œ) }}t        |
|«      D ��cg c]  \  }}|	j                  |||¬«      ‘Œ }}}t        j                  ||	|j                  |¬«      }|j                  «       }|j                  |«      sJ ‚|
D �cg c]  }d‘Œ }}t        |
|«      D ��cg c]  \  }}|	j                  |||¬«      ‘Œ }}}t        j                  ||	|j                  |¬«      }t        j                  t        j                  j                   d¬«      5  |j                  «       }ddd«       |
D �cg c]  }d‘Œ }}t        |
|«      D ��cg c]  \  }}|	j                  |||¬«      ‘Œ }}}t        j                  ||	|j                  |¬«      }t        j                  t"        d¬«      5  |j                  «       }ddd«       yc c}w c c}w c c}}w c c}w c c}}w # 1 sw Y   Œ»xY wc c}w c c}}w # 1 sw Y   yxY w)	zÓ
    Test passing file_size to make_fragment. Not all FS implementations make use
    of the file size (by implementing an OpenInputFile that takes a FileInfo), but
    s3 does, which is why it's used here.
    )rÐ   r=   rú   )Ú	file_sizer   zParquet file size is 1 bytesr   Nr  zHTTP status 416)rÇ   rÈ   r  r  r=   rä   r	  r
  rú   Úget_file_infoÚsizer  r  r  r¯   Úlibra  ÚOSError)Ús3_example_simpler   rq   rc   ÚuriÚhostÚportÚ
access_keyÚ
secret_keyr  rŽ   r  rS   Útblr  Ú
sizes_truerT  Úfragments_with_sizeÚdataset_with_sizeÚsizes_toosmallÚsizes_toolarges                        r   Útest_make_fragment_with_sizerc  Ð  sÎ  € ð @QÑ<€Eˆ4��S˜$  j°*ä×&Ñ&Ó(€KØˆF€Eñ #ó$Ù"�Tð ×*Ñ*¨4°Õ4Ø"ð ð $ä×"Ñ"Ø˜+¨e¯l©lÀrô€Gð ×
Ñ
Ó
€CØ�:‰:�eÔÐÐð ELÇMÂMÓRÁM¸q�'×$Ñ$×2Ñ2°1Ó5×:Ó:ÀM€JÐRä-0°¸
Ô-CôEÙ-C™z˜t Tð '×4Ñ4°T¸2ÈÐ4ÕNØ-Cð ñ Eä×,Ñ,Ø K¸¿¹ÐQSôÐð ×
Ñ
Ó
€CØ�:‰:�eÔÐÐñ %*Ó*¡E˜D’a E€NÐ*ä-0°¸Ô-GôIÙ-G™z˜t Tð '×4Ñ4°T¸2ÈÐ4ÕNØ-Gð ñ Iô ×,Ñ,Ø K¸¿¹ÐQSôÐô 
�‰”w—{‘{×/Ñ/Ð7UÖ	VØ!×*Ñ*Ó,ˆ÷ 
Wñ +0Ó0©% $’g¨%€NÐ0ä-0°¸Ô-GôIÙ-G™z˜t Tð '×4Ñ4°T¸2ÈÐ4ÕNØ-Gð ñ Iô ×,Ñ,Ø K¸¿¹ÐQSôÐô
 
�‰”wÐ&7Ö	8Ø!×*Ñ*Ó,ˆ÷ 
9Ð	8ùòS$ùò SùóEùò +ùóI÷ 
WÐ	Vüò 1ùóI÷ 
9Ð	8úsA   §I;Â,J ÃJÄ>	JÅJÇJÇ(	J"ÈJ'É!J-ÊJÊ-J6c                 ó<  — t        j                  d«      }t        j                  |j	                  d«      «      }t        j                  «       }|j                  |«      }t        |j                  «       t        j                  «      sJ ‚t        j                  g d¢g d¢g d¢gg d¢¬«      }| j                  |«      j                  |«      sJ ‚|j                  |j                  |«      «      }| j                  |«      j                  |j                  «       «      sJ ‚y )NzT
        alpha,num,animal
        a,12,dog
        b,11,cat
        c,10,rabbit
    úutf-8©r[   r\   r}   ©é   é   rª   ©ÚdogÚcatÚrabbit©r�  ÚnumÚanimalr¦  )ÚtextwrapÚdedentr?   Ú	py_bufferÚencoderÇ   r!  r  rM   rL   ÚBufferReaderr   rä   r	  r¼  r½  )rõ   r¾  ÚcontentÚbufferÚ
csv_formatrT   r|  Úpickleds           r   Ú"test_make_csv_fragment_from_bufferrz  
  sì   € Ü�o‰oð ó 	€Gô �\‰\˜'Ÿ.™.¨Ó1Ó2€Fä×!Ñ!Ó#€JØ×'Ñ'¨Ó/€Hô �h—m‘m“o¤r§¡Ô7Ð7Ð7ä�x‰xšÚ%Ú1ð3ò 9ô:€Hð ×"Ñ" 8Ó,×3Ñ3°HÔ=Ð=Ð=à×!Ñ! -×"5Ñ"5°hÓ"?Ó@€GØ×"Ñ" 7Ó+×2Ñ2°8×3DÑ3DÓ3FÔGÐGÑGr   c                 ó  — d}t        j                  |j                  d«      «      }t        j                  «       }|j                  |«      }t        |j                  «       t         j                  «      sJ ‚t        j                  g d¢g d¢g d¢gg d¢¬«      }| j                  |«      j                  |«      sJ ‚|j                  |j                  |«      «      }| j                  |«      j                  |j                  «       «      sJ ‚y )NzŠ{"alpha" : "a", "num": 12, "animal" : "dog"}
{"alpha" : "b", "num": 11, "animal" : "cat"}
{"alpha" : "c", "num": 10, "animal" : "rabbit"}
re  rf  rg  rj  rn  r¦  )r?   rs  rt  rÇ   r%  r  rM   rL   ru  r   rä   r	  r¼  r½  )rõ   r¾  rv  rw  Újson_formatrT   r|  ry  s           r   Ú#test_make_json_fragment_from_bufferr}  #  sà   € ð<€Gô �\‰\˜'Ÿ.™.¨Ó1Ó2€Fä×#Ñ#Ó%€KØ×(Ñ(¨Ó0€Hô �h—m‘m“o¤r§¡Ô7Ð7Ð7ä�x‰xšÚ%Ú1ð3ò 9ô:€Hð ×"Ñ" 8Ó,×3Ñ3°HÔ=Ð=Ð=à×!Ñ! -×"5Ñ"5°hÓ"?Ó@€GØ×"Ñ" 7Ó+×2Ñ2°8×3DÑ3DÓ3FÔGÐGÑGr   c                 ó\  — t        j                  g d¢«      t        j                  g d¢«      t        j                  g d¢«      g}|d   j                  «       |d   |d   j                  «       g}t        j                  t        j
                  ddg¬	«      d
d¬«      }|t        j                  «       f||fg}|D �]p  \  }}t        j                  |g d¢¬«      }t        j                  «       }t        j                  ||«       |j                  «       }	|j                  |	«      }
| j                  |
«      j                  |«      sJ ‚|j                  |j                  |
«      «      }| j                  |«      j                  |«      sJ ‚t        j                   |	«      }|j                  |«      }
|
j#                  «       }t%        |t         j&                  «      sJ ‚|j(                  sJ ‚t        j*                  |
j#                  «       «      j-                  «       j                  |«      r�ŒqJ ‚ y )Nrf  rg  rj  r   r   rv   r�  rp  rÞ  Trþ  )rö  r  r   rn  r¦  )r?   r~   Údictionary_encoderÇ   rÈ   rè  r   ÚBufferOutputStreamrl   rm   Úgetvaluer  rä   r	  r¼  r½  ru  rL   rM   rN   rQ   ÚParquetFileÚread)rõ   r¾  ÚarraysÚdictionary_arraysÚdictionary_formatÚcasesÚformat_r   rr   rw  rT   ry  Ú	file_likeÚopened_files                 r   Ú&test_make_parquet_fragment_from_bufferr‹  9  sà  € ô 	�‰’Ó!Ü
�‰’ÓÜ
�‰Ò)Ó*ð€Fð 	ˆq‰	×#Ñ#Ó%Øˆq‰	Øˆq‰	×#Ñ#Ó%ðÐô
 ×,Ñ,Ü×*Ñ*Ø '¨Ð2ô
ð !ØôÐð 
”×%Ñ%Ó'Ð(Ø	Ð-Ð.ð€Eô !‰ˆ�Ü—‘˜Ò'AÔBˆä×#Ñ#Ó%ˆÜ
�‰�u˜cÔ"Ø—‘“ˆà×(Ñ(¨Ó0ˆØ×&Ñ& xÓ0×7Ñ7¸Ô>Ð>Ð>à×%Ñ% m×&9Ñ&9¸(Ó&CÓDˆØ×&Ñ& wÓ/×6Ñ6°uÔ=Ð=Ð=ô —O‘O FÓ+ˆ	Ø×(Ñ(¨Ó3ˆØ—m‘m“oˆÜ˜+¤r§}¡}Ô5Ð5Ð5Ø×#Ò#Ð#Ð#Ü�~‰~˜hŸm™m›oÓ.×3Ñ3Ó5×<Ñ<¸UÖCÐCÐCñ' !r   c                 óô   — t        j                  t        d«      dgdz  dgdz  dgdz  z   gg d¢¬«      }t        | dz  «      }t	        j
                  ||d	g|¬
«       t        j                  |dd|¬«      }||fS )NrR  r   r[   r{   r\   r¤  r¦  Útest_parquet_datasetr¾   )Úpartition_colsÚ
chunk_sizer§   r¬   )rÐ   rÍ   rú   )r?   r   r/   r_   rl   Úwrite_to_datasetrÇ   rS   )r·  r�  rú   r   rq   rS   s         r   Ú_create_dataset_for_fragmentsr‘  g  s‡   € ä�H‰HÜ	ˆq‹�A�3˜‘7˜S˜E A™I¨¨°©	Ñ1Ð2Ú"ô€Eô
 ˆwÐ/Ñ/Ó0€Dä×Ñ˜˜tØ(. x¸JõHä�j‰jØ�Y¨VÀ
ô€Gð �'ˆ>Ðr   c                 óÎ  — t        | «      \  }}t        |j                  «       «      }t        |«      dk(  sJ ‚|d   }ddg}|j                  j
                  |k(  sJ ‚|j                  j                  |j                  |j                  «      |j                  k(  sJ ‚|j                  j                  t        j                  d«      dk(  «      sJ ‚|j                  |«      }|j                  |k(  sJ ‚|j                  |j!                  d«      j#                  dd«      «      sJ ‚|j                  ||j$                  ¬«      }|j                  g d	¢k(  sJ ‚|j                  |j#                  dd«      «      sJ ‚|j                  |j$                  j'                  d«      k(  sJ ‚|j                  ||j$                  t        j                  d«      dk  ¬
«      }|j                  g d	¢k(  sJ ‚y )Nrv   r   r  r¥  r¾   r[   r{   rb   r¤  )r=   rþ   )r‘  rh   rK   r±   Úphysical_schemar§  rÐ   rC  rq   rú   r  r	  rÇ   r@   rä   rg  Úremove_columnÚslicer=   Úremove)r·  rõ   r   rS   r  rÙ  Úphysical_namesr9  s           r   Útest_fragmentsr˜  y  s¼  € ä2°7Ó;�N€Eˆ7ô �W×*Ñ*Ó,Ó-€IÜˆy‹>˜QÒÐÐØ�!‰€Aà˜D�\€Nà×Ñ×"Ñ" nÒ4Ð4Ð4Ø�8‰8×Ñ˜AŸF™F A§L¡LÓ1°Q×5FÑ5FÒFÐFÐFØ×!Ñ!×(Ñ(¬¯©°&Ó)9¸SÑ)@ÔAÐAÐAð ×$Ñ$ QÓ'€FØ×Ñ .Ò0Ð0Ð0Ø�=‰=˜×,Ñ,¨QÓ/×5Ñ5°a¸Ó;Ô<Ð<Ð<ð ×$Ñ$ Q¨w¯~©~Ð$Ó>€FØ×ÑÒ"6Ò6Ð6Ð6Ø�=‰=˜Ÿ™ Q¨Ó*Ô+Ð+Ð+Ø×Ñ §¡× 4Ñ 4°QÓ 7Ò7Ð7Ð7ð ×$Ñ$Ø	�'—.‘.¬¯©°$«¸!Ñ);ð %ó =€Fà×ÑÒ"6Ò6Ð6Ñ6r   c                 ó¸  — t        j                  t        d«      dgdz  dgdz  z   gddg¬«      }t        | dz  «      }t	        j
                  ||dg¬	«       t        j                  t        j                  d
g«      d¬«      }t        j                  |d|¬«      }|j                  t        j                  d«      dk\  ¬«      }t        t        |«      «      dk(  sJ ‚y )NrR  r   r{   rv   Úcolr¾   r¦  r�  ©rŽ  )r¾   r   r¬   ©rÃ  r§   r©  rý   )r?   r   r/   r_   rl   r�  rÇ   rÍ   r=   rS   rK   r@   r±   rh   )r·  r   rq   r¾   rS   r  s         r   Útest_fragments_implicit_castr�  š  s½   € ô �H‰H”e˜A“h   a¡¨1¨#°©'Ñ 1Ð2¸5À&¸/ÔJ€EÜˆwÐ/Ñ/Ó0€DÜ×Ñ˜˜t°V°HÕ=ä�?‰?œ2Ÿ9™9Ð&6Ð%7Ó8ÀÔH€DÜ�j‰j˜ i¸dÔC€GØ×%Ñ%¬R¯X©X°fÓ-=ÀÑ-BÐ%ÓC€IÜŒt�I‹Ó 1Ò$Ð$Ñ$r   c                 ó.  ‡
— t        | «      \  Š
}	 dˆ
fd„	}t        |j                  «       «      d   }|j                  }|j	                  |j                  |«      «      }|j                  |«      |j                  |«      k(  sJ ‚|j                  |j                  |j                  |j                  ¬«      }|j                  |«      j                  |j                  |«      «      sJ ‚ ||d«       |j                  |j                  |j                  |j                  ¬«      } ||dt        j                  d«      dk  ¬«       |j                  |j                  |j                  |j                  ¬«      } ||ddgt        j                  d«      d	k  ¬
«       |j                  |j                  |j                  |j                  ¬«      } ||dt        j                  d«      dk(  ¬«       d|j                  j                  ddd«      z   }	t!        j"                  t$        |	¬«      5  |j                  |j                  |j                  |j                  ¬«      }|j                  |t        j                  d«      dk(  ¬«       d d d «       y # 1 sw Y   y xY w)Nc                 óæ   •— | j                  ‰j                  ||¬«      }|r|n‰j                  }|j                  |k(  sJ ‚ ‰j                  |Ž j	                  |«      }|j                  |«      sJ ‚y )N©r=   r*   rþ   )rä   r=   rg  r•  Úselectr	  )rT   Ú	row_slicer*   rþ   Úactualrg  r|  r   s          €r   Úassert_yields_projectedz;test_fragments_reconstruct.<locals>.assert_yields_projected¬  st   ø€ à×"Ñ"Ø—<‘<¨¸ð #ó Aˆá")‘w¨u×/AÑ/AˆØ×"Ñ" lÒ2Ð2Ð2à�5—;‘; 	Ð*×1Ñ1°,Ó?ˆØ�}‰}˜XÔ&Ð&Ñ&r   r   )r  )r   r{   )r   rv   r  rv   rý   r(  rw  r¾   r[   z&No match for FieldRef.Name\(part\) in Fr   ©NN)r‘  rh   rK   rÐ   r¼  r½  rä   r  rq   rú   r  r	  rÇ   r@   r“  Ú	to_stringr  r  rN  )r·  rõ   r¾  rS   r¤  rT   rN  Úpickled_fragmentÚnew_fragmentÚpatternr   s             @r   Útest_fragments_reconstructrª  ¨  sp  ø€ ä2°7Ó;�N€Eˆ7ð 6:õ'ô �G×)Ñ)Ó+Ó,¨QÑ/€HØ—_‘_€Nð %×*Ñ*¨=×+>Ñ+>¸xÓ+HÓIÐØ×"Ñ"ØóØ+×4Ñ4°XÓ>ò?ð ?ð ?ð "×/Ñ/Ø�‰�x×*Ñ*Ø%×:Ñ:ð 0ó <€Lð ×"Ñ" <Ó0×7Ñ7Ø×Ñ Ó)ô+ð +ð +á˜L¨&Ô1ð "×/Ñ/Ø�‰�x×*Ñ*Ø%×:Ñ:ð 0ó <€Lñ ˜L¨&¼¿¹À$»È!Ñ9KÕLð "×/Ñ/Ø�‰�x×*Ñ*Ø%×:Ñ:ð 0ó <€Lñ ˜L¨&Ø%) F´2·8±8¸D³>ÀCÑ3GõIð "×/Ñ/Ø�‰�x×*Ñ*Ø%×:Ñ:ð 0ó <€Lñ ˜L¨&Ü#%§8¡8¨FÓ#3°sÑ#:õ<ð
 9Ø×'Ñ'×1Ñ1°%¸ÀÓFñG€Gä	�‰”z¨Ö	1Ø%×3Ñ3Ø�M‰M˜8×.Ñ.Ø!)×!>Ñ!>ð 4ó @ˆð 	×Ñ ´R·X±X¸fÓ5EÈÑ5LÐÔM÷	 
2×	1Ñ	1ús   È&AJÊJc                 óž  — t        | d¬«      \  }}t        |j                  «       «      d   }t        |j                  «       «      }t	        |«      |j
                  cxk(  rdk(  sJ ‚ J ‚|j                  |d   |j                  ¬«      }|j                  g d¢k(  sJ ‚t	        |«      dk(  sJ ‚|j                  |j                  dd«      «      sJ ‚|d   j                  €J ‚|d   j
                  dk(  sJ ‚|d   j                  d   j                  dddœdddœdœk(  sJ ‚t        |j                  t        j                  d	«      dk  ¬
«      «      d   }t        |j                  t        j                  d	«      dk  «      «      }t	        |«      dk(  sJ ‚|j                  |d   t        j                  d	«      dk  ¬
«      }t	        |«      dk(  sJ ‚y )Nrv   ©r�  r   rb   r¤  r   ©ÚminÚmax©r  r¥  r  rý   )r‘  rh   rK   r  r±   r  rä   r=   rg  r	  r•  r  Ú
statisticsrÇ   r@   )r·  rõ   r   rS   rT   r  r9  s          r   Ú!test_fragments_parquet_row_groupsr²  å  sÚ  € ä2°7ÀqÔI�N€Eˆ7ä�G×)Ñ)Ó+Ó,¨QÑ/€Hô ˜x×:Ñ:Ó<Ó=ÐÜÐ"Ó# x×'>Ñ'>ÔCÀ!ÒCÐCÑCÐCÐCØ×$Ñ$Ø˜AÑ w§~¡~ð %ó 7€Fà×ÑÒ"6Ò6Ð6Ð6Üˆv‹;˜!ÒÐÐØ�=‰=˜Ÿ™ Q¨Ó*Ô+Ð+Ð+à˜qÑ!×,Ñ,Ð8Ð8Ð8Ø˜qÑ!×0Ñ0°AÒ5Ð5Ð5Ø˜qÑ!×,Ñ,¨QÑ/×:Ñ:Ø Ñ"Ø Ñ"ñ?ò ð ð ô
 �G×)Ñ)´·±¸$³À!Ñ1CÐ)ÓDÓEÀaÑH€HÜ˜x×:Ñ:¼2¿8¹8ÀD»>ÈAÑ;MÓNÓOÐÜÐ"Ó# qÒ(Ð(Ð(Ø×$Ñ$Ø˜AÑ¤r§x¡x°£~¸Ñ'9ð %ó ;€Fäˆv‹;˜!ÒÐÑr   c                 óæ  — t        j                  dt        d«      i«      }t        j                  || dz  d¬«       t        j                  | dz  d¬«      }t        |j                  «       «      d   }|j                  j                  |j                  |j                  d	d
g¬«      }|j                  dk(  sJ ‚|j                  «        |j                  dk(  sJ ‚t        |j                   «      dk(  sJ ‚y )Nr[   rR  útest.parquetrv   ©Úrow_group_sizer§   r  r   r   rY   rM  )r?   r   r/   rl   rm   rÇ   rS   rh   rK   rÐ   r  rq   rú   r  Úensure_complete_metadatar±   r  )r·  r   rS   Úoriginal_fragmentrT   s        r   Ú%test_fragments_parquet_num_row_groupsr¹    sà   € ä�H‰H�cœ5 ›8�_Ó%€EÜ‡N�N�5˜' NÑ2À1ÕEÜ�j‰j˜ >Ñ1¸)ÔD€GÜ˜W×2Ñ2Ó4Ó5°aÑ8Ðð !×'Ñ'×5Ñ5Ø×ÑÐ 1× <Ñ <Ø�q�6ð 6ó €Hð ×"Ñ" aÒ'Ð'Ð'à×%Ñ%Ô'Ø×"Ñ" aÒ'Ð'Ð'Üˆx×"Ñ"Ó# qÒ(Ð(Ñ(r   c                 óÐ  — t        j                  t        ddgddg¬«      «      }|d   j                  d«      |d<   t	        j
                  t        j                  |«      | dz  «       d	d lm	}  |j                  | dz  «      }|j                  | |j                  d«      dk(  ¬
«      }|j                  d	   |j                  «       k(  j                  «       j                  «       sJ ‚y )Nr[   r\   r   rv   )Úcol1Úcol2r»  Úcategoryztest_filter_dictionary.parquetr   rý   )r3   r4   ÚdictÚastyperl   rm   r?   r   Úpyarrow.datasetrS   rä   r@   r²   Ú	to_pandasr¬  )r·  rõ   rH   rÇ   rS   r9  s         r   Ú,test_fragments_parquet_row_groups_dictionaryrÂ    sÄ   € ô 
�‰”d  c 
°!°Q°Ô8Ó	9€BØ�F‘×"Ñ" :Ó.€B€v�Jä‡N�N”2—8‘8˜B“< Ð+KÑ!KÔLå Øˆb�j‰j˜Ð#CÑCÓD€GØ×$Ñ$ W°X°R·X±X¸fÓ5EÈÑ5LÐ$ÓM€Fà�G‰G�A‰J˜&×*Ñ*Ó,Ñ,×1Ñ1Ó3×7Ñ7Ô9Ð9Ñ9r   c                 óø  — |\  }}t        | d|¬«      \  }}t        |j                  «       «      d   } ||j                  g«      5  |j	                  «        d d d «       |j
                  ddgk(  sJ ‚ |g «      5  |j	                  «        d d d «       t        |j                  t        j                  «      sJ ‚|j                  j                  |j                  |j                  ddg¬«      }|j
                  |j
                  k(  sJ ‚|j	                  «        |j
                  d   }	|	j                  dk(  sJ ‚|	j                  dk(  sJ ‚|	j                  €J ‚|j!                  |j#                  |«      «      }
 ||j                  g«      5  |
j
                  ddgk(  sJ ‚|
j
                  d   }	|	j                  dk(  sJ ‚|	j                  €J ‚	 d d d «       y # 1 sw Y   �Œ�xY w# 1 sw Y   �ŒZxY w# 1 sw Y   y xY w)Nrv   ©r�  rú   r   r   rM  )r‘  rh   rK   rq   r·  r  rM   Úmetadatarl   ÚFileMetaDatarÐ   r  rú   Úidrí   r±  r¼  r½  )r·  r¢   r¾  rc   rš   rt  rS   rT   r¨  Ú	row_groupr§  s              r   Ú&test_fragments_parquet_ensure_metadatarÉ  $  sè  € à&Ñ€BˆÜ.Ø˜A¨"ô�J€A€wô �G×)Ñ)Ó+Ó,¨QÑ/€Hñ 
�x—}‘}�oÕ	&Ø×)Ñ)Ô+÷ 
'à×Ñ 1 a &Ò(Ð(Ð(ñ 
�bÕ	Ø×)Ñ)Ô+÷ 
ô �h×'Ñ'¬¯©Ô9Ð9Ð9ð —?‘?×0Ñ0Ø�‰�x×*Ñ*¸¸1°vð 1ó €Lð ×"Ñ" h×&9Ñ&9Ò9Ð9Ð9ð ×)Ñ)Ô+Ø×'Ñ'¨Ñ*€IØ�<‰<˜1ÒÐÐØ×Ñ Ò"Ð"Ð"Ø×ÑÐ+Ð+Ð+ð %×*Ñ*¨=×+>Ñ+>¸|Ó+LÓMÐÙ	�x—}‘}�oÕ	&Ø×*Ñ*¨q°!¨fÒ4Ð4Ð4Ø$×/Ñ/°Ñ2ˆ	Ø�|‰|˜qÒ Ð Ð Ø×#Ñ#Ð/Ð/Ñ/÷	 
'Ð	&÷3 
'Ñ	&ú÷
 
Ñ	ú÷( 
'Ð	&ús%   ÁGÁ:G#Æ
AG0ÇG Ç#G-Ç0G9c                 óX  — |\  }}t        | |¬«      \  }}t        |j                  «       «      d   } |g «      5  |j                  |j	                  |«      «      }d d d «        |j
                  g«      5  |j                  }	d d d «       	dgk(  sJ ‚y # 1 sw Y   Œ:xY w# 1 sw Y   ŒxY w)N©rú   r   r   )r‘  rh   rK   r¼  r½  rq   r  )
r·  r¢   r¾  rc   rš   rt  rS   rT   r§  r  s
             r   Ú)test_fragments_parquet_pickle_no_metadatarÌ  M  s§   € ð 'Ñ€BˆÜ.¨wÀ2ÔF�J€A€wÜ�G×)Ñ)Ó+Ó,¨QÑ/€Hñ 
�bÕ	Ø(×.Ñ.¨}×/BÑ/BÀ8Ó/LÓMÐ÷ 
ñ 
Ð'×,Ñ,Ð-Õ	.Ø%×0Ñ0ˆ
÷ 
/à˜!˜ÒÐÑ÷ 
Ð	ú÷ 
/Ð	.ús   º!BÁ6B ÂBÂ B)c                 ó&  — t        j                  t        j                  g d¢t        j                  «       «      t        j                  g d¢t        j                  «       «      t        j                  g d¢t        j
                  «       «      t        j                  g d¢t        j                  «       «      t        j                  g d¢t        j                  «       «      t        j                  g d¢t        j                  «       «      t        j                  g d¢t        j                  «       «      t        j                  g d¢t        j                  «       «      t        j                  g d¢t        j                  «       «      t        j                  g d¢t        j                  «       «      t        j                  g d¢t        j                  «       «      t        j                  g d¢t        j                  «       «      t        j                  g d¢t        j                  «       «      t        j                  g d¢t        j                   d«      «      t        j                  g d¢t        j                   d«      «      t        j                  g d¢t        j                   d«      «      t        j                  g d¢t        j"                  «       «      t        j                  g d¢t        j$                  «       «      t        j                  g d¢t        j&                  d«      «      t        j                  g d¢t        j(                  d«      «      gg d	¢¬
«      }t+        | dz  «      }t-        j.                  |||¬«       |t1        j2                  |dd¬«      fS )N)TNF)r   rª   é*   )r!  g      $@ç      E@)r[   NÚzrõ  rà  Úus)r   rª   l    j­t )Úbooleanr   Úuint8rƒ   r‚   rÌ   Úuint32rB   Úuint64r1   ÚdoubleÚutf8rë  úts[s]úts[ms]úts[us]rA   Údate64Útime32Útime64r¦  Útest_parquet_dataset_all_typesr¬  r§   r¬   r©  )r?   r   r~   Úbool_r   rÓ  rƒ   r‚   rÌ   rÔ  rB   rÕ  Úfloat32rC   r×  rë  Ú	timestamprA   rÛ  rÜ  rÝ  r_   rl   r�  rÇ   rS   )r·  r�  r   rq   s       r   Ú_create_dataset_all_typesrâ  _  sü  € Ü�H‰Hä�H‰HÒ(¬"¯(©(«*Ó5Ü�H‰H’[¤"§'¡'£)Ó,Ü�H‰H’[¤"§(¡(£*Ó-Ü�H‰H’[¤"§(¡(£*Ó-Ü�H‰H’[¤"§)¡)£+Ó.Ü�H‰H’[¤"§(¡(£*Ó-Ü�H‰H’[¤"§)¡)£+Ó.Ü�H‰H’[¤"§(¡(£*Ó-Ü�H‰H’[¤"§)¡)£+Ó.Ü�H‰HÒ&¬¯
©
«Ó5Ü�H‰HÒ&¬¯
©
«Ó5Ü�H‰HÒ%¤r§w¡w£yÓ1Ü�H‰HÒ%¤r§y¡y£{Ó3Ü�H‰H’[¤"§,¡,¨sÓ"3Ó4Ü�H‰H’[¤"§,¡,¨tÓ"4Ó5Ü�H‰H’[¤"§,¡,¨tÓ"4Ó5Ü�H‰H’[¤"§)¡)£+Ó.Ü�H‰HÒ(¬"¯)©)«+Ó6Ü�H‰H’[¤"§)¡)¨C£.Ó1Ü�H‰H’[¤"§)¡)¨D£/Ó2ð)	
ò,
ô/-€Eô^ ˆwÐ9Ñ9Ó:€Dô ×Ñ˜˜t°
Õ;à”"—*‘*˜T¨)À&ÔIÐIÐIr   c                 óD  ‡— t        | «      \  }}t        |j                  «       «      d   }dd lŠˆfd„}ˆfd„}ˆfd„}‰j                  }‰j
                  }t        |j                  «       «      }	|	d   j                  €J ‚|	d   j                  d   }
|
j                  dk(  sJ ‚|
j                  dkD  sJ ‚|
j                  i ddd	d
œ“dddd
œ“dddd
œ“dddd
œ“dddd
œ“dddd
œ“dddd
œ“dddd
œ“dddd
œ“dddd
œ“dddd
œ“dddd
œ“dddd
œ“d |d«       |d«      d
œ“d  |d«       |d«      d
œ“d! |d«       |d«      d
œ“d" |d#dd$«       |d#d$d%«      d
œ“ |d#dd«       |d#d$d&«      d
œ |ddd«       |ddd«      d
œ |dddd«       |dddd«      d
œd'œ¥k(  sJ ‚y )(Nr   c                 ó2   •—  ‰j                   ddddd| «      S ©Né²  r   r   ©r+   ©r  r+   s    €r   Údt_sz.test_parquet_fragment_statistics.<locals>.dt_sŸ  s    ø€ Ð)˜×)Ñ)¨$°°1°a¸¸AÓ>Ð>r   c           
      ó:   •—  ‰j                   dddddd| dz  «      S )Nræ  r   r   r¨   rç  rè  s    €r   Údt_msz/test_parquet_fragment_statistics.<locals>.dt_ms   s&   ø€ Ð*˜×*Ñ*¨4°°A°q¸!¸QÀÀ$ÁÓGÐGr   c           	      ó4   •—  ‰j                   dddddd| «      S rå  rç  rè  s    €r   Údt_usz/test_parquet_fragment_statistics.<locals>.dt_us¡  s"   ø€ Ð*˜×*Ñ*¨4°°A°q¸!¸QÀÓBÐBr   rY   r¨   rÒ  FTr­  r   r   rÎ  rÓ  rƒ   r‚   rÌ   rÔ  rB   rÕ  r1   r!  rÏ  rÖ  r×  r[   rÐ  rë  ó   aó   zrØ  rÙ  rÚ  rA   ræ  rv   rh  é   )rÛ  rÜ  rÝ  )râ  rh   rK   r+   r%   Útimer  r  rí   Útotal_byte_sizer±  )r·  r   rS   rT   ré  rë  rí  r%   rñ  r  rÈ  r+   s              @r   Ú test_parquet_fragment_statisticsró  —  sn  ø€ ô /¨wÓ7�N€Eˆ7ä�G×)Ñ)Ó+Ó,¨QÑ/€HãÜ>ÜGÜBØ�=‰=€DØ�=‰=€Dô ˜x×:Ñ:Ó<Ó=ÐØ˜qÑ!×,Ñ,Ð8Ð8Ð8Ø# AÑ&×1Ñ1°!Ñ4€IØ×Ñ Ò"Ð"Ð"Ø×$Ñ$ tÒ+Ð+Ð+Ø×Ñð $Ø˜5¨Ñ.ð$à˜ "Ñ%ð$ð 	˜ 2Ñ&ð$ð 	˜ 2Ñ&ð	$ð
 	˜! BÑ'ð$ð 	˜ 2Ñ&ð$ð 	˜! BÑ'ð$ð 	˜ 2Ñ&ð$ð 	˜! BÑ'ð$ð 	˜ TÑ*ð$ð 	˜# dÑ+ð$ð 	˜ CÑ(ð$ð 	˜$ tÑ,ð$ð 	™˜a›©¨b«Ñ2ð$ð 	™% ›(©5°«9Ñ5ð$ð  	™% ›(©5°«9Ñ5ð!$ð" 	™$˜t Q¨Ó*±4¸¸aÀÓ3DÑEð#$ñ$ ˜t Q¨Ó*±4¸¸aÀÓ3DÑEÙ˜q ! Q›-±°Q¸¸2³Ñ?Ù˜q ! Q¨Ó*±4¸¸1¸aÀÓ3DÑEò)$ò ð ñ r   c                 ó<  — t        j                  g d¢g d¢dœ«      }t        j                  || dz  d¬«       t	        j
                  | dz  d¬«      }t        |j                  «       «      d	   j                  «       }|d
   j                  d	   j                  i k(  sJ ‚y )N)r   r   NN)r[   r\   NNrZ   r´  rv   rµ  r§   r  r   r   )r?   r   rl   rm   rÇ   rS   rh   rK   r  r  r±  )r·  r   rS   r  s       r   Ú&test_parquet_fragment_statistics_nullsrõ  Ã  s…   € ä�H‰HÒ-Ò4JÑKÓL€EÜ‡N�N�5˜' NÑ2À1ÕEä�j‰j˜ >Ñ1¸)ÔD€GÜ�W×*Ñ*Ó,Ó-¨aÑ0×CÑCÓE€Ià�Q‰<×"Ñ" 1Ñ%×0Ñ0°BÒ6Ð6Ñ6r   c                 ó8  — t        j                  g d¢g d¢dœ«      d d }|j                  | dz  d¬«       t        j                  | dz  d¬	«      }t        |j                  «       «      d   j                  «       }|d   j                  d   j                  i k(  sJ ‚y )
N)r[   r\   r\   ©r{   r   rÑ  rZ   r   r´  r¯   ©Úenginer§   r  )
r3   r4   Ú
to_parquetrÇ   rS   rh   rK   r  r  r±  )r·  rH   rS   r  s       r   Ú'test_parquet_empty_row_group_statisticsrû  Î  sŒ   € ô 
�‰šO²)Ñ<Ó	=¸b¸qÐ	A€BØ‡M�M�'˜NÑ*°9€MÔ=ä�j‰j˜ >Ñ1¸)ÔD€GÜ�W×*Ñ*Ó,Ó-¨aÑ0×CÑCÓE€Ià�Q‰<×"Ñ" 1Ñ%×0Ñ0°BÒ6Ð6Ñ6r   c                 óò  — t        | d¬«      \  }}t        |j                  «       «      d   }|j                  j	                  t        j                  d«      dk(  «      sJ ‚t        |j                  t        j                  d«      dk(  |j                  ¬«      «      }t        |«      dk(  sJ ‚t        |j                  t        j                  d«      dk(  |j                  ¬«      «      }t        |«      dk(  sJ ‚y )Nrv   r¬  r   r¾   r[   ©rþ   r=   r\   )
r‘  rh   rK   r  r	  rÇ   r@   r  r=   r±   )r·  r   rS   rT   r  s        r   Ú+test_fragments_parquet_row_groups_predicaterþ  Ú  sì   € ä2°7ÀqÔI�N€Eˆ7ä�G×)Ñ)Ó+Ó,¨QÑ/€HØ×(Ñ(×/Ñ/´·±¸Ó0@ÀCÑ0GÔHÐHÐHô Ø×#Ñ#¬2¯8©8°FÓ+;¸sÑ+BØ+2¯>©>ð 	$ó 	;ó<Ðô Ð"Ó# qÒ(Ð(Ð(ô Ø×#Ñ#¬2¯8©8°FÓ+;¸sÑ+BØ+2¯>©>ð 	$ó 	;ó<Ðô Ð"Ó# qÒ(Ð(Ñ(r   c                 ó
  — t        | d¬«      \  }}t        |j                  «       «      d   }|j                  }t        |j	                  «       «      }|j                  |j                  |«      «      }|j                  |«      |j                  |«      k(  sJ ‚|j                  |j                  |j                  |j                  dg¬«      }	|j                  |	«      }
|
j                  |j                  |d   «      «      sJ ‚|j                  |j                  |j                  |j                  dh¬«      }	|j                  |	|j                  ddgt        j                  d«      dk  ¬	«      }
|
j                   ddgk(  sJ ‚t#        |
«      dk(  sJ ‚|j                  |j                  |j                  |j                  dh¬«      }	t%        j&                  t(        d
¬«      5  |j                  |	«       d d d «       y # 1 sw Y   y xY w)Nrv   r¬  r   )r  r  r   r  r¾   rY   r   zreferences row group 2r   )r‘  rh   rK   rÐ   r  r¼  r½  rä   r  rq   rú   r  r	  r=   rÇ   r@   rg  r±   r  r  r{  )r·  rõ   r¾  r   rS   rT   rN  r  r§  r¨  r9  s              r   Ú-test_fragments_parquet_row_groups_reconstructr   ñ  sô  € ô 3°7ÀqÔI�N€Eˆ7ä�G×)Ñ)Ó+Ó,¨QÑ/€HØ—_‘_€NÜ˜x×:Ñ:Ó<Ó=Ðð %×*Ñ*¨=×+>Ñ+>¸xÓ+HÓIÐØ×"Ñ"ØóØ+×4Ñ4°XÓ>ò?ð ?ð ?ð "×/Ñ/Ø�‰�x×*Ñ*Ø%×:Ñ:Ø�3ð 0ó €Lð ×$Ñ$ \Ó2€FØ�=‰=˜×0Ñ0Ð1DÀQÑ1GÓHÔIÐIÐIð "×/Ñ/Ø�‰�x×*Ñ*Ø%×:Ñ:Ø�3ð 0ó €Lð ×$Ñ$Ø˜UŸ\™\°D¸&°>Ü�x‰x˜‹~ Ñ!ð %ó %€Fð ×Ñ 4¨ .Ò0Ð0Ð0Üˆv‹;˜!ÒÐÐð "×/Ñ/Ø�‰�x×*Ñ*Ø%×:Ñ:Ø�3ð 0ó €Lô 
�‰”zÐ)AÖ	BØ×Ñ Ô-÷ 
C×	BÑ	Bús   ÇG9Ç9Hc                 ó”  — |\  }}t        | d|¬«      \  }}t        |j                  «       «      d   }|j                  ddg¬«      } |g «      5  |j                  dk(  sJ ‚|j
                  ddgk(  sJ ‚|j
                  d   j                  €J ‚	 d d d «       |j                  |«      }	|	j                  «       ddgddgdœk(  sJ ‚|j                  g ¬«      }|j                  dk(  sJ ‚|j
                  g k(  sJ ‚|j                  ||j                  ¬«      }	|	j                  dk(  sJ ‚|	j                  |d d «      sJ ‚y # 1 sw Y   Œ¯xY w)	Nr   rÄ  r   rY   ©Úrow_group_idsrv   r°  rb   )r‘  rh   rK   Úsubsetr  r  r±  rä   r2  r=   rí   r	  ©
r·  r¢   rõ   rc   rš   r   rS   rT   Úsubfragr9  s
             r   Ú!test_fragments_parquet_subset_idsr    sd  € ð 'Ñ€BˆÜ2°7ÀqØ>@ôB�N€Eˆ7ä�G×)Ñ)Ó+Ó,¨QÑ/€Hð �o‰o¨Q°¨FˆoÓ3€GÙ	�bÕ	Ø×%Ñ%¨Ò*Ð*Ð*Ø×!Ñ! a¨ VÒ+Ð+Ð+Ø×!Ñ! !Ñ$×/Ñ/Ð;Ð;Ñ;÷ 
ð ×$Ñ$ WÓ-€FØ×ÑÓ¨¨A¨°q¸!°fÑ!=Ò=Ð=Ð=ð �o‰o¨BˆoÓ/€GØ×!Ñ! QÒ&Ð&Ð&Ø×Ñ Ò#Ð#Ð#Ø×$Ñ$ W°W·^±^Ð$ÓD€FØ�?‰?˜aÒÐÐØ�=‰=˜˜r ˜Ô#Ð#Ñ#÷ 
Ð	ús   ÁA D>Ä>Ec                 ó|  — |\  }}t        | d|¬«      \  }}t        |j                  «       «      d   }|j                  t	        j
                  d«      dk\  «      } |g «      5  |j                  dk(  sJ ‚t        |j                  «      dk(  sJ ‚|j                  d   j                  €J ‚	 d d d «       |j                  |«      }	|	j                  «       g d¢g d¢dœk(  sJ ‚|j                  t	        j
                  d«      d	kD  «      }|j                  dk(  sJ ‚|j                  g k(  sJ ‚|j                  ||j                  ¬
«      }	|	j                  dk(  sJ ‚|	j                  |d d «      sJ ‚|j                  t	        j
                  d«      dk(  |j                  ¬
«      }|j                  dk(  sJ ‚y # 1 sw Y   �Œ	xY w)Nr   rÄ  r   r  rY   rÏ  )r   r   r   r°  r   rb   r¾   r[   r{   )r‘  rh   rK   r  rÇ   r@   r  r±   r  r±  rä   r2  r=   rí   r	  r  s
             r   Ú$test_fragments_parquet_subset_filterr	  7  s©  € ð 'Ñ€BˆÜ2°7ÀqØ>@ôB�N€Eˆ7ä�G×)Ñ)Ó+Ó,¨QÑ/€Hð �o‰oœbŸh™h t›n°Ñ1Ó2€GÙ	�bÕ	Ø×%Ñ%¨Ò*Ð*Ð*Ü�7×%Ñ%Ó&¨!Ò+Ð+Ð+Ø×!Ñ! !Ñ$×/Ñ/Ð;Ð;Ñ;÷ 
ð ×$Ñ$ WÓ-€FØ×ÑÓª	ºÑ!CÒCÐCÐCð �o‰oœbŸh™h t›n¨qÑ0Ó1€GØ×!Ñ! QÒ&Ð&Ð&Ø×Ñ Ò#Ð#Ð#Ø×$Ñ$ W°W·^±^Ð$ÓD€FØ�?‰?˜aÒÐÐØ�=‰=˜˜r ˜Ô#Ð#Ð#ð �o‰oœbŸh™h vÓ.°#Ñ5¸g¿n¹nˆoÓM€GØ×!Ñ! QÒ&Ð&Ñ&÷' 
Ñ	ús   Á"AF1Æ1F;c                 óŠ  — t        | d¬«      \  }}t        |j                  «       «      d   }t        j                  t
        «      5  |j                  t        j                  d«      dk\  ddg¬«       d d d «       t        j                  t
        «      5  |j                  «        d d d «       y # 1 sw Y   Œ<xY w# 1 sw Y   y xY w)Nr   r¬  r   r  rv   r  )	r‘  rh   rK   r  r  rN  r  rÇ   r@   )r·  rt  rS   rT   s       r   Ú%test_fragments_parquet_subset_invalidr  W  s�   € ä.¨wÀ1ÔE�J€A€wÜ�G×)Ñ)Ó+Ó,¨QÑ/€Hô 
�‰”zÕ	"Ø�‰œŸ™ ›¨!Ñ+¸A¸q¸6ˆÔB÷ 
#ô 
�‰”zÕ	"Ø�‰Ô÷ 
#Ð	"÷ 
#Ð	"ú÷ 
#Ð	"ús   Á,B-ÂB9Â-B6Â9Cc                 óT  — t        j                  g d¢«      }t        j                  g d¢«      }t        j                  g d¢«      }t         j                  j                  ||gddg¬«      }t         j                  j                  ||gddg¬«      }t        j                  d	|i«      }t        j                  || d
z  d¬«       t        j                  | d
z  d¬«      }t        |j                  «       «      d   }|j                  dk(  sJ ‚|j                  t        j                  d	d«      dkD  «      }	|	j                  dk(  sJ ‚|j                  t        j                  d	d«      dkD  «      }	|	j                  dk(  sJ ‚|j                  t        j                  d	dd«      dkD  «      }	|	j                  dk(  sJ ‚|j                  t        j                  d	dd«      dk  «      }	|	j                  dk(  sJ ‚t        j                  t         j                   d¬«      5  |j                  t        j                  d	d«      dkD  «       d d d «       t        j                  t"        d¬«      5  |j                  t        j                  d	d«      dkD  «       d d d «       y # 1 sw Y   ŒVxY w# 1 sw Y   y xY w)N)r   r   rv   rY   )çš™™™™™¹?çš™™™™™É?ç333333Ó?çš™™™™™Ù?©r   rv   rY   r{   Úf21Úf22r¦  r  r¥  rš  zdata_struct.parquetrv   rµ  r§   r  r   r   r   zNo match for FieldRef.Nestedr   Úf3z)Function 'greater' has no kernel matching)r?   r~   ÚStructArrayr�   r   rl   rm   rÇ   rS   rh   rK   r  r  r@   r  r  ra  ÚNotImplementedError)
r·  r  r  r  r¥  Ú
struct_colr   rS   rT   r  s
             r   Ú0test_fragments_parquet_subset_with_nested_fieldsr  d  s0  € ô 
�‰’,Ó	€BÜ
�(‰(Ò'Ó
(€CÜ
�(‰(’<Ó
 €CÜ	�‰×	#Ñ	# S¨# J°u¸e°nÐ	#Ó	E€BÜ—‘×+Ñ+¨R°¨H¸TÀ4¸LÐ+ÓI€JÜ�H‰H�e˜ZÐ(Ó)€EÜ‡N�N�5˜'Ð$9Ñ9È!ÕLä�j‰j˜Ð#8Ñ8ÀÔK€GÜ�G×)Ñ)Ó+Ó,¨QÑ/€HØ×"Ñ" aÒ'Ð'Ð'à�o‰oœbŸh™h u¨dÓ3°aÑ7Ó8€GØ×!Ñ! QÒ&Ð&Ð&Ø�o‰oœbŸh™h u¨dÓ3°aÑ7Ó8€GØ×!Ñ! QÒ&Ð&Ð&à�o‰oœbŸh™h u¨d°EÓ:¸QÑ>Ó?€GØ×!Ñ! QÒ&Ð&Ð&Ø�o‰oœbŸh™h u¨d°EÓ:¸aÑ?Ó@€GØ×!Ñ! QÒ&Ð&Ð&ô 
�‰”r—‘Ð.LÖ	MØ�‰œŸ™ ¨Ó-°Ñ1Ô2÷ 
Nô 
�‰ÜÐ#Nö
ð 	�‰œŸ™ ¨Ó-°Ñ1Ô2÷
ð 
÷	 
NÐ	Mú÷
ð 
ús   È)JÉ )JÊJÊJ'c                 ó‚  — t        |j                  «       «      d   }t        |«      dk(  st        |«      dk(  sJ ‚t        | «      \  }}t	        j
                  |d¬«      }t        |j                  «       «      d   }t        |«      d|j                  j                  t        |«      «      › d�k(  sJ ‚| dz  }t        j                  j                  ||«       t	        j
                  |d	¬«      }t        |j                  «       «      d   }t        |«      d
|j                  j                  t        |«      «      › d�k(  sJ ‚y )Nr   zb<pyarrow.dataset.ParquetFileFragment path=subdir/1/xxx/file0.parquet partition=[key=xxx, group=1]>zb<pyarrow.dataset.ParquetFileFragment path=subdir/1/xxx/file0.parquet partition=[group=1, key=xxx]>r§   r  z*<pyarrow.dataset.ParquetFileFragment path=Ú>údata.featherÚfeatherz,<pyarrow.dataset.FileFragment type=ipc path=)rh   rK   ÚreprÚ_create_single_filerÇ   rS   rú   r�   r_   r?   r  Úwrite_feather)r·  rS   rT   r   rq   s        r   Útest_fragments_reprr   ˆ  sB  € ô �G×)Ñ)Ó+Ó,¨QÑ/€Hô 	ˆX‹ð	(ò	(ô 	ˆX‹ð	(ò	(ðð	(ô & gÓ.�K€Eˆ4Ü�j‰j˜ iÔ0€GÜ�G×)Ñ)Ó+Ó,¨QÑ/€HäˆX‹Ø4Ø×Ñ×,Ñ,¬S°«YÓ7Ð
8¸ð	;ò	;ðð	;ð �^Ñ#€DÜ‡J�J×Ñ˜U DÔ)Ü�j‰j˜ iÔ0€GÜ�G×)Ñ)Ó+Ó,¨QÑ/€HäˆX‹Ø6Ø×Ñ×,Ñ,¬S°«YÓ7Ð
8¸ð	;ò	;ðñ	;r   ry  c                 ó   — | S r   r   ©r  Úms     r   Ú<lambda>r$  ¯  ó   € ™Qr   c                 óB   — |j                  |j                  | «      «      S r   ©r¼  r½  r"  s     r   r$  r$  ¯  ó   € ¨Q¯W©W°Q·W±W¸Q³ZÔ-@r   c                 ó¨  — t        j                  dd¬«      }t        j                  «       }t        j                  d«      }t        j
                  j                  ddg«      } |||«      }t        |t        j                  «      sJ ‚||_	        t        j                  | |||«      }|j                  «       }t        j                  dt        j                  «       fdt        j                  «       fdt        j                   «       fd	t        j                  «       fd
t        j"                  t        j                  «       t        j                   «       dœ«      fdt        j$                  «       fdt        j                   «       fg«      }	|j'                  |	«      sJ ‚t        j(                  j                  «       }
t        |
t        j                  «      sJ ‚y )NrÂ   TrÃ   rÅ   rÆ   r]   r^   r_   r`   ra   rZ   )rc   rÉ   rÇ   rÈ   rÊ   rË   ÚdiscoverrM   ÚPartitioningFactoryÚpartitioning_factoryrÎ   rC  r?   r=   rB   rC   rD   ra   rÌ   r	  rª  )rn   ry  r¾  r8  rÐ   rÒ   r,  rÓ   rB  rF  Úhive_partitioning_factorys              r   Útest_partitioning_factoryr.  ­  sp  € ô Ÿ™¨¸DÔAÐÜ×!Ñ!Ó#€Fä×)Ñ)¨(Ó3€GÜ×3Ñ3×<Ñ<¸gÀuÐ=MÓNÐÙ"Ð#7¸ÓGÐÜÐ*¬B×,BÑ,BÔCÐCÐCØ#7€GÔ ä×)Ñ)ØÐ! 6¨7ó€Gð —‘Ó(Ðä—i‘iØ	”—‘“
ÐØ	”—
‘
“ÐØ	”—	‘	“ÐØ	”"—(‘(“*ÐØ	”2—9‘9¤2§8¡8£:´B·I±I³KÑ@ÓAÐBØ	”"—(‘(“*ÐØ	”—	‘	“Ðð!ó €Oð ×"Ñ" ?Ô3Ð3Ð3ä "× 3Ñ 3× <Ñ <Ó >ÐÜÐ/´×1GÑ1GÔHÐHÑHr   Úinfer_dictionaryc                 ó   — | S r   r   r"  s     r   r$  r$  Ñ  r%  r   c                 óB   — |j                  |j                  | «      «      S r   r'  r"  s     r   r$  r$  Ñ  r(  r   c                 óf  — t        j                  dd¬«      }t        j                  «       }t        j                  d«      }t        j
                  j                  ddg|¬«      } |||«      |_        t        j                  | |||«      }|j                  «       }	|�rct        j                  t        j                  «       t        j                  «       «      }
|	j                  d«      j                  |
k(  sJ ‚|j!                  «       j#                  «       j%                  «       }|j'                  d«      j)                  d«      }t        j*                  dgd	z  d
gd	z  z   «      j-                  «       }|j/                  |«      sJ ‚|j!                  «       j#                  t        j                  d«      dk(  ¬«      }|j'                  d«      j)                  d«      }|j1                  dd	«      }|j/                  |«      sJ ‚y |	j                  d«      j                  t        j                  «       k(  sJ ‚y )NrÂ   TrÃ   rÅ   rÆ   ©r/  r   r"  r   r#  rý   )rc   rÉ   rÇ   rÈ   rÊ   rË   r*  r,  rÎ   rC  r?   rz   rÌ   rD   r@   rx   rÏ   rä   Úcombine_chunksr-  r½   r~   r  r	  r•  )rn   r/  ry  r¾  r8  rÐ   rÒ   r,  rÓ   Úinferred_schemaÚexpected_typer   r£  r|  s                 r   Ú$test_partitioning_factory_dictionaryr7  Î  sÊ  € ô Ÿ™¨¸DÔAÐÜ×!Ñ!Ó#€FÜ×)Ñ)¨(Ó3€Gä×3Ñ3×<Ñ<Ø	�%ÐÐ+;ð =ó =Ðá#*Ð+?ÀÓ#O€GÔ ä×)Ñ)ØÐ! 6¨7ó4€Gð —o‘oÓ'€OÚÜŸ™¤b§h¡h£j´"·)±)³+Ó>ˆØ×$Ñ$ UÓ+×0Ñ0°MÒAÐAÐAà—‘Ó ×)Ñ)Ó+×:Ñ:Ó<ˆØ—‘˜eÓ$×*Ñ*¨1Ó-ˆÜ—8‘8˜U˜G a™K¨5¨'°A©+Ñ5Ó6×HÑHÓJˆØ�}‰}˜XÔ&Ð&Ð&ð —‘Ó ×)Ñ)´·±¸%³ÀEÑ1IÐ)ÓJˆØ—‘˜eÓ$×*Ñ*¨1Ó-ˆØ—>‘> ! QÓ'ˆØ�}‰}˜XÔ&Ð&Ñ&à×$Ñ$ UÓ+×0Ñ0´B·I±I³KÒ?Ð?Ñ?r   c                 ó   — | S r   r   r"  s     r   r$  r$  ó  r%  r   c                 óB   — |j                  |j                  | «      «      S r   r'  r"  s     r   r$  r$  ó  r(  r   c                 ór  — t        j                  «       }t        j                  «       }t	        j
                  dt	        j                  «       fg«      }t	        j                  t	        j                  t        d«      «      g|¬«      }t	        j
                  dt	        j                  d«      fdt	        j                  «       fg«      }t	        j
                  dt	        j                  «       fdt	        j                  «       fg«      }t	        j
                  t        |«      t        |«      z   «      }dD ]z  }	|j                  |	«       |j                  |	dz   «      5 }
t        j                  j!                  |
|«      5 }|j#                  |«       |j%                  «        d d d «       d d d «       Œ| t        j&                  d	d
¬«      }t        j(                  d	«      }t        j*                  j-                  |¬«      } | ||«      |_        t        j0                  ||||«      }|j3                  «       }||k(  sJ ‚|j5                  «       j7                  dt        j8                  d«      j;                  t	        j                  «       «      i¬«      }|d   d   j=                  «       dk(  sJ ‚t        j*                  j-                  ddgd¬«      } | ||«      |_        t        j0                  ||||«      }t        |j5                  «       j?                  «       «      }|d   j@                  jC                  t        j8                  d«      dk(  t        j8                  d«      dk(  z  «      sJ ‚t        j*                  |d¬«      } | ||«      |_"        t        j0                  ||||«      }t        |j5                  «       j?                  «       «      }|d   j@                  jC                  t        j8                  d«      dk(  t        j8                  d«      dk(  z  «      sJ ‚t        j*                  j-                  |d¬«      } | ||«      |_        t        j0                  ||||«      }tG        jH                  t        jJ                  d¬«      5  |j3                  «       }d d d «       t        j&                  dd
¬«      }t        j(                  d«      }t        jL                  j-                  |¬«      } | ||«      |_        t        j0                  ||||«      }|j3                  «       }||k(  sJ ‚|j5                  «       j7                  dt        j8                  d«      j;                  t	        j                  «       «      i¬«      }|d   d   j=                  «       dk(  sJ ‚t        jL                  j-                  d¬«      } | ||«      |_        t        j0                  ||||«      }t        |j5                  «       j?                  «       «      }|d   j@                  jC                  t        j8                  d«      dk(  t        j8                  d«      dk(  z  «      sJ ‚t        jL                  |d¬«      |_"        t        j0                  ||||«      }t        |j5                  «       j?                  «       «      }|d   j@                  jC                  t        j8                  d«      dk(  t        j8                  d«      dk(  z  «      sJ ‚t        jL                  j-                  |d¬«      } | ||«      |_        t        j0                  ||||«      }tG        jH                  t        jJ                  d¬«      5  |j3                  «       }d d d «       y # 1 sw Y   �ŒëxY w# 1 sw Y   �ŒkxY w# 1 sw Y   �Œ
xY w# 1 sw Y   y xY w)Nr]   rª   rb   r%   rõ  rD   )z%directory/2021-05-04 00%3A00%3A00/%24z,hive/date=2021-05-04 00%3A00%3A00/string=%24ú
/0.featherrp   TrÃ   Údate_intr)   r   é€Ž�`r�  rŽ  ú2021-05-04 00%3A00%3A00ú%24©r=   r�  ú+Could not cast segments for partition fieldr   r¬   )'rc   rd   rÇ   r  r?   r=   rB   r   r~   r/   rá  rD   rh   rf   rg   r¨  Únew_filerm   ÚcloserÉ   rÊ   rË   r*  r,  rÎ   rC  rÏ   rä   r@   rÓ  Úas_pyrK   r  r	  rÍ   r  r  ra  rª  )ry  r¾  rn   rÐ   r=   r   Úpartition_schemaÚstring_partition_schemaÚfull_schemarp   ÚsinkÚwriterrÑ   rÒ   r,  rÓ   r5  r£  r  rÍ   s                       r   Ú*test_partitioning_factory_segment_encodingrJ  ò  s¦  € ô ×ÑÓ!€FÜ×ÑÓ€FÜ�Y‰Y˜¤§¡£
Ð+Ð,Ó-€FÜ�H‰H”b—h‘hœu R›yÓ)Ð*°6Ô:€EÜ—y‘yØ
”"—,‘,˜sÓ#Ð	$ x´·±³Ð&=Ð>ó@Ðä Ÿi™iØ
”"—)‘)“+Ð	 ¬2¯9©9«;Ð 7Ð8ó:Ðä—)‘)œD ›L¬4Ð0@Ó+AÑAÓB€Kóˆ	ð 	×Ñ˜)Ô$Ø×&Ñ& y°<Ñ'?Ô@ÀDÜ—‘—‘  vÔ.°&Ø×"Ñ" 5Ô)Ø—‘”÷ /÷ AÐ@ðô �‰˜{°dÔ;€HÜ×)Ñ)¨+Ó6€GÜ×3Ñ3×<Ñ<Øð =ó !Ðá#*Ð+?ÀÓ#O€GÔ Ü×)Ñ)¨&°(¸FÀGÓL€GØ—o‘oÓ'€OØ˜kÒ)Ð)Ð)Ø�^‰^Ó×&Ñ&Ø”B—H‘H˜VÓ$×)Ñ)¬"¯(©(«*Ó5ð0Ð&ó €Fð �!‰9�Q‰<×ÑÓ :Ò-Ð-Ð-ä×3Ñ3×<Ñ<Ø	�Ð¨Vð =ó 5Ðá#*Ð+?ÀÓ#O€GÔ Ü×)Ñ)¨&°(¸FÀGÓL€GÜ�W—^‘^Ó%×3Ñ3Ó5Ó6€IØ�Q‰<×,Ñ,×3Ñ3Ü	�‰�&Ó	Ð6Ñ	6Ü	�‰�(Ó	˜uÑ	$ñ	&ô'ð 'ð 'ô ×+Ñ+Ø°&ô:€Lá" <°Ó?€GÔÜ×)Ñ)¨&°(¸FÀGÓL€GÜ�W—^‘^Ó%×3Ñ3Ó5Ó6€IØ�Q‰<×,Ñ,×3Ñ3Ü	�‰�&Ó	Ð6Ñ	6Ü	�‰�(Ó	˜uÑ	$ñ	&ô'ð 'ð 'ô ×3Ñ3×<Ñ<Ø°&ð =ó :Ðá#*Ð+?ÀÓ#O€GÔ Ü×)Ñ)¨&°(¸FÀGÓL€GÜ	�‰”r—‘ØJö
Là!Ÿ/™/Ó+ˆ÷
Lô
 �‰˜v°Ô6€HÜ×)Ñ)¨&Ó1€GÜ×.Ñ.×7Ñ7Øð 8ó !Ðá#*Ð+?ÀÓ#O€GÔ Ü×)Ñ)¨&°(¸FÀGÓL€GØ—o‘oÓ'€OØ˜kÒ)Ð)Ð)Ø�^‰^Ó×&Ñ&Ø”B—H‘H˜VÓ$×)Ñ)¬"¯(©(«*Ó5ð0Ð&ó €Fð �!‰9�Q‰<×ÑÓ :Ò-Ð-Ð-ä×.Ñ.×7Ñ7Øð 8ó !Ðá#*Ð+?ÀÓ#O€GÔ Ü×)Ñ)¨&°(¸FÀGÓL€GÜ�W—^‘^Ó%×3Ñ3Ó5Ó6€IØ�Q‰<×,Ñ,×3Ñ3Ü	�‰�&Ó	Ð6Ñ	6Ü	�‰�(Ó	˜uÑ	$ñ	&ô'ð 'ð 'ô ×.Ñ.Ø°&ô:€GÔä×)Ñ)¨&°(¸FÀGÓL€GÜ�W—^‘^Ó%×3Ñ3Ó5Ó6€IØ�Q‰<×,Ñ,×3Ñ3Ü	�‰�&Ó	Ð6Ñ	6Ü	�‰�(Ó	˜uÑ	$ñ	&ô'ð 'ð 'ô ×.Ñ.×7Ñ7Ø°&ð 8ó :Ðá#*Ð+?ÀÓ#O€GÔ Ü×)Ñ)¨&°(¸FÀGÓL€GÜ	�‰”r—‘ØJö
Là!Ÿ/™/Ó+ˆ÷
Lð 
L÷_ /Ñ.ú÷ AÑ@ú÷R
Lñ 
Lú÷N
Lð 
Lús<   Å!^Å;"^Æ^Ò^ Ý,^-Þ^Þ^Þ^	Þ ^*Þ-^6c                 ó   — | S r   r   r"  s     r   r$  r$  Y  r%  r   c                 óB   — |j                  |j                  | «      «      S r   r'  r"  s     r   r$  r$  Y  r(  r   c                 óZ  — t        j                  «       }t        j                  «       }t	        j
                  dt	        j                  «       fg«      }t	        j                  t	        j                  t        d«      «      g|¬«      }t	        j
                  dt	        j                  d«      fdt	        j                  «       fg«      }t	        j
                  dt	        j                  «       fdt	        j                  «       fg«      }t	        j
                  t        |«      t        |«      z   «      }t	        j
                  dt	        j                  d«      fdt	        j                  «       fg«      }	t	        j
                  dt	        j                  «       fdt	        j                  «       fg«      }
d	}|j                  |«       |j                  |d
z   «      5 }t        j                  j!                  ||«      5 }|j#                  |«       |j%                  «        d d d «       d d d «       t        j&                  dd¬«      }t        j(                  d«      }t        j*                  j-                  |¬«      } | ||«      |_        t        j0                  ||||«      }|j3                  «       }||k(  sJ ‚|j5                  «       j7                  dt        j8                  d«      j;                  t	        j                  «       «      i¬«      }|d   d   j=                  «       dk(  sJ ‚t        j*                  j-                  d¬«      } | ||«      |_        t        j0                  ||||«      }t        |j5                  «       j?                  «       «      }|d   j@                  jC                  t        j8                  d«      dk(  t        j8                  d«      dk(  z  «      sJ ‚t        j*                  |d¬«      } | ||«      |_"        t        j0                  ||||«      }t        |j5                  «       j?                  «       «      }|d   j@                  jC                  t        j8                  d«      dk(  t        j8                  d«      dk(  z  «      sJ ‚t        j*                  j-                  d¬«      } | ||«      |_        t        j0                  ||||«      }t        |j5                  «       j?                  «       «      }|d   j@                  jC                  t        j8                  d«      dk(  t        j8                  d«      dk(  z  «      sJ ‚t        j*                  |
d¬«      } | ||«      |_"        t        j0                  ||||«      }t        |j5                  «       j?                  «       «      }|d   j@                  jC                  t        j8                  d«      dk(  t        j8                  d«      dk(  z  «      sJ ‚t        j*                  j-                  |	d¬«      } | ||«      |_        t        j0                  ||||«      }tG        jH                  t        jJ                  d¬«      5  |j3                  «       }d d d «       y # 1 sw Y   �ŒpxY w# 1 sw Y   �ŒuxY w# 1 sw Y   y xY w)Nr]   rª   rb   ztest'; daterõ  ztest';[ string'ztest%27%3B%20dateztest%27%3B%5B%20string%27zLhive/test%27%3B%20date=2021-05-04 00%3A00%3A00/test%27%3B%5B%20string%27=%24r;  r¬   TrÃ   r<  r)   r   r=  rX  rŽ  z2021-05-04 00:00:00Ú$r�  r>  r?  r@  rA  r   )&rc   rd   rÇ   r  r?   r=   rB   r   r~   r/   rá  rD   rh   rf   rg   r¨  rB  rm   rC  rÉ   rÊ   rª  r*  r,  rÎ   rC  rÏ   rä   r@   rÓ  rD  rK   r  r	  rÍ   r  r  ra  )ry  r¾  rn   rÐ   r=   r   rE  rF  rG  Úpartition_schema_enÚstring_partition_schema_enrp   rH  rI  rÑ   rÒ   r,  rÓ   r5  r£  r  rÍ   s                         r   Ú;test_partitioning_factory_hive_segment_encoding_key_encodedrQ  X  s°  € ô ×ÑÓ!€FÜ×ÑÓ€FÜ�Y‰Y˜¤§¡£
Ð+Ð,Ó-€FÜ�H‰H”b—h‘hœu R›yÓ)Ð*°6Ô:€EÜ—y‘yØ
œŸ™ cÓ*Ð	+Ð.?ÄÇÁÃÐ-MÐNóPÐä Ÿi™iØ
œŸ™›Ð	%Ð(9¼2¿9¹9»;Ð'GÐHóJÐä—)‘)œD ›L¬4Ð0@Ó+AÑAÓB€KäŸ)™)Ø
œrŸ|™|¨CÓ0Ð	1Ø
%¤r§y¡y£{Ð	3ð	5ó6Ðô "$§¡Ø
œrŸy™y›{Ð	+Ø
%¤r§y¡y£{Ð	3ð	5ó"6Ðð1€Ià
×Ñ�iÔ Ø	×	"Ñ	" 9¨|Ñ#;Ô	<ÀÜ�V‰V�_‰_˜T 6Ô*¨fØ×Ñ˜uÔ%Ø�L‰LŒN÷ +÷ 
=ô �‰˜v°Ô6€HÜ×)Ñ)¨&Ó1€GÜ×.Ñ.×7Ñ7Øð 8ó !Ðá#*Ð+?ÀÓ#O€GÔ Ü×)Ñ)¨&°(¸FÀGÓL€GØ—o‘oÓ'€OØ˜kÒ)Ð)Ð)Ø�^‰^Ó×&Ñ&Ø”B—H‘H˜]Ó+×0Ñ0´·±³Ó<ð0Ð&ó €Fð �!‰9�Q‰<×ÑÓ :Ò-Ð-Ð-ä×.Ñ.×7Ñ7Øð 8ó  Ðá#*Ð+?ÀÓ#O€GÔ Ü×)Ñ)¨&°(¸FÀGÓL€GÜ�W—^‘^Ó%×3Ñ3Ó5Ó6€IØ�Q‰<×,Ñ,×3Ñ3Ü	�‰�-Ó	 Ð$9Ñ	9Ü	�‰Ð#Ó	$¨Ñ	+ñ	-ô.ð .ð .ô ×&Ñ&Ø°%ô9€Lá" <°Ó?€GÔÜ×)Ñ)¨&°(¸FÀGÓL€GÜ�W—^‘^Ó%×3Ñ3Ó5Ó6€IØ�Q‰<×,Ñ,×3Ñ3Ü	�‰�-Ó	 Ð$9Ñ	9Ü	�‰Ð#Ó	$¨Ñ	+ñ	-ô.ð .ð .ô ×.Ñ.×7Ñ7Øð 8ó !Ðá#*Ð+?ÀÓ#O€GÔ Ü×)Ñ)¨&°(¸FÀGÓL€GÜ�W—^‘^Ó%×3Ñ3Ó5Ó6€IØ�Q‰<×,Ñ,×3Ñ3Ü	�‰Ð%Ó	&Ð*CÑ	CÜ	�‰Ð-Ó	.°%Ñ	7ñ	9ô:ð :ð :ô ×&Ñ&Ø"°Vô=€Lá" <°Ó?€GÔÜ×)Ñ)¨&°(¸FÀGÓL€GÜ�W—^‘^Ó%×3Ñ3Ó5Ó6€IØ�Q‰<×,Ñ,×3Ñ3Ü	�‰Ð%Ó	&Ð*CÑ	CÜ	�‰Ð-Ó	.°%Ñ	7ñ	9ô:ð :ð :ô ×.Ñ.×7Ñ7Ø"°Vð 8ó =Ðá#*Ð+?ÀÓ#O€GÔ Ü×)Ñ)¨&°(¸FÀGÓL€GÜ	�‰”r—‘ØJö
Là!Ÿ/™/Ó+ˆ÷
Lð 
L÷u +Ñ*ú÷ 
=Ñ	<ú÷v
Lð 
Lús0   Ç!ZÇ7"ZÈZÙ-Z!ÚZ	ÚZÚZÚ!Z*c           
      óÊ  — t        j                  g d¢g d¢dœ«      }t        j                  t        j                  t        j
                  dt        j                  «       «      t        j
                  dt        j                  «       «      g«      «      }t        j                  t         j                  «      5  t        j                  || d|¬«       d d d «       y # 1 sw Y   y xY w)N©r  ÚyN©r  rT  rÐ  rZ   r[   r\   r¨  r©  )r?   r   rÇ   rÍ   r=   r@   rD   r  r  ra  r²  ©r·  r   r¾   s      r   Ú/test_dictionary_partitioning_outer_nulls_raisesrW  ¯  sˆ   € Ü�H‰HÒ+²/ÑBÓC€EÜ�?‰?Ü
�	‰	”2—8‘8˜C¤§¡£Ó-¬r¯x©x¸¼R¿Y¹Y»[Ó/IÐJÓKóM€Dä	�‰”r—‘Õ	'Ü
×Ñ˜ °ÀDÕI÷ 
(×	'Ñ	'ús   Â6CÃC"c                 óÆ   — t        j                  g d¢g d¢dœ«      }t        j                  t        «      5  t        j                  || d«       d d d «       y # 1 sw Y   y xY w)NrS  rU  rZ   zbasename-{i}.arrow)r?   r   r  r  r  rÇ   r²  )r·  r   s     r   Útest_positional_keywords_raisesrY  ·  sA   € Ü�H‰HÒ+²/ÑBÓC€EÜ	�‰”yÕ	!Ü
×Ñ˜ Ð)=Ô>÷ 
"×	!Ñ	!ús   ¶AÁA c                 ó0  — d}t        j                  t        j                  d|dz   «      t        j                  |dz   «      dœ«      }t        j                  |d | | dz  dg¬«       t        j                  |d |dz    | dz  dg¬«       t        j                  | dz  dg¬	«      }|d   j                  dk(  sJ ‚t        j                  | dz  dd
g¬	«      }|d   j                  dk(  sJ ‚t        j                  | dz  dg¬	«      }|d   j                  dk(  sJ ‚y )Ni €  r   r   )rÆ   r'   rL  rÆ   r›  Útwor)   r'   rv   )	r?   r   ÚrepeatÚnpÚarangerl   r�  Ú
read_tableÚ
num_chunks)r·  Ú
BATCH_SIZEr   s      r   Útest_read_partition_keys_onlyrb  ½  s  € ð €Jô �H‰HÜ�y‰y˜˜J¨™NÓ+Ü—‘˜:¨™>Ó*ñ,ó -€Eô ×ÑØˆkˆzÐØ�%‰¨¨õ1ô ×ÑØˆoˆz˜A‰~ÐØ�%‰¨¨õ1ô �M‰M˜' E™/°E°7Ô;€EØ�‰<×"Ñ" aÒ'Ð'Ð'ä�M‰M˜' E™/°E¸7Ð3CÔD€EØ�‰<×"Ñ" aÒ'Ð'Ð'ä�M‰M˜' E™/°E°7Ô;€EØ�‰<×"Ñ" aÒ'Ð'Ñ'r   c                 óÞ   — t        j                  | «      }t        |D �cg c]?  }t         j                  j	                  t         j                  j                  | |«      «      ‘ŒA c}«      S c c}w r   )ÚosÚlistdirÚanyrq   ÚisdirrÌ  )ÚbasedirÚelementsÚels      r   Ú_has_subdirsrk  Ø  sI   € Ü�z‰z˜'Ó"€HÜÁ8ÓLÁ8¸R”—‘—‘œbŸg™gŸl™l¨7°BÓ7Õ8À8ÑLÓMÐMùÒLs   ŸAA*c                 ó8  — t        j                  | «      D ]‚  }t         j                  j                  | |«      }t         j                  j	                  |«      sŒCt        j                  ||«      }t        |«      rt        |||«       Œr|j                  |«       Œ„ y r   )	rd  re  rq   rÌ  rg  Ú	posixpathrk  Ú_do_list_all_dirsr0   )rh  Úpath_so_farr9  rÙ  Útrue_nestedÚnorm_nesteds         r   rn  rn  Ý  si   € Ü�Z‰Z˜Ö ˆÜ—g‘g—l‘l 7¨AÓ.ˆÜ�7‰7�=‰=˜Õ%Ü#Ÿ.™.¨°aÓ8ˆKÜ˜KÔ(Ü! +¨{¸FÕCà—‘˜kÕ*ñ !r   c                 ó$   — g }t        | d|«       |S )NrÁ  )rn  )rh  r9  s     r   Ú_list_all_dirsrs  è  s   € Ø€FÜ�g˜r 6Ô*Ø€Mr   c                 óL   — t        t        | «      «      }|t        |«      k(  sJ ‚y r   )r�   rs  )r·  Úexpected_directoriesÚactual_directoriess      r   Ú_check_dataset_directoriesrw  î  s&   € Üœ^¨GÓ4Ó5ÐØ¤Ð%9Ó!:Ò:Ð:Ñ:r   c           
      óv  — t        j                  g d¢g d¢dœ«      }t        j                  t        j                  t        j
                  dt        j                  «       «      t        j
                  dt        j                  «       «      g«      «      }t        j                  || d|¬«       t        | g d¢«       y )	NrU  rS  rZ   r[   r\   r¨  r©  )zx/xzy/yrÐ  )	r?   r   rÇ   rÍ   r=   r@   rD   r²  rw  rV  s      r   Ú(test_dictionary_partitioning_inner_nullsry  ó  sw   € Ü�H‰Hš?Ò1AÑBÓC€EÜ�?‰?Ü
�	‰	”2—8‘8˜C¤§¡£Ó-¬r¯x©x¸¼R¿Y¹Y»[Ó/IÐJÓKóM€Dä×Ñ�U˜G¨EÀÕEÜ˜wÒ(;Õ<r   c           
      óz  — t        j                  g d¢g d¢dœ«      }t        j                  t        j                  t        j
                  dt        j                  «       «      t        j
                  dt        j                  «       «      g«      d d«      }t        j                  || d|¬«       t        | g d	¢«       y )
N)r  NrÐ  rS  rZ   r[   r\   r’  r¨  r©  )za=x/b=xz	a=xyz/b=yz	a=z/b=xyz)	r?   r   rÇ   rª  r=   r@   rD   r²  rw  rV  s      r   Útest_hive_partitioning_nullsr{  û  s‚   € Ü�H‰HÒ+Ò2BÑCÓD€EÜ×ÑœrŸy™yÜ	�‰�#”r—y‘y“{Ó	#¤R§X¡X¨c´2·9±9³;Ó%?Ð@ó BØCGÈóP€Dä×Ñ�U˜G¨EÀÕEÜ˜wÒ(MÕNr   c                  ó.  — t        j                  dt        j                  «       fdt        j                  «       fg«      } ddg}t	        j
                  | «      }t        |t        j                  «      sJ ‚t	        j
                  | d¬«      }t        |t        j                  «      sJ ‚t	        j
                  |¬«      }t        |t        j                  «      sJ ‚t        j                  t        «      5  t	        j
                  «        d d d «       t        j                  t        d¬«      5  t	        j
                  | ¬«       d d d «       t        j                  t        d¬«      5  t	        j
                  | | ¬«       d d d «       t	        j
                  | d	¬
«      }t        |t        j                  «      sJ ‚t	        j
                  | dd	¬«      }t        |t        j                  «      sJ ‚t	        j
                  d	¬
«      }t        |t        j                  «      sJ ‚t        j                  t        «      5  t	        j
                  |d	¬
«       d d d «       t        j                  t        d¬«      5  t	        j
                  |d	¬«       d d d «       t        j                  t        «      5  t	        j
                  | d¬
«       d d d «       y # 1 sw Y   �ŒÆxY w# 1 sw Y   �Œ™xY w# 1 sw Y   �ŒkxY w# 1 sw Y   Œ¥xY w# 1 sw Y   ŒvxY w# 1 sw Y   y xY w)Nr¶   r·   Úinferr›  )Úfield_nameszExpected listr   zCannot specify bothr¬   rœ  )rœ  rÃ  zCannot specify 'field_names')r~  rÃ  Úunsupported)r?   r=   rƒ   r   rÇ   rÍ   rM   rË   r+  r  r  rN  rª  )r=   r§  r¾   s      r   Útest_partitioning_functionr€  	  s  € Ü�Y‰Y˜¤§¡£Ð,¨w¼¿¹»	Ð.BÐCÓD€FØ�WÐ€Eô �?‰?˜6Ó"€DÜ�dœB×4Ñ4Ô5Ð5Ð5Ü�?‰?˜6°Ô8€DÜ�dœB×2Ñ2Ô3Ð3Ð3Ü�?‰? uÔ-€DÜ�dœB×2Ñ2Ô3Ð3Ð3ä	�‰”zÕ	"Ü
�‰Ô÷ 
#ä	�‰”z¨Ö	9Ü
�‰ FÕ+÷ 
:ä	�‰”zÐ)>Ö	?Ü
�‰˜¨FÕ3÷ 
@ô �?‰?˜6¨&Ô1€DÜ�dœB×/Ñ/Ô0Ð0Ð0Ü�?‰?˜6°ÀÔG€DÜ�dœB×2Ñ2Ô3Ð3Ð3Ü�?‰? &Ô)€DÜ�dœB×2Ñ2Ô3Ð3Ð3ä	�‰”zÕ	"Ü
�‰˜ fÕ-÷ 
#ä	�‰”zÐ)GÖ	HÜ
�‰ E°&Õ9÷ 
Iô 
�‰”zÕ	"Ü
�‰˜ }Õ5÷ 
#Ð	"÷+ 
#Ñ	"úç	9Ñ	9úç	?Ñ	?ú÷ 
#Ð	"úç	HÐ	Hú÷ 
#Ð	"úsH   Ã3KÄ+KÅ%K&È7K3É2K?Ê+LËKËK#Ë&K0Ë3K<Ë?LÌLc                 óÊ  — t        j                  t        j                  dt        j                  t        j                  «       t        j
                  «       «      «      t        j                  dt        j                  t        j                  «       t        j                  «       «      «      g«      }t        j                  j                  |¬«      }t        j                  dd| |¬«      }|j                  j                  |k(  sJ ‚|j                  «       }|j                  d«      j                  j                  |j                   d   «      sJ ‚|j                  d«      j#                  «       dgd	z  d
gd	z  z   k(  sJ ‚|j                  d«      j                  j                  |j                   d   «      sJ ‚|j                  d«      j#                  «       dgd	z  dgd	z  z   k(  sJ ‚y )NrÅ   rÆ   rb   rÂ   r§   ©rÐ   rú   rÍ   r   r   r   rv   r"  r#  )r?   r=   r@   rz   r   rÌ   rD   rÇ   rË   r*  rS   rÍ   rä   r-  rx   r	  Útypesrh  )rn   r=   r¾   rS   r   s        r   Ú*test_directory_partitioning_dictionary_keyr„  (	  su  € ô �Y‰YÜ
�‰�œ"Ÿ-™-¬¯©«	´2·8±8³:Ó>Ó?Ü
�‰�œŸ™¤b§g¡g£i´·±³Ó=Ó>ðó €Fô ×#Ñ#×,Ñ,°FÐ,Ó;€Dä�j‰jØ˜¨vÀDô€Gð ×Ñ×&Ñ&¨&Ò0Ð0Ð0Ø×ÑÓ€Eà�<‰<˜Ó ×%Ñ%×,Ñ,¨V¯\©\¸!©_Ô=Ð=Ð=Ø�<‰<˜Ó ×*Ñ*Ó,°°°a±¸1¸#À¹'Ñ0AÒAÐAÐAØ�<‰<˜Ó×#Ñ#×*Ñ*¨6¯<©<¸©?Ô;Ð;Ð;Ø�<‰<˜Ó×(Ñ(Ó*¨u¨g¸©k¸U¸GÀa¹KÑ.GÒGÐGÑGr   c                 ó¦  — t        j                  t        j                  dt        j                  t        j                  «       t        j
                  «       «      «      t        j                  dt        j                  t        j                  «       t        j
                  «       «      «      g«      }t        j                  j                  |¬«      }t        j                  dd| |¬«      }|j                  j                  |k(  sJ ‚|j                  «       }t        t        dd«      «      }t        t        d	d
«      «      }|j                  d«      j                  j!                  |j"                  d   «      sJ ‚|j                  d«      j$                  D ]3  }|j                  j'                  «       }|j)                  «        ||k(  rŒ3J ‚ |j                  d«      j                  j!                  |j"                  d	   «      sJ ‚|j                  d«      j$                  D ]3  }|j                  j'                  «       }|j)                  «        ||k(  rŒ3J ‚ y )Nr¶   r·   rb   r¬   r§   r‚  iÖ  iÛ  r   é   r   )r?   r=   r@   rz   r   rƒ   rÇ   rª  r*  rS   rÍ   rä   rh   r/   r-  rx   r	  rƒ  Úchunksrh  Úsort)	rÀ   r=   r¾   rS   r   Úyear_dictionaryÚmonth_dictionaryr½   r£  s	            r   Ú%test_hive_partitioning_dictionary_keyr‹  =	  s¾  € ä�Y‰YÜ
�‰�œŸ™¤r§w¡w£y´"·(±(³*Ó=Ó>Ü
�‰�œ"Ÿ-™-¬¯©«	´2·8±8³:Ó>Ó?ðó €Fô ×Ñ×'Ñ'¨vÐ'Ó6€Dä�j‰jØ�y¨]Èô€Gð ×Ñ×&Ñ&¨&Ò0Ð0Ð0Ø×ÑÓ€Eäœ5  tÓ,Ó-€OÜœE ! R›LÓ)ÐØ�<‰<˜Ó×$Ñ$×+Ñ+¨F¯L©L¸©OÔ<Ð<Ð<Ø—‘˜fÓ%×,Ô,ˆØ×!Ñ!×+Ñ+Ó-ˆØ�‰ŒØ˜Ó(Ð(Ð(ð -ð �<‰<˜Ó ×%Ñ%×,Ñ,¨V¯\©\¸!©_Ô=Ð=Ð=Ø—‘˜gÓ&×-Ô-ˆØ×!Ñ!×+Ñ+Ó-ˆØ�‰ŒØÐ)Ó)Ð)Ð)ñ .r   c                 ó    — |€,t        j                  t        d«      dgdz  dgdz  z   dœ«      }| dz  }t        j                  |||¬«       ||fS )	Né	   r'  r{   r!  r   rZ   r´  rµ  ©r?   r   r/   rl   rm   )Úbase_dirr   r¶  rq   s       r   r  r  Y	  sS   € Ø€}Ü—‘œu Q›x¨r¨d°Q©h¸"¸À¹Ñ.AÑBÓCˆØ�nÑ$€DÜ‡N�N�5˜$¨~Õ>Ø�$ˆ;Ðr   c                 ó0  — t        j                  t        d«      dgdz  dgdz  z   dœ«      }| dz  }t        j                  ||«       t        j                  t        dd«      dgdz  dgdz  z   dœ«      }| d	z  }t        j                  ||«       ||f||ffS )
Nr�  r'  r{   r!  r   rZ   ztest1.parquetrð  ztest2.parquetrŽ  )r�  r„   r†   r…   r‡   s        r   Ú_create_directory_of_filesr‘  a	  s˜   € Ü�X‰XœE !›H¨B¨4°!©8°r°d¸Q±hÑ+>Ñ?Ó@€FØ�Ñ&€EÜ‡N�N�6˜5Ô!Ü�X‰XœE ! R›L°¨t°a©x¸2¸$À¹(Ñ/BÑCÓD€FØ�Ñ&€EÜ‡N�N�6˜5Ô!Ø�FÐ˜e U˜^Ð+Ð+r   c                 óä   — | |j                  |j                  | «      «      fD ]K  }| j                  j                  |j                  «      sJ ‚|j	                  | «      j                  |«      rŒKJ ‚ y r   )r¼  r½  r=   r	  rä   )rS   r   rõ   Úpicklerr|   s        r   Ú_check_datasetr”  k	  s^   € à�w—}‘} W§]¡]°7Ó%;Ó<Ó=ˆØ�~‰~×$Ñ$ U§\¡\Ô2Ð2Ð2Ø×&Ñ& wÓ/×6Ñ6°uÕ=Ð=Ð=ñ >r   c                 óâ  — t        | t        j                  «      sJ ‚| t        | «      | gt        | «      gfD ]B  }t	        j
                  | fi |¤Ž}t        |t        j                  «      sJ ‚t        ||||«       ŒD t        | j                  «      5  t	        j
                  | j                  fi |¤Ž}t        |t        j                  «      sJ ‚t        ||||«       d d d «       y # 1 sw Y   y xY wr   )rM   ÚpathlibÚPathr_   rÇ   rS   r  r”  r
   ÚparentÚname)rq   r   rõ   r“  rà   r�   rS   s          r   Ú_check_dataset_from_pathrš  r	  sÃ   € ä�dœGŸL™LÔ)Ð)Ð)ð ”C˜“I ˜v¬¨D«	 {Ó3ˆÜ—*‘*˜TÑ, VÑ,ˆÜ˜'¤2×#7Ñ#7Ô8Ð8Ð8Ü�w  ~°wÕ?ð 4ô 
�D—K‘KÕ	 Ü—*‘*˜TŸY™YÑ1¨&Ñ1ˆÜ˜'¤2×#7Ñ#7Ô8Ð8Ð8Ü�w  ~°wÔ?÷ 
!×	 Ñ	 ús   ÂAC%Ã%C.c                 ó<   — t        | «      \  }}t        ||||«       y r   ©r  rš  ©r·  rõ   r¾  r   rq   s        r   Útest_open_dataset_single_filerž  ƒ	  s   € ä% gÓ.�K€Eˆ4Ü˜T 5¨.¸-ÕHr   c                 ó@   — t        | d¬«      \  }}t        ||||«       y )Nr   rµ  rœ  r�  s        r   Útest_deterministic_row_orderr   ‰	  s"   € ô
 & g¸aÔ@�K€Eˆ4Ü˜T 5¨.¸-ÕHr   c                 óf   — t        | «      \  }}t        j                  |«      }t        | |||«       y r   )r‘  r?   Úconcat_tablesrš  )r·  rõ   r¾  Útablesrt  r   s         r   Útest_open_dataset_directoryr¤  ’	  s.   € ä*¨7Ó3�I€FˆAÜ×Ñ˜VÓ$€EÜ˜W e¨^¸]ÕKr   c           	      óà  — t        | «      \  }\  }}t        j                  |«      }t        j                  ||g«      t        j                  t        |«      t        |«      g«      g}||D �cg c]"  }|j                  |j                  |«      «      ‘Œ$ c}z  }|D ]M  }	|	j                  j                  |j                  «      sJ ‚|j                  |	«      }
|
j                  |«      rŒMJ ‚ y c c}w r   )r‘  r?   r¢  rÇ   rS   r_   r¼  r½  r=   r	  rä   )r·  rõ   r¾  r£  r†   r‡   r   Údatasetsr|   rS   r9  s              r   Útest_open_dataset_list_of_filesr§  ™	  sß   € ä7¸Ó@Ñ€F‰NˆU�EÜ×Ñ˜VÓ$€Eô 	�
‰
�E˜5�>Ó"Ü
�
‰
”C˜“J¤ E£
Ð+Ó,ð€Hð Ù=EóÙ=E¸ˆ×Ñ˜M×/Ñ/°Ó2Õ3¸Xññ €Hó ˆØ�~‰~×$Ñ$ U§\¡\Ô2Ð2Ð2Ø×(Ñ(¨Ó1ˆØ�}‰}˜UÕ#Ð#Ð#ñ ùò	s   Á,'C+c                 óü  — t        | «      \  }}t        |«      }t        j                  |«      }|j                  j                  |j                  «      sJ ‚t        j                  |t        j                  «       ¬«      }|j                  j                  |j                  «      sJ ‚t        j                  t        «      5  t        j                  |t        j                  «       ¬«       d d d «       y # 1 sw Y   y xY w)NrË  )r  r   rÇ   rS   r=   r	  rc   rŠ   r  r  r  rd   )r·  r   rq   ÚfspathÚdataset1Údataset2s         r   Ú#test_open_dataset_filesystem_fspathr¬  ¬	  s°   € ô & gÓ.�K€Eˆ4ä˜TÓ"€Fô �z‰z˜&Ó!€HØ�?‰?×!Ñ! %§,¡,Ô/Ð/Ð/ô �z‰z˜&¬R×-?Ñ-?Ó-AÔB€HØ�?‰?×!Ñ! %§,¡,Ô/Ð/Ð/ô 
�‰”yÕ	!Ü
�
‰
�6¤b×&8Ñ&8Ó&:Õ;÷ 
"×	!Ñ	!ús   Â?*C2Ã2C;c                 ó  — | dz  }|j                  «        t        |«      \  }}|j                  |«      }t        j                  |«      }t        j                  |t        j                  «       ¬«      }t        j                  t        |«      t        |«      ¬«      }	|j                  |j                  |«      «      }
|j                  |«      |j                  |«      cxk(  r*|j                  |	«      cxk(  r|j                  |
«      k(  sJ ‚ J ‚y )Núsingle-filerË  )Úmkdirr  Úrelative_torÇ   rS   rc   rŠ   r_   r	   r¼  r½  rä   )r·  rõ   r¾  rp   r   rq   Úrelative_pathÚd1Úd2Úd3Úd4s              r   Útest_construct_from_single_filer¶  À	  sö   € à˜-Ñ'€IØ‡O�OÔÜ% iÓ0�K€Eˆ4Ø×$Ñ$ YÓ/€Mô 
�‰�DÓ	€Bä	�‰�D¤R×%7Ñ%7Ó%9Ô	:€Bä	�‰”C˜Ó&´?À9Ó3MÔ	N€Bà	×	Ñ	˜]×0Ñ0°Ó4Ó	5€Bà×"Ñ" 2Ó&¨.×*AÑ*AØ
ó+ô JØ×&Ñ& rÓ*ôJØ.<×.EÑ.EÀbÓ.IòJð Jñ Jð Jñ Jr   c                 ó   — | dz  }|j                  «        t        |«      \  }}t        j                  |«      }t        j                  |t	        j
                  «       ¬«      }t        j                  |j                  t        | «      ¬«      }|j                  |«      }	|j                  |«      }
|j                  |«      }|	|
cxk(  r|k(  sJ ‚ J ‚|||fD ]8  }|j                  |j                  |«      «      }|j                  |«      |	k(  rŒ8J ‚ y )Núsingle-directoryrË  )r¯  r‘  rÇ   rS   rc   rŠ   r™  r	   rä   r¼  r½  )r·  rõ   r¾  rp   r£  rŽ   r²  r³  r´  Út1Út2Út3r|   Úrestoreds                 r   Ú$test_construct_from_single_directoryr½  Ô	  sð   € àÐ,Ñ,€IØ‡O�OÔÜ.¨yÓ9�M€FˆEä	�‰�IÓ	€BÜ	�‰�I¬"×*<Ñ*<Ó*>Ô	?€BÜ	�‰�I—N‘N¬¸wÓ/GÔ	H€BØ	×	 Ñ	  Ó	$€BØ	×	 Ñ	  Ó	$€BØ	×	 Ñ	  Ó	$€BØ�Œ>�rŠ>Ð‰>Ðˆ>ð �"�b‹\ˆØ ×&Ñ& }×':Ñ':¸1Ó'=Ó>ˆØ×&Ñ& xÓ0°BÓ6Ð6Ð6ñ r   c                 óº  — | dz  }|j                  «        t        |«      \  }}|D �cg c]  }|j                  | «      ‘Œ }}t        | «      5  t	        j
                  |«      }|j                  |«      }t        |«      t        t        t        |«      «      k(  sJ ‚	 d d d «       t	        j
                  |t        | «      ¬«      }	|j                  |	«      }
t	        j
                  |«      }|j                  |«      }t	        j
                  |t        j                  «       ¬«      }|j                  |«      }|
cxk(  r|cxk(  r|k(  sJ ‚ J ‚y c c}w # 1 sw Y   Œ¶xY w)Nzlist-of-filesrË  )r¯  r‘  r°  r
   rÇ   rS   rä   r±   Úsumri   r	   rc   rŠ   )r·  rõ   rp   r£  rŽ   r�   Úrelative_pathsr²  r¹  r³  rº  r´  r»  rµ  Út4s                  r   Ú!test_construct_from_list_of_filesrÂ  è	  s$  € ð ˜/Ñ)€IØ‡O�OÔÜ.¨yÓ9�M€FˆEá6;Ó<±e°�a—m‘m GÕ,°e€NÐ<Ü	�GÕ	Ü�Z‰Z˜Ó'ˆØ×$Ñ$ RÓ(ˆÜ�2‹wœ#œc¤# vÓ.Ó/Ò/Ð/Ñ/÷ 
ô
 
�‰�N¬¸wÓ/GÔ	H€BØ	×	 Ñ	  Ó	$€BÜ	�‰�EÓ	€BØ	×	 Ñ	  Ó	$€BÜ	�‰�E¤b×&8Ñ&8Ó&:Ô	;€BØ	×	 Ñ	  Ó	$€Bà�Ô�rÔ˜RÒÐÑÐÑùò =ß	Ð	ús   ¨EÁAEÅEc                 óš   — ddg}t        j                  t        d¬«      5  t        j                  || ¬«       d d d «       y # 1 sw Y   y xY w)Nr÷   z!subdir/1/xxx/doesnt-exist.parquetzdoesnt-existr   rË  )r  r  r  rÇ   rS   )rn   r
  s     r   Ú-test_construct_from_list_of_mixed_paths_failsrÄ  ÿ	  s=   € ð 	%Ø+ð€Eô 
�‰Ô(°Ö	?Ü
�
‰
�5 VÕ,÷ 
@×	?Ñ	?ús    AÁA
c                 óö  — t        j                  ddg| ¬«      }t        j                  d| ¬«      }t        j                  ||g«      }t        |t         j                  «      sJ ‚t	        t        |j                  «       «      «      dk(  sJ ‚|j                  «       }t	        |«      dk(  sJ ‚|j                  dk(  sJ ‚t	        |j                  «      dk(  sJ ‚|j                  D ]  }|j                  ddgk(  rŒJ ‚ y )	Nr÷   rø   rË  rÂ   r{   r�  r   rv   )rÇ   rS   rM   ÚUnionDatasetr±   rh   rK   rä   rV  Úchildrenr
  )rn   r[   r\   rS   r   Úchilds         r   Ú(test_construct_from_mixed_child_datasetsrÉ  

  sö   € ô 	�
‰
Ð0Ø0ð2Ø>Dô	F€Aä
�
‰
�8¨Ô/€Aä�j‰j˜!˜Q˜Ó €Gä�gœrŸ™Ô/Ð/Ð/ÜŒt�G×)Ñ)Ó+Ó,Ó-°Ò2Ð2Ð2à×ÑÓ€EÜˆu‹:˜ÒÐÐØ×Ñ Ò!Ð!Ð!äˆw×ÑÓ  AÒ%Ð%Ð%Ø×!Ô!ˆØ�{‰{Ð;Ø;ð=ó =ð 	=ð =ñ "r   c                  ó–   — t        j                  g d¬«      } | j                  «       }|j                  dk(  sJ ‚|j                  dk(  sJ ‚y )Nr¨  r  r   )rÇ   rS   rä   rí   rV  )Úemptyr   s     r   Útest_construct_empty_datasetrÌ   
  sD   € Ü�J‰J�r %Ô(€EØ�N‰NÓ€EØ�>‰>˜QÒÐÐØ×Ñ Ò!Ð!Ñ!r   c            
      ó.  — t        j                  g dt        j                  dt        j                  «       fdt        j
                  «       fg«      ¬«      } t        j                  t        d¬«      5  | j                  «        d d d «       y # 1 sw Y   y xY w)Nr¨  r[   ©rÐ   r=   zMultiple matches for .*a.* in r   )
rÇ   rS   r?   r=   rB   rD   r  r  rN  rä   )rË  s    r   Ú*test_construct_dataset_with_invalid_schemarÏ  '
  sh   € Ü�J‰J�r %´·	±	Ø	Œb�h‰h‹jÐØ	Œb�i‰i‹kÐð;ó 1ô €Eô 
�‰”zÐ)IÖ	JØ�‰Ô÷ 
K×	JÑ	Jús   Á1BÂBc                 ó¢  ‡— t        j                  | t        j                  d«      t        j                  «       ¬«      }t        j                  | t        j                  d«      t        j                  «       ¬«      }t
        j                  j                  t        j                  t        d«      «      gdg¬«      Št
        j                  j                  t        j                  t        d«      «      gdg¬«      }t        j                  t        d¬	«      5  t        j                  ||g«       d d d «       d
}t        j                  t        |¬	«      5  t        j                  g d¢«       d d d «       d}t        j                  t        |¬	«      5  t        j                  d «       d d d «       d}t        j                  t        |¬	«      5  t        j                  ˆfd„t        d«      D «       «       d d d «       d}t        j                  t        |¬	«      5  t        j                  g «       d d d «       d}t        j                  t        |¬	«      5  t        j                  ‰|g«       d d d «       d}t        j                  t        |¬	«      5  t        j                  ‰dg«       d d d «       d}t        j                  t        |¬	«      5  t        j                  ‰dg«       d d d «       y # 1 sw Y   �ŒÂxY w# 1 sw Y   �Œ’xY w# 1 sw Y   �ŒdxY w# 1 sw Y   �Œ$xY w# 1 sw Y   ŒõxY w# 1 sw Y   ŒÄxY w# 1 sw Y   Œ“xY w# 1 sw Y   y xY w)NrK  r  ú/schemarª   r[   r¦  r\   z"Expected.*FileSystemDatasetFactoryr   z�Expected a list of path-like or dataset objects, or a list of batches or tables. The given list contains the following types: intrÏ  zbExpected a path-like, list of path-likes or a list of Datasets instead of the given type: NoneTypezcExpected a path-like, list of path-likes or a list of Datasets instead of the given type: generatorc              3   ó"   •K  — | ]  }‰–— Œ y ­wr   r   )r‰  rt  Úbatch1s     €r   rŠ  z<test_construct_from_invalid_sources_raise.<locals>.<genexpr>U
  s   øè ø€ Ð-¡H˜q”F¡Hùó   ƒrY   zEMust provide schema to construct in-memory dataset from an empty listzFItem has schema
b: int64
which does not match expected schema
a: int64z}Expected a list of path-like or dataset objects, or a list of batches or tables. The given list contains the following types:r   zCExpected a list of tables or batches. The given list contains a int)rÇ   rÎ   rc   rÉ   rÈ   r?   r,  r�   r~   r/   r  r  r  rS   rN  ÚInMemoryDataset)rÀ   Úchild1Úchild2Úbatch2r|  rÓ  s        @r   Ú)test_construct_from_invalid_sources_raiserÙ  0
  sq  ø€ Ü×(Ñ(ØÜ
�‰˜Ó!Ü×#Ñ#Ó%ô€Fô
 ×(Ñ(ØÜ
�‰˜	Ó"Ü×#Ñ#Ó%ô€Fô
 �^‰^×'Ñ'¬¯©´%¸³)Ó)<Ð(=ÀcÀUÐ'ÓK€FÜ�^‰^×'Ñ'¬¯©´%¸³)Ó)<Ð(=ÀcÀUÐ'ÓK€Fä	�‰”yÐ(LÖ	MÜ
�
‰
�F˜FÐ#Ô$÷ 
Nð	ð ô
 
�‰”y¨Ö	1Ü
�
‰
’9Ô÷ 
2ð	.ð ô 
�‰”y¨Ö	1Ü
�
‰
�4Ô÷ 
2ð	/ð ô 
�‰”y¨Ö	1Ü
�
‰
Ó-¤E¨!¤HÓ-Ô.÷ 
2ð 	Pð ô 
�‰”z¨Ö	2Ü
×Ñ˜2Ô÷ 
3ð	ð ô 
�‰”y¨Ö	1Ü
�
‰
�F˜FÐ#Ô$÷ 
2ð	Jð ô 
�‰”y¨Ö	1Ü
�
‰
�F˜A�;Ô÷ 
2ð 	Nð ô 
�‰”y¨Ö	1Ü
×Ñ˜F A˜;Ô'÷ 
2Ð	1÷a 
NÑ	Mú÷ 
2Ñ	1ú÷ 
2Ñ	1ú÷ 
2Ñ	1ú÷ 
3Ð	2ú÷ 
2Ð	1ú÷ 
2Ð	1ú÷ 
2Ð	1ús`   ÄK-ÅK:ÆLÇ
(LÈL!ÉL-ÊL9ËMË-K7Ë:LÌLÌLÌ!L*Ì-L6Ì9MÍMc                 óL  — t         j                  j                  t        j                  t	        d«      «      gdg¬«      }t         j
                  j                  |j                  |g«      }t         j                  j                  |g«      }t        j                  g dt        j                  g «      ¬«      j                  «       }|t        j                  g «      k(  sJ ‚|||g|g|fD ]»  }t        j                  |«      }| j                  |«      |k(  sJ ‚t        t        |j                  «       «      «      dk(  sJ ‚t!        |j                  «       «      j                  «       |k(  sJ ‚t         j                  j                  t        |j#                  «       «      «      |k(  rŒ»J ‚ y )Nrª   r[   r¦  r¨  rÎ  r   )r?   r,  r�   r~   r/   ÚRecordBatchReaderrk   r=   rE   rÇ   rS   rä   r   r±   rh   rK   r2   rç   )rõ   rt   ró   r   Údataset_tableÚsourcerS   s          r   Útest_construct_in_memoryrÞ  r
  sN  € Ü�N‰N×&Ñ&¬¯©´°r³Ó(;Ð'<ÀSÀEÐ&ÓJ€EÜ×!Ñ!×.Ñ.¨u¯|©|¸e¸WÓE€FÜ�H‰H×!Ñ! 5 'Ó*€Eä—J‘J˜r¨%¼¿	¹	À"»ô !ß!)¡£ð àœBŸH™H R›LÒ(Ð(Ð(à˜% % ¨5¨'°6Ó:ˆÜ—*‘*˜VÓ$ˆØ×&Ñ& wÓ/°5Ò8Ð8Ð8Ü”4˜×-Ñ-Ó/Ó0Ó1°QÒ6Ð6Ð6Ü�G×)Ñ)Ó+Ó,×5Ñ5Ó7¸5Ò@Ð@Ð@Ü�x‰x×$Ñ$¤T¨'×*<Ñ*<Ó*>Ó%?Ó@ÀEÓIÐIÐIñ ;r   rÝ   c                 ó"  ‡‡— t         j                  j                  t        j                  t	        d«      «      gdg¬«      Št         j
                  j                  ‰g«      Šd}ˆfd„d fˆfd„d fˆfd„‰j                  ffD ]  \  }}t        j                  j                   |«       || ¬«      }|j                  «       ‰k(  sJ ‚t        j                  t         j                  |¬	«      5  |j                  «        d d d «       Œ� y # 1 sw Y   ŒŒxY w)
Nrª   r[   r¦  z#OneShotFragment was already scannedc                  óZ   •— t         j                  j                  ‰ j                  ‰ g«      S r   )r?   rÛ  rk   r=   ©rt   s   €r   r$  z$test_scan_iterator.<locals>.<lambda>Š
  s!   ø€ ”R×)Ñ)×6Ñ6Ø—‘˜u˜gô'r   c                  ó   •— t        ‰ «      S r   )r   r   s   €r   r$  z$test_scan_iterator.<locals>.<lambda>Œ
  s   ø€ Ô'¨Ô.r   c                  ó,   •— ˆ fd„t        d«      D «       S )Nc              3   ó"   •K  — | ]  }‰–— Œ y ­wr   r   )r‰  rt  rt   s     €r   rŠ  z7test_scan_iterator.<locals>.<lambda>.<locals>.<genexpr>�
  s   øè ø€ Ð.¡X ”e¡XùrÔ  r   )r/   rá  s   €r   r$  z$test_scan_iterator.<locals>.<lambda>�
  s   ø€ Ó.¤U¨1¤XÔ.r   ©r=   rÝ   r   )r?   r,  r�   r~   r/   rE   rk   r=   rÇ   r`  rä   r  r  ra  )rÝ   r  rÓ   r=   rê   rt   r   s        @@r   Útest_scan_iteratorræ  ƒ
  sä   ù€ ä�N‰N×&Ñ&¬¯©´°r³Ó(;Ð'<ÀSÀEÐ&ÓJ€EÜ�H‰H×!Ñ! 5 'Ó*€Eà1€Eó'Ø(,ð.ã.°Ð5Û.°·±Ð=ó	‰ˆ�ô —*‘*×)Ñ)Ù‹I˜f°+ð *ó ?ˆà×ÑÓ! UÒ*Ð*Ð*Ü�]‰]œ2Ÿ?™?°%Ö8Ø×ÑÔ÷ 9Ð8ñ÷ 9Ð8ús   Ã)DÄD	c                 óÊ  — t        j                  t        d«      dgdz  dgdz  z   dœ«      }| dz  }|j                  «        t        d«      D ]F  }|d	|› �z  }|j                  «        t	        j
                  |j                  d|z  d«      |d
z  «       ŒH |j                  dt        j                  dgdz  dgdz  z   dgdz  z   t        j                  «       ¬«      «      }||fS )Nr�  r'  r{   r!  r   rZ   zdataset-partitionedrY   zpart=r´  r¾   r   r   rv   rw   )
r?   r   r/   r¯  rl   rm   r•  Úappend_columnr~   rÌ   )rh  r   rq   r:   r¾   Ú
full_tables         r   Ú_create_partitioned_datasetrê  —
  sÙ   € Ü�H‰Hœ5 ›8¨2¨$°©(°b°T¸A±XÑ*=Ñ>Ó?€EàÐ*Ñ*€DØ‡J�J„Lä�1ŽXˆØ˜˜a˜S�kÑ!ˆØ�
‰
ŒÜ
�‰�u—{‘{ 1 Q¡3¨Ó*¨D°>Ñ,AÕBð ð
 ×$Ñ$Ø”—‘˜!˜˜q™ A 3¨¡7Ñ*¨a¨S°1©WÑ4¼2¿8¹8»:ÔFóH€Jð �tÐÐr   c           
      óà  — t        | «      \  }}|j                  ddg«      }t        ||||«       t        j                  t        |«      t        j                  d¬«      ¬«      }|j                  j                  |j                  «      sJ ‚t        | «      5  t        j                  dt        j                  d¬«      ¬«      }|j                  j                  |j                  «      sJ ‚	 d d d «       t        j                  t        |«      d¬«      }|j                  j                  |j                  «      sJ ‚t        j                  t        |«      t        j                  t        j                  dt        j                  «       fg«      d¬«      ¬«      }|j                  j                  t        j                  dt        j                  «       «      «      }|j                  j                  |«      sJ ‚|j                  «       }|j                  dt        j                   dgd	z  d
gd	z  z   dgd	z  z   t        j                  «       ¬«      «      }	|j                  |	«      sJ ‚y # 1 sw Y   �Œ{xY w)Nr[   r\   r¬   rœ  ©rÍ   zdataset-partitioned/r¾   r   rY   r   rv   rw   )rê  r¡  rš  rÇ   rS   r_   rÍ   r=   r	  r
   r?   r   r0   r@   rä   rè  r~   )
r·  rõ   r¾  ré  rq   r   rS   rF  r9  r|  s
             r   Ú'test_open_dataset_partitioned_directoryrí  ¨
  sß  € ä2°7Ó;Ñ€J�ð ×Ñ˜s C˜jÓ)€EÜ˜T 5¨.¸-ÔHô �j‰jÜˆD‹	¤§¡°vÔ >ô@€Gà�>‰>× Ñ  ×!2Ñ!2Ô3Ð3Ð3ô 
�GÕ	Ü—*‘*Ð3Ü*,¯/©/ÀÔ*HôJˆà�~‰~×$Ñ$ Z×%6Ñ%6Ô7Ð7Ñ7÷ 
ô �j‰jœ˜T›°Ô8€GØ�>‰>× Ñ  ×!2Ñ!2Ô3Ð3Ð3ô �j‰jÜˆD‹	Ü—_‘_Ü�I‰I˜¤§¡£	Ð*Ð+Ó,°Vô=ô>€Gð —l‘l×)Ñ)¬"¯(©(°6¼2¿7¹7»9Ó*EÓF€OØ�>‰>× Ñ  Ô1Ð1Ð1à×ÑÓ€FØ×"Ñ"Ø”—‘˜!˜˜q™ A 3¨¡7Ñ*¨a¨S°1©WÑ4¼2¿7¹7»9ÔEóG€Hà�=‰=˜Ô"Ð"Ñ"÷) 
Ñ	ús   ÂAI#É#I-c                 óü  — t        | «      \  }}t        j                  t        |«      «      }|j                  j                  |j                  «      sJ ‚t        j                  t        |«      t        j                  «       ¬«      }|j                  j                  |j                  «      sJ ‚t        | «      5  t        j                  dt        j                  «       ¬«      }d d d «       j                  j                  |j                  «      sJ ‚t        j                  t        «      5  t        j                  t        |«      t        j                  «       ¬«       d d d «       y # 1 sw Y   Œ…xY w# 1 sw Y   y xY w)NrË  r´  )r  rÇ   rS   r_   r=   r	  rc   rŠ   r
   r  r  r  rd   )r·  r   rq   rª  r«  Údataset3s         r   Útest_open_dataset_filesystemrð  Í
  s  € ô & gÓ.�K€Eˆ4ô �z‰zœ#˜d›)Ó$€HØ�?‰?×!Ñ! %§,¡,Ô/Ð/Ð/ô �z‰zœ#˜d›)´×0BÑ0BÓ0DÔE€HØ�?‰?×!Ñ! %§,¡,Ô/Ð/Ð/ô 
�GÕ	Ü—:‘:˜n¼×9KÑ9KÓ9MÔNˆ÷ 
à�?‰?×!Ñ! %§,¡,Ô/Ð/Ð/ô 
�‰Ô(Õ	)Ü
�
‰
”3�t“9¬×);Ñ);Ó)=Õ>÷ 
*Ð	)÷ 
Ð	ú÷
 
*Ð	)ús   Â8*E&Ä*3E2Å&E/Å2E;c                 ó°   — t        | «      \  }}t        j                  t        d¬«      5  t	        j
                  |gd¬«       d d d «       y # 1 sw Y   y xY w)Nz format 'blabla' is not supportedr   Úblablar  )r  r  r  rN  rÇ   rS   )r·  rt  rq   s      r   Ú$test_open_dataset_unsupported_formatró  ä
  s<   € ä! 'Ó*�G€A€tÜ	�‰”zÐ)KÖ	LÜ
�
‰
�D�6 (Õ+÷ 
M×	LÑ	Lús   ªAÁAc                 ó:  — t        | «      \  }}t        j                  |«      }t        j                  ||g«      }t        |t        j                  «      sJ ‚|j                  |j                  |«      «      }|j                  |«      |j                  |«      k(  sJ ‚y r   )r  rÇ   rS   rM   rÆ  r¼  r½  rä   )r·  rõ   r¾  rt  rq   rS   Úunionry  s           r   Útest_open_union_datasetrö  ë
  s„   € ä! 'Ó*�G€A€tÜ�j‰j˜Ó€Gä�J‰J˜ Ð)Ó*€EÜ�eœRŸ_™_Ô-Ð-Ð-à×!Ñ! -×"5Ñ"5°eÓ"<Ó=€GØ×"Ñ" 7Ó+¨~×/FÑ/FÀuÓ/MÒMÐMÑMr   c                 óÄ   — t        j                  d| d¬«      }t        j                  t        d¬«      5  t        j                  |gd¬«       d d d «       y # 1 sw Y   y xY w)NrK  r§   rL  zcannot pass any additionalr   r  )rÇ   rS   r  r  rN  )rÀ   rÈ  s     r   Ú.test_open_union_dataset_with_additional_kwargsrø  ÷
  s@   € Ü�J‰J�x¨MÀ)ÔL€EÜ	�‰”zÐ)EÖ	FÜ
�
‰
�E�7 9Õ-÷ 
G×	FÑ	Fús   ´AÁAc                  ó0  — t        j                  t        «      5  t        j                  dd¬«       d d d «       t        j                  t
        j                  d¬«      5  t        j                  dd¬«       d d d «       y # 1 sw Y   ŒOxY w# 1 sw Y   y xY w)Nzi-am-not-existing.arrowr¨  r  zcannot be relativer   zfile:i-am-not-existing.arrow)r  r  r  rÇ   rS   r?   ra  r   r   r   Ú#test_open_dataset_non_existing_filerú  ý
  se   € ô 
�‰Ô(Õ	)Ü
�
‰
Ð,°UÕ;÷ 
*ô 
�‰”r—‘Ð.BÖ	CÜ
�
‰
Ð1¸%Õ@÷ 
DÐ	C÷ 
*Ð	)ú÷ 
DÐ	Cús   šB ÁBÂ B	ÂBrÍ   rp   r¬   r“  r’  Úpartition_keys©rÉ  ÚBÚCrÏ  )ÚDÚEÚFr÷  )r   NrY   )rÉ  Nrþ  )Nrv   rY   c           	      ó®  ‡— t        j                  t        d«      dgdz  dgdz  z   dœ«      }d |d   v xs d |d   v }|d	k(  r|ry |d	k(  r(t        j                  j                  d
dg‰¬«      }d}d }nM|r"t        j                  j                  ‰|¬«      }n t        j                  j                  ‰¬«      }d}|r|}nd}| dz  }	|	j                  «        |\  }
}|
D ]Q  }|D ]J  }|	|j                  |xs ||xs |«      z  }|j                  d¬«       t        j                  ||dz  «       ŒL ŒS t        j                  t        |	«      |¬«      }ˆfd„}|j                  j                  t        j                  d
 ||
d   «      «      «      j                  t        j                  d ||d   «      «      «      }|j                  j!                  |«      sJ ‚y )Nr�  r'  r{   r!  r   rZ   r   r   rp   Úpart1Úpart2r3  z{0}/{1})r/  r“  zpart1={0}/part2={1}Ú__HIVE_DEFAULT_PARTITION__rS   T)Úparentsr´  rì  c                 ó8  •— ‰r`t        | t        «      rt        j                  «       nt        j                  «       }t        j
                  t        j                  «       |«      S t        | t        «      rt        j                  «       S t        j                  «       S r   )rM   r_   r?   rD   rÌ   rz   )rÆ   Ú
value_typer/  s     €r   r6  z/test_partition_discovery.<locals>.expected_type?  sY   ø€ ÙÜ(2°3¼Ô(<œŸ™œÄ"Ç(Á(Ã*ˆJÜ—=‘=¤§¡£¨ZÓ8Ð8ä",¨S´#Ô"6”2—9‘9“;ÐF¼B¿H¹H»JÐFr   )r?   r   r/   rÇ   rË   r*  rª  r¯  rÐ   rl   rm   rS   r_   r=   r0   r@   r	  )r·  rÍ   r“  r/  rû  r   Úhas_nullÚfmtÚ
null_valueÚbasepathÚ
part_keys1Ú
part_keys2r  r  rq   rS   r6  rF  s      `              r   Útest_partition_discoveryr    sã  ø€ ô" �H‰Hœ5 ›8¨3¨%°!©)°s°e¸a±iÑ*?Ñ@ÓA€Eà�~ aÑ(Ð(ÒE¨D°NÀ1Ñ4EÐ,E€HØ�{Ò"¡xàà�{Ò"Ü×/Ñ/×8Ñ8Ø�gÐÐ1Að 9ó CˆàˆØ‰
áÜ×.Ñ.×7Ñ7Ø!1Àð 8ó ‰Lô ×.Ñ.×7Ñ7Ø!1ð 8ó 3ˆLà#ˆÙØ&‰Jà5ˆJà˜Ñ"€HØ‡N�NÔà+Ñ€J�
ÛˆÛˆEØØ—
‘
˜5Ò. J°Ò0C¸ÓDñEˆDà�J‰J˜tˆJÔ$Ü�N‰N˜5 $¨Ñ"7Õ8ñ	  ð ô �j‰jœ˜X›°\ÔB€GôGð —l‘l×)Ñ)Ü
�‰�™-¨
°1©Ó6Ó7óç�fÜ
�‰�™-¨
°1©Ó6Ó7óð ð
 �>‰>× Ñ  Ô1Ð1Ñ1r   c                 ó°  — t        j                  t        j                  ddgd«      t	        d«      dœ«      }t        j                  |j                  dg«      j                  d¬«      }t        j                  || |d	¬
«       t        j                  | d	t
        j                  j                  d¬«      ¬«      }t        j                  |d   |d   j                  «       dœ«      }|j                  «       j                  |«      sJ ‚t!        |j#                  «       «      d   }|j                  |j                  ¬«      j                  |d d «      sJ ‚|j$                  }|j'                  |j)                  |«      «      }|j                  «       j                  |«      sJ ‚|j'                  |j)                  |«      «      }|j                  |j                  ¬«      j                  |d d «      sJ ‚|j                  |j                  ¬«      j+                  «       j                  |d d j+                  «       «      sJ ‚|j$                  j                  |«      sJ ‚y )NrÉ  rý  r   rª   ©r¾   rš  r¾   r¬   rœ  r  ©rÍ   rÐ   Tr3  r©  rš  )rš  r¾   r   rb   )r?   r   r]  r\  r/   rÇ   rÍ   r¡  r=   r²  rS   rª  r*  r  rä   r	  rh   rK   r  r¼  r½  rÁ  )	r·  r¾  r   r¾   rS   r|  rT   Ú	part_exprr¼  s	            r   Ú4test_dataset_partitioned_dictionary_type_reconstructr  M  s   € ô �H‰HœbŸi™i¨¨c¨
°AÓ6¼uÀR»yÑIÓJ€EÜ�?‰?˜5Ÿ<™<¨¨Ó1×8Ñ8ÀÔH€DÜ×Ñ�U˜G°$¸yÕIä�j‰jØ˜	Ü×(Ñ(×1Ñ1À4Ð1ÓHô€Gô �x‰xØ�e‘ e¨F¡m×&EÑ&EÓ&GÑHó€Hð ×ÑÓ×$Ñ$ XÔ.Ð.Ð.Ü�G×)Ñ)Ó+Ó,¨QÑ/€HØ×Ñ G§N¡NÐÓ3×:Ñ:¸8ÀBÀQ¸<ÔHÐHÐHØ×-Ñ-€Ià×"Ñ" =×#6Ñ#6°wÓ#?Ó@€HØ×ÑÓ×%Ñ% hÔ/Ð/Ð/à×"Ñ" =×#6Ñ#6°xÓ#@ÓA€HØ×Ñ G§N¡NÐÓ3×:Ñ:¸8ÀBÀQ¸<ÔHÐHÐHà×Ñ G§N¡NÐÓ3×=Ñ=Ó?×FÑFØ��!ˆ×ÑÓ ôð ð ð ×(Ñ(×/Ñ/°	Ô:Ð:Ñ:r   c           	      óL  — ddl m} | d   \  }}}}d|› d|› d|› d|› d�	}|j                  |«      \  }} |j                  d«       t	        j
                  d	g d
¢i«      }	 |j                  d«      5 }
t        j                  |	|
«       d d d «       |	|||||||fS # 1 sw Y   ŒxY w)Nr   ©Ú
FileSystemÚ
connectionús3://Ú:z5@mybucket/data.parquet?scheme=http&endpoint_override=z&allow_bucket_creation=TrueÚmybucketr[   rÏ  zmybucket/data.parquet)	r›   r  Úfrom_urirf   r?   r   rg   rl   rm   )Ú	s3_serverr  rY  rZ  r[  r\  rX  rc   rq   r   rr   s              r   rW  rW  l  sÂ   € å%à)2°<Ñ)@Ñ&€Dˆ$�
˜Jà
�
ˆ|˜1˜Z˜Lð )Ø"˜V 1 T FÐ*Eð	Gð ð
 ×"Ñ" 3Ó'�H€Bˆà€B‡M�M�*ÔÜ�H‰H�cš9Ð%Ó&€EØ	ˆ×	Ñ	Ð6Ô	7¸3Ü
�‰�u˜cÔ"÷ 
8ð �$˜˜C  t¨Z¸ÐCÐC÷ 
8Ð	7ús   Á1BÂB#c                 ó   — | \  }}}}}}}}t        j                  |d¬«      }|j                  |«      j                  |«      sJ ‚t        j                  |d|¬«      }|j                  |«      j                  |«      sJ ‚y )Nr§   r  ©rÐ   rú   )rÇ   rS   rä   r	  )rW  rõ   r   rq   rc   rX  rt  rS   s           r   Útest_open_dataset_from_uri_s3r   €  s~   € ð (9Ñ$€Eˆ4��S˜!˜Q  1ô �j‰j˜ YÔ/€GØ×"Ñ" 7Ó+×2Ñ2°5Ô9Ð9Ð9ô �j‰j˜ i¸BÔ?€GØ×"Ñ" 7Ó+×2Ñ2°5Ô9Ð9Ñ9r   c                 óÚ   — | \  }}}}}}}}t        j                  d«      }|j                  |«      }t        j                  |d|¬«      }	|j                  |	«      j                  |«      sJ ‚y )Nr  r§   r  )rc   rÉ   rS  rÇ   rS   rä   r	  )
rW  rõ   r   rq   rú   rX  rt  rÑ   ÚfinfosrS   s
             r   Ú test_open_dataset_from_fileinfosr#  �  sj   € ð 0AÑ,€Eˆ4�˜S ! Q¨¨1Ü�‰˜zÓ*€HØ×%Ñ% hÓ/€FÜ�j‰j˜¨	¸jÔI€GØ×"Ñ" 7Ó+×2Ñ2°5Ô9Ð9Ñ9r   c           	      óŒ  — | \  }}}}}}}}t        j                  d«      }ddlm}	m}
 |j                  ||dd|› d|› �i¬«      }t        j                  |d|¬	«      }|j                  «       j                  |«      sJ ‚ |
 |	|«      «      }t        j                  |d|¬	«      }|j                  «       j                  |«      sJ ‚y )
NÚs3fsr   )ÚFSSpecHandlerr‹   Úendpoint_urlzhttp://r  )rÆ   ÚsecretÚclient_kwargsr§   r  )
r  Úimportorskipr›   r&  r‹   ÚS3FileSystemrÇ   rS   rä   r	  )rW  r   rq   rt  rY  rZ  r[  r\  r%  r&  r‹   rc   rS   s                r   Ú$test_open_dataset_from_uri_s3_fsspecr,  ™  sÑ   € ð =NÑ9€Eˆ4��A�t˜T :¨zÜ×Ñ˜vÓ&€Dç6à	×	Ñ	ØØà˜g d V¨1¨T¨FÐ3ð
ð 
ó 
€Bô �j‰j˜ i¸BÔ?€GØ×ÑÓ×$Ñ$ UÔ+Ð+Ð+ñ 
‘m BÓ'Ó	(€BÜ�j‰j˜ i¸BÔ?€GØ×ÑÓ×$Ñ$ UÔ+Ð+Ñ+r   c                 ó|  — ddl m} | d   \  }}}}d}d}d|› d|› d|› d	|› d
|› d|› d�}|j                  |«      \  }	}|dk(  sJ ‚ |	j                  |«       t	        j
                  dg d¢i«      }
 |	j                  |«      5 }t        j                  |
|«       d d d «       t        j                  |d¬«      }|j                  «       j                  |
«      sJ ‚dj                  ||||«      }g d¢}|D ]O  \  }}|j                  |«      }t        j                  ||d¬«      }|j                  «       j                  |
«      rŒOJ ‚ t        j                  t        j                   d¬«      5  |j                  d	«      }t        j                  d|¬«       d d d «       d}d}|j                  |«      }t        j                  t"        «      5 }t        j                  d|¬«       d d d «       t%        j&                  «      |j                  d||«      k(  sJ ‚d}|j                  |«      }t        j                  t"        «      5 }t        j                  d|¬«       d d d «       t%        |j&                  «      |j                  d||«      k(  sJ ‚y # 1 sw Y   �ŒõxY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒÆxY w# 1 sw Y   Œ[xY w)Nr   r  r  Útheirbucketúnested/folder/data.parquetr  r  Ú@r«   z?scheme=http&endpoint_override=z&allow_bucket_creation=truez&theirbucket/nested/folder/data.parquetr[   rÏ  r§   r  ú3s3://{}:{}@{{}}?scheme=http&endpoint_override={}:{}))ztheirbucket/nested/folder/z/data.parquet)ztheirbucket/nested/folderúdata.parquet)ztheirbucket/nested/úfolder/data.parquet)ztheirbucket/nestedr3  )r.  z/nested/folder/data.parquet)r.  r/  rL  zMissing bucket namer   z'/theirbucket/nested/folder/data.parquetrË  z›The path component of the filesystem URI must point to a directory but it has a type: `{}`. The path component is `{}` and the given filesystem URI is `{}`ztheirbucket/doesnt/existr2  ÚNotFoundÚFile)r›   r  r  rf   r?   r   rg   rl   rm   rÇ   rS   rä   r	  rÐ   r  r  ra  rN  r_   r'   )r  r  rY  rZ  r[  r\  Úbucketrq   rX  rc   r   rr   rS   Útemplater‡  Úprefixr2  Úexcs                     r   Ú-test_open_dataset_from_s3_with_filesystem_urir:  ³  s  € õ &à)2°<Ñ)@Ñ&€Dˆ$�
˜JØ€FØ'€Dà
�
ˆ|˜1˜Z˜L¨¨&¨°°4°&ð 9Ø"˜V 1 T FÐ*Eð	Gð ð
 ×"Ñ" 3Ó'�H€BˆØÐ;Ò;Ð;Ð;à€B‡M�M�&Ôä�H‰H�cš9Ð%Ó&€EØ	ˆ×	Ñ	˜tÔ	$¨Ü
�‰�u˜cÔ"÷ 
%ô �j‰j˜ YÔ/€GØ×ÑÓ×$Ñ$ UÔ+Ð+Ð+ð 	>×DÑDØ˜
 D¨$ó	
ð ò
€Eó ‰ˆ�Ø�o‰o˜fÓ%ˆÜ—*‘*˜T¨c¸)ÔDˆØ×ÑÓ!×(Ñ(¨Õ/Ð/Ð/ð ô
 
�‰”r—‘Ð.CÖ	DØ�o‰o˜cÓ"ˆÜ
�
‰
Ð<ÈÕM÷ 
Eð
	!ð 
ð &€DØ
�/‰/˜$Ó
€CÜ	�‰”zÔ	" cÜ
�
‰
�>¨cÕ2÷ 
#äˆs�y‰y‹>˜UŸ\™\¨*°d¸CÓ@Ò@Ð@Ð@à3€DØ
�/‰/˜$Ó
€CÜ	�‰”zÔ	" cÜ
�
‰
�>¨cÕ2÷ 
#äˆs�y‰y‹>˜UŸ\™\¨&°$¸Ó<Ò<Ð<Ñ<÷] 
%Ñ	$ú÷4 
EÑ	Dú÷ 
#Ð	"ú÷ 
#Ð	"ús0   ÂJÅ*)JÇ	J&É J2ÊJÊJ#Ê&J/Ê2J;c                 óè   — t        | «      \  }}t        j                  d«      }|j                  d«      }t	        j
                  ||¬«      }|j                  j                  |j                  «      sJ ‚y )NÚfsspecÚfilerË  )r  r  r*  rú   rÇ   rS   r=   r	  )r·  r   rq   r<  r�   rS   s         r   Útest_open_dataset_from_fsspecr>  ÷  s\   € ä% gÓ.�K€Eˆ4ä× Ñ  Ó*€Fà×Ñ Ó'€GÜ�j‰j˜¨'Ô2€GØ�>‰>× Ñ  §¡Ô.Ð.Ñ.r   c                 óJ  — t        j                  d«      }t        j                  dg d¢i«      }| dz  }t	        j
                  ||«       |j                  d«      }|j                  | «      d   j                  d«      sJ ‚t        j                  «       }t        j                  t        j                  |«      «      }|j                  ||«      }|j                  |j                   «      sJ ‚|j#                  ||«      }|j$                  j                  |j                   «      sJ ‚y )Nr<  r[   rÏ  r2  r=  r   )r  r*  r?   r   rl   rm   rú   ÚlsÚendswithrÇ   rÈ   rc   r‹   r&  rC  r	  r=   r  r“  )	r·  r<  r   rq   Ú	fsspec_fsrÐ   rú   r=   rT   s	            r   Útest_file_format_inspect_fsspecrC    sö   € ô × Ñ  Ó*€Fô �H‰H�cš9Ð%Ó&€EØ�^Ñ#€DÜ‡N�N�5˜$Ôð ×!Ñ! &Ó)€IØ�<‰<˜Ó  Ñ#×,Ñ,¨^Ô<Ð<Ð<ô ×!Ñ!Ó#€Fô —‘¤×!1Ñ!1°)Ó!<Ó=€JØ�^‰^˜D *Ó-€FØ�=‰=˜Ÿ™Ô&Ð&Ð&à×#Ñ# D¨*Ó5€HØ×#Ñ#×*Ñ*¨5¯<©<Ô8Ð8Ñ8r   c                 ó4  — | dz  }t        j                  ddgdz  t        d«      dœ«      }t        j                  |j                  dg«      j                  d¬	«      }t        j                  |||d
¬«       t        j                  t        j                  dt        j                  d«      fg«      d¬	«      }t        j                  |d
|¬«      }t        j                  d«      t        j                  d«      kD  }|j                  ||¬«      }|j                  d«      j                  «       g d¢k(  sJ ‚dd l}t        j                  d«       |j                   ddd«      kD  }|j                  ||¬«      }|j                  d«      j                  «       g d¢k(  sJ ‚y )NÚtest_partition_timestampsú
2012-01-01z
2012-01-02r   rª   )ÚdatesrÇ  rG  r¬   rœ  r  r  rõ  r©  rý   rÇ  )r   rY   r   rU  r�  r   iÜ  r   )r?   r   r/   rÇ   rÍ   r¡  r=   r²  rá  rS   r@   r3   Ú	Timestamprä   r-  rh  r+   )r·  rõ   rq   r   r¾   rS   r8  r+   s           r   Útest_filter_timestamprI    s\  € ð Ð0Ñ0€Dä�H‰HØ Ð-°Ñ1Ü�B‹iñó €Eô
 �?‰?˜5Ÿ<™<¨¨	Ó2×9Ñ9À&ÔI€DÜ×Ñ�U˜D¨t¸IÕFô �?‰?œ2Ÿ9™9 w´·±¸SÓ0AÐ&BÐ%CÓDØ"(ô*€Dä�j‰j˜ i¸dÔC€Gä—‘˜Ó!¤B§L¡L°Ó$>Ñ>€IØ×#Ñ# G°IÐ#Ó>€EØ�<‰<˜Ó×'Ñ'Ó)ª_Ò<Ð<Ð<ãÜ—‘˜Ó!Ð$5 H×$5Ñ$5°d¸A¸qÓ$AÑA€IØ×#Ñ# G°IÐ#Ó>€EØ�<‰<˜Ó×'Ñ'Ó)ª_Ò<Ð<Ñ<r   c                 óP  — t        j                  dt        j                  g d¢t        j                  «       ¬«      i«      }t	        | |«      \  }}t        j                  t        |«      «      }t        j                  d«      dkD  }t        |j                  ||¬«      «      dk(  sJ ‚y )Nr[   )r   r   rv   rY   r{   r   rw   rv   rý   rY   )r?   r   r~   r   r  rÇ   rS   r_   r@   r±   rä   )r·  rõ   r   rt  rq   rS   Úfilter_s          r   Útest_filter_implicit_castrL  8  s€   € ô �H‰H�cœ2Ÿ8™8Ò$6¼R¿W¹W»YÔGÐHÓI€EÜ! '¨5Ó1�G€A€tÜ�j‰jœ˜T›Ó#€Gä�h‰h�s‹m˜aÑ€GÜˆ~×&Ñ& w°wÐ&Ó?Ó@ÀAÒEÐEÑEr   c                 ó*  — t        j                  dg d¢i«      }t        | |«      \  }}t        j                  t        |«      «      }|j                  |t        j                  d«      t        j                  d «      k(  ¬«      }|j                  dk(  sJ ‚y )NrÉ  )r[   r\   Nrý   r   )
r?   r   r  rÇ   rS   r_   rä   r@   r  rí   )r·  rõ   r   rt  rq   rS   s         r   Útest_filter_equal_nullrN  C  s}   € ô �H‰H�cÒ+Ð,Ó-€EÜ! '¨5Ó1�G€A€tÜ�j‰jœ˜T›Ó#€Gà×#Ñ#ØœŸ™ ›¬¯©°4«Ñ8ð $ó €Eð �>‰>˜QÒÐÑr   c                 óŒ  — t        j                  g d¢t        d«      D �cg c]  }t        j                  ddd|«      ‘Œ c}t        dd«      D �cg c]  }t        j                  dd|«      ‘Œ c}dœ«      }t	        | |«      \  }}t        j                  t        |«      «      }t        j                  t        j                  d«      t        j                  dd	g«      «      }|j                  ||¬
«      j                  dk(  sJ ‚t        j                  t        j                  d«      «      dk\  }|j                  ||¬
«      j                  dk(  sJ ‚t        j                  t        j                  d«      t        j                  d«      «      }|j                  |d|i¬«      }	|	d   j!                  «       g d¢k(  sJ ‚y c c}w c c}w )N)r[   r\   Nr[   r}   r   iæ  r   rÑ  rü  rÉ  r[   r\   rý   rY   rý  rv   rþ  r   r)   r   )r?   r   r/   r+   r  rÇ   rS   r_   rË  Úis_inr@   r~   rä   rí   ÚhourÚdays_betweenrh  )
r·  rõ   r:   r   rt  rq   rS   rK  r   r9  s
             r   Útest_filter_compute_expressionrS  P  so  € ä�H‰HÚ'Ü8=¸a¼ÓA¹°1Œh×Ñ  a¨¨AÕ.¸ÑAÜ5:¸1¸a´[ÓA±[°Œh×Ñ  a¨Õ+°[ÑAñó €Eô
 " '¨5Ó1�G€A€tÜ�j‰jœ˜T›Ó#€Gä�h‰h”r—x‘x “}¤b§h¡h°°S¨zÓ&:Ó;€GØ×"Ñ" 7°7Ð"Ó;×DÑDÈÒIÐIÐIä�g‰g”b—h‘h˜s“mÓ$¨Ñ)€GØ×"Ñ" 7°7Ð"Ó;×DÑDÈÒIÐIÐIä�?‰?œ2Ÿ8™8 C›=¬"¯(©(°3«-Ó8€DØ×$Ñ$ W°v¸t°nÐ$ÓE€FØ�&‰>×#Ñ#Ó%ªÒ8Ð8Ñ8ùò BùÚAs    F<
ÁGc                 ó@  — t        j                  | t        j                  d«      t        j                  «       ¬«      }t        j
                  |g«      }t        |j                  «       «      dk(  sJ ‚t        d„ |j                  «       D «       «      sJ ‚|j                  «       d   j                  |j                  «       «      sJ ‚|j                  «       j                  |j                  «       «      sJ ‚t        |j                  «       t         j                  «      sJ ‚y )NrK  r  r   c              3   óP   K  — | ]  }t        |t        j                  «      –— Œ  y ­wr   )rM   r?   r+  )r‰  rõ  s     r   rŠ  z%test_dataset_union.<locals>.<genexpr>n  s   è ø€ ÐKÑ1J¨AŒz˜!œRŸY™Y×'Ñ1Jùs   ‚$&r   )rÇ   rÎ   rc   rÉ   rÈ   ÚUnionDatasetFactoryr±   r@  r¬  r	  rC  rM   rÏ   r*  )rÀ   rÈ  rÓ   s      r   Útest_dataset_unionrW  e  sß   € Ü×'Ñ'Ø”r—‘ xÓ0Ü×#Ñ#Ó%ô€Eô ×$Ñ$ e WÓ-€Gô ˆw×&Ñ&Ó(Ó)¨QÒ.Ð.Ð.ÜÑK°×1HÑ1HÔ1JÓKÔKÐKÐKØ×"Ñ"Ó$ QÑ'×.Ñ.¨u¯}©}«Ô?Ð?Ð?Ø�?‰?Ó×#Ñ# E§M¡M£OÔ4Ð4Ð4Ü�g—n‘nÓ&¬¯
©
Ô3Ð3Ñ3r   c                 óh	  — t        j                  d|d¬«      }t        j                  d|dddg¬«      }t        j                  d|dd	¬«      }|j                  |j                  cxk7  r|j                  k7  sJ ‚ J ‚t        j                  |||g«      }t        |t         j                  «      sJ ‚d
}t        j                  t        |¬«      5  t        j                  ||g|¬«       d d d «       t        j                  dt        j                  «       fdt        j                  «       fdt        j                  «       fdt        j                  «       fdt        j                  «       fdt        j                  «       fdt        j                  «       fg«      }|j                  j                  |«      sJ ‚|j                  «       j                  j                  |«      sJ ‚t        j                  ||g«      }t        j                  dt        j                  «       fdt        j                  «       fdt        j                  «       fdt        j                  «       fdt        j                  «       fdt        j                  «       fg«      }|j                  j                  |«      sJ ‚|j                  «       j                  j                  |«      sJ ‚t        j                  dt        j                  «       fdt        j                  «       fdt        j                  «       fg«      }t        j                  ||g|¬«      }|j                  «       j                  j                  |«      sJ ‚t        j                  dt        j                  «       fdt        j                  «       fdt        j                  «       fg«      }t        j                  ||g|¬«      }|j                  «       j                  j                  |«      sJ ‚t        j                   t#        d«      dgdz  dgdz  z   dgg d¢¬«      }t%        | |¬«      \  }	}
t        j                  |
«      }t        j                  t        j&                  d¬«      5  t        j                  ||g«       d d d «       y # 1 sw Y   �Œ·xY w# 1 sw Y   y xY w)NrK  r§   rL  rÑ  Úweekr(   ©rú   rÐ   rÍ   ú/hiver¬   z$cannot pass any additional argumentsr   rË  r%   r&   r'   r¶   r·   rb   rZ  r�  r'  r{   r!  r   Ú	abcdefghj)r%   r'   r&   r¦  r   zUnable to merge)rÇ   rS   r=   rM   rÆ  r  r  rN  r?   rA   rB   rC   rD   rÌ   r	  rä   r   r/   r  rB  )r·  rÀ   rÖ  r×  Úchild3Ú	assembledÚmsgrF  r   rt  rq   Úchild4s               r   Ú&test_union_dataset_from_other_datasetsra  t  s²  € Ü�Z‰Z˜¨]À9ÔM€FÜ�Z‰Z˜	¨mÀIØ&,¨gÐ%6ô8€Fä�Z‰Z˜¨MÀ)Ø%+ô-€Fð �=‰=˜FŸM™MÔ:¨V¯]©]Ò:Ð:Ñ:Ð:Ð:ä—
‘
˜F F¨FÐ3Ó4€IÜ�i¤§¡Ô1Ð1Ð1à
0€CÜ	�‰”z¨Ö	-Ü
�
‰
�F˜FÐ#°Õ>÷ 
.ô —i‘iØ	”—‘“ÐØ	”"—(‘(“*ÐØ	”"—*‘*“,ÐØ	”"—)‘)“+ÐØ	”—‘“ÐØ	”—‘“ÐØ	”"—(‘(“*Ðð!ó €Oð ×Ñ×"Ñ" ?Ô3Ð3Ð3Ø×ÑÓ×&Ñ&×-Ñ-¨oÔ>Ð>Ð>ä—
‘
˜F FÐ+Ó,€IÜ—i‘iØ	”—‘“ÐØ	”"—(‘(“*ÐØ	”"—*‘*“,ÐØ	”"—)‘)“+ÐØ	”—‘“ÐØ	”"—(‘(“*Ðð!ó €Oð ×Ñ×"Ñ" ?Ô3Ð3Ð3Ø×ÑÓ×&Ñ&×-Ñ-¨oÔ>Ð>Ð>ä—i‘iØ	”"—(‘(“*ÐØ	”"—)‘)“+ÐØ	”—‘“Ðð!ó €Oô
 —
‘
˜F FÐ+°OÔD€IØ×ÑÓ×&Ñ&×-Ñ-¨oÔ>Ð>Ð>ä—i‘iØ	”"—(‘(“*ÐØ	”"—)‘)“+ÐØ	”B—I‘I“KÐ ð!ó €Oô
 —
‘
˜F FÐ+°OÔD€IØ×ÑÓ×&Ñ&×-Ñ-¨oÔ>Ð>Ð>ô �H‰H”e˜A“h   q¡¨B¨4°!©8Ñ 3°[ÐAÚ5ô7€Eä! '°Ô7�G€A€tÜ�Z‰Z˜Ó€Fä	�‰”r×(Ñ(Ð0AÖ	BÜ
�
‰
�F˜FÐ#Ô$÷ 
CÐ	B÷c 
.Ñ	-ú÷b 
CÐ	Bús   ÃRÑ:R(ÒR%Ò(R1c                 óš   — d}t        j                  t        |¬«      5  t        j                  g d¢| ¬«       d d d «       y # 1 sw Y   y xY w)Nz8points to a directory, but only file paths are supportedr   )rK  rÑ  r[  rË  )r  r  ÚIsADirectoryErrorrÇ   rS   )rÀ   r_  s     r   Ú4test_dataset_from_a_list_of_local_directories_raisesrd  ¶  s1   € Ø
D€CÜ	�‰Ô(°Ö	4Ü
�
‰
Ò1¸mÕL÷ 
5×	4Ñ	4ús   žAÁA
c           
      óÎ  — t        j                  t        j                  d| ¬«      t        j                  d| ¬«      t        j                  d| ¬«      g«      }t        j                  dt        j                  «       fdt        j
                  «       fdt        j                  «       fdt        j                  «       fg«      }|j                  j                  |«      sJ ‚t        j                  t        j                  d| ¬«      t        j                  d| ¬«      t        j                  d| d	¬
«      g«      }t        j                  dt        j                  «       fdt        j
                  «       fdt        j                  «       fdt        j                  «       fdt        j                  «       fdt        j                  «       fg«      }|j                  j                  |«      sJ ‚y )NrK  rË  rÑ  r[  r%   r&   r'   r(   r¬   )rú   rÍ   r¶   r·   )
rÇ   rS   r?   r=   rA   rB   rC   rD   r	  rÌ   )rÀ   rS   rF  s      r   Ú&test_union_dataset_filesystem_datasetsrf  ¼  sj  € ä�j‰jÜ
�
‰
�8¨Ô6Ü
�
‰
�9¨Ô7Ü
�
‰
�7 }Ô5ðó €Gô
 —i‘iØ	”—‘“ÐØ	”"—(‘(“*ÐØ	”"—*‘*“,ÐØ	”"—)‘)“+Ðð	!ó €Oð �>‰>× Ñ  Ô1Ð1Ð1ô �j‰jÜ
�
‰
�8¨Ô6Ü
�
‰
�9¨Ô7Ü
�
‰
�7 }À6ÔJðó €Gô
 —i‘iØ	”—‘“ÐØ	”"—(‘(“*ÐØ	”"—*‘*“,ÐØ	”"—)‘)“+ÐØ	”—‘“ÐØ	”"—(‘(“*Ðð!ó €Oð �>‰>× Ñ  Ô1Ð1Ñ1r   c                 óÞ  ‡ ‡— t        j                  g d¢g d¢dœ«      }t        j                  |‰ dz  «       dˆˆ fd„	}d }|} ||||j                  ¬«       |j                  }|} |||«       t        j                  ddg«      }t        j                  g d¢g d¢gd	d
g¬«      } |||«       t        j                  dg«      }t        j                  g d¢gd
g¬«      } |||«       t        j                  ddg«      }t        j                  g d¢t        j
                  g d¢d¬«      gd
dg¬«      } |||«       t        j                  ddg«      }t        j                  t        ‰ dz  «      |¬«      }t        j                  |d
   j                  d«      |d	   gd
d	g¬«      } |||«       t        j                  d
t        j                  t        j                  «       «      fdg«      }t        j                  t        ‰ dz  «      |¬«      }|j                  j                  |«      sJ ‚t        j                  t        d¬«      5  ‰j!                  |«       d d d «       y # 1 sw Y   y xY w)NrÏ  ©r  r  r  rZ   r2  c                 ó  •— t        j                  t        ‰dz  «      | ¬«      }|�|j                  j	                  |«      sJ ‚|j                  j	                  | «      sJ ‚‰j                  |«      }|j	                  |«      sJ ‚y )Nr2  rb   )rÇ   rS   r_   r=   r	  rä   )r=   r|  rF  rS   r9  rõ   r·  s        €€r   r”  z-test_specified_schema.<locals>._check_datasetá  su   ø€ Ü—*‘*œS ¨>Ñ!9Ó:À6ÔJˆØÐ&Ø—>‘>×(Ñ(¨Ô9Ð9Ð9à—>‘>×(Ñ(¨Ô0Ð0Ð0Ø×(Ñ(¨Ó1ˆØ�}‰}˜XÔ&Ð&Ñ&r   )rF  )r\   rC   )r[   rB   r\   r[   r¦  )r}   rÌ   ©NNNrÌ   rw   r}   )r[   rÌ   rb   z#Unsupported cast from int64 to listr   r   )r?   r   rl   rm   r=   r~   rÇ   rS   r_   rÓ  Úlist_rÌ   r	  r  r  r  rä   )r·  rõ   r   r”  r=   r|  rS   s   ``     r   Útest_specified_schemarl  Ü  s  ù€ ä�H‰Hš9ª<Ñ8Ó9€EÜ‡N�N�5˜' NÑ2Ô3ö'ð €FØ€HÙ�6˜8°U·\±\ÕBð �\‰\€FØ€HÙ�6˜8Ô$ô �Y‰YÐ(¨.Ð9Ó:€FÜ�x‰xš¢yÐ1¸#¸s¸ÔD€HÙ�6˜8Ô$ô �Y‰Y˜Ð'Ó(€FÜ�x‰xš˜¨C¨5Ô1€HÙ�6˜8Ô$ô �Y‰Y˜¨Ð7Ó8€FÜ�x‰xšÜŸ™Ò"4¸7ÔCðEà" C˜jô*€Hñ �6˜8Ô$ô �Y‰Y˜Ð(8Ð9Ó:€FÜ�j‰jœ˜W ~Ñ5Ó6¸vÔF€GÜ�x‰x˜˜s™Ÿ™¨Ó1Ø˜s™ð%à" C˜jô*€Hñ �6˜8Ô$ô �Y‰Y˜œbŸh™h¤r§x¡x£zÓ2Ð3Ð5EÐFÓG€FÜ�j‰jœ˜W ~Ñ5Ó6¸vÔF€GØ�>‰>× Ñ  Ô(Ð(Ð(Ü	�‰Ô*ØBö
Dà×Ñ Ô(÷
D÷ 
Dñ 
Dús   ÉI#É#I,c                 ó  — | dz  }t        j                  dg d¢i«      }t        j                  ||«       t        j                  dt        j
                  «       fg«      }t        j                  t        |«      gdz  |¬«      }|j                  j                  |«      sJ ‚|j                  |«      }t        j                  t        d¬«      5  |j                  «       }|j                  «        d d d «       y # 1 sw Y   y xY w)Nr2  r[   rÏ  éd   rb   z#Unsupported cast from int64 to nullr   )r?   r   rl   rm   r=   rÛ  rÇ   rS   r_   r	  rê   r  r  r  rd  re  )r·  rõ   Úfnr   r=   rS   rê   ró   s           r   Útest_incompatible_schema_hangrp    sË   € ð 
�>Ñ	!€BÜ�H‰H�cš9Ð%Ó&€EÜ‡N�N�5˜"Ôä�Y‰Y˜œbŸg™g›iÐ(Ð)Ó*€FÜ�j‰jœ#˜b›'˜ S™°Ô8€GØ�>‰>× Ñ  Ô(Ð(Ð(Ø×$Ñ$ WÓ-€GÜ	�‰Ô*ØBö
Dà×"Ñ"Ó$ˆØ�‰Ô÷
D÷ 
Dñ 
Dús   Ã!C6Ã6C?c                 óØ  — t        j                  t        j                  g d¢d¬«      t        j                  g d¢d¬«      dœ«      }t        | dz  «      }t        j                  |«      5 }t        j
                  ||j                  «      }|j                  |j                  «       d   «       |j                  «        d d d «       t        j                  |t        j                  «       ¬	«      }|j                  |«      }|j                  |«      sJ ‚t        |«       d
D ]=  }t        j                  ||¬	«      }|j                  |«      }|j                  |«      rŒ=J ‚ y # 1 sw Y   Œ¤xY w)NrÏ  r   rw   rh  rC   rZ   z
test.arrowr   r  )r¨  Úarrow)r?   r   r~   r_   Úoutput_streamÚRecordBatchFileWriterr=   Úwrite_batchrç   rC  rÇ   rS   r  rä   r	  rV   )	r·  rõ   r   rq   rH  rI  rS   r9  Ú
format_strs	            r   Útest_ipc_formatrw  (  s  € Ü�H‰Hœ2Ÿ8™8¢I°FÔ;ÜŸ8™8¢L°yÔAñCó D€Eô ˆw˜Ñ%Ó&€DÜ	×	Ñ	˜$Ô	 4Ü×)Ñ)¨$°·±Ó=ˆØ×Ñ˜5×+Ñ+Ó-¨aÑ0Ô1Ø�‰Œ÷ 
 ô
 �j‰j˜¤b×&6Ñ&6Ó&8Ô9€GØ×$Ñ$ WÓ-€FØ�=‰=˜ÔÐÐä/°Ô8ã&ˆ
Ü—*‘*˜T¨*Ô5ˆØ×(Ñ(¨Ó1ˆØ�}‰}˜UÕ#Ð#Ð#ñ '÷ 
 Ð	ús   Á*AE Å E)c           	      óÌ  — ddl m} t        j                  t        j                  g d¢d¬«      t        j                  g d¢d¬«      dœ«      }t        | d	z  «      }|j                  ||«       t        j                  |t        j                  «       ¬
«      }t        |j                  «       «      }t        |d   t        j                  «      sJ ‚|j                  |«      }|j                  d¬«       |j!                  |«      sJ ‚t#        |«       t        j                  |d¬
«      }|j                  |«      }|j                  d¬«       |j!                  |«      sJ ‚|j                  |dg¬«      }|j                  d¬«       |j!                  |j%                  dg«      «      sJ ‚|j                  |dt        j&                  d«      dz  i¬«      }|j                  d¬«       |j!                  t        j                  dt        j                  g d¢d¬«      i«      «      sJ ‚|j)                  |«      dk(  sJ ‚|j)                  |t        j&                  d«      dkD  ¬«      dk(  sJ ‚y )Nr   ©ÚorcrÏ  r   rw   rh  rC   rZ   útest.orcr  Tr@  rz  r\   r)   Úb2rv   )r  r  g333333ã?rY   r[   rý   r   )r¯   rz  r?   r   r~   r_   rm   rÇ   rS   r'  rh   rK   rM   ÚFileFragmenträ   rD  r	  rV   r¡  r@   rò   )r·  rõ   rz  r   rq   rS   r  r9  s           r   Útest_orc_formatr~  >  s  € åÜ�H‰Hœ2Ÿ8™8¢I°FÔ;ÜŸ8™8¢L°yÔAñCó D€Eô ˆw˜Ñ#Ó$€DØ‡O�O�E˜4Ô ä�j‰j˜¤b×&6Ñ&6Ó&8Ô9€GÜ�W×*Ñ*Ó,Ó-€IÜ�i ‘l¤B§O¡OÔ4Ð4Ð4Ø×$Ñ$ WÓ-€FØ
‡O�O˜€OÔØ�=‰=˜ÔÐÐä/°Ô8ä�j‰j˜ eÔ,€GØ×$Ñ$ WÓ-€FØ
‡O�O˜€OÔØ�=‰=˜ÔÐÐà×$Ñ$ W°s°eÐ$Ó<€FØ
‡O�O˜€OÔØ�=‰=˜Ÿ™ s eÓ,Ô-Ð-Ð-à×$Ñ$Ø˜$¤§¡¨£°Ñ 1Ð2ð %ó €Fð ‡O�O˜€OÔØ�=‰=Ü
�‰�$œŸ™¢°IÔ>Ð?Ó@ôð ð ð ×$Ñ$ WÓ-°Ò2Ð2Ð2Ø×$Ñ$ W´R·X±X¸c³]ÀQÑ5FÐ$ÓGÈ1ÒLÐLÑLr   c                 óX  — ddl m} t        j                  t        j                  g d¢d¬«      t        j                  g d¢d¬«      dœ«      }t        | d	z  «      }|j                  ||«       t        j                  |d
¬«      }t        |j                  |«      «      }t        |«      dk(  sJ ‚|d   j                  dk(  sJ ‚|d   j                  |j                  «       d   «      sJ ‚t        |j                  |d¬«      «      }t        |«      dk(  sJ ‚|d   j                  dk(  sJ ‚|d   j                  |j                  dd«      j                  «       d   «      sJ ‚|d   j                  dk(  sJ ‚|d   j                  |j                  dd«      j                  «       d   «      sJ ‚y )Nr   ry  rÏ  r   rw   rh  rC   rZ   r{  rz  r  r   rY   rv   )Ú
batch_size)r¯   rz  r?   r   r~   r_   rm   rÇ   rS   rh   rç   r±   rí   r	  r•  )r·  rõ   rz  r   rq   rS   r9  s          r   Útest_orc_scan_optionsr�  e  s‡  € åÜ�H‰Hœ2Ÿ8™8¢I°FÔ;ÜŸ8™8¢L°yÔAñCó D€Eô ˆw˜Ñ#Ó$€DØ‡O�O�E˜4Ô ä�j‰j˜ eÔ,€GÜ�.×+Ñ+¨GÓ4Ó5€FÜˆv‹;˜!ÒÐÐØ�!‰9×Ñ Ò"Ð"Ð"Ø�!‰9×Ñ˜E×,Ñ,Ó.¨qÑ1Ô2Ð2Ð2ä�.×+Ñ+¨GÀÐ+ÓBÓC€FÜˆv‹;˜!ÒÐÐØ�!‰9×Ñ Ò"Ð"Ð"Ø�!‰9×Ñ˜EŸK™K¨¨1Ó-×8Ñ8Ó:¸1Ñ=Ô>Ð>Ð>Ø�!‰9×Ñ Ò"Ð"Ð"Ø�!‰9×Ñ˜EŸK™K¨¨1Ó-×8Ñ8Ó:¸1Ñ=Ô>Ð>Ñ>r   c                  óÀ   — 	 ddl m}  y # t        $ rK t        j                  t
        d¬«      5  t        j                  dd¬«       d d d «       Y y # 1 sw Y   Y y xY ww xY w)Nr   ©r'  z'not built with support for the ORC filer   r:  rz  r  )rÀ  r'  r(  r  r  rN  rÇ   rS   rƒ  s    r   Útest_orc_format_not_supportedr„  |  sK   € ð*Þ1øÜò *ä�]‰]ÜÐGö
ô �J‰J�s 5Õ)÷
÷ 
ó 
úð*ús&   ‚	 ‰$A­AÁAÁA	ÁAÁAc            	      óx  — t        j                  t        d¬«      5  t        j                  t        j                  dt        d«      i«      dd¬«       d d d «       t        j                  «       } t        j                  t        d¬«      5  | j                  «        d d d «       y # 1 sw Y   ŒRxY w# 1 sw Y   y xY w)Nz9Writing datasets not yet implemented for this file formatr   r[   rª   rz  z/tmp)rÐ   r�  )
r  r  r  rÇ   r²  r?   r   r/   r'  Úmake_write_options)Úofs    r   Ú+test_orc_writer_not_implemented_for_datasetrˆ  ‡  s’   € ä	�‰ÜØIö
ô 	×ÑÜ�H‰H�cœ5 ›9Ð%Ó&¨u¸võ	
÷	
ô 
×	Ñ	Ó	€BÜ	�‰ÜØIö
ð 	×ÑÔ÷	
ð 
÷
ð 
ú÷
ð 
ús   œ7B$Â
B0Â$B-Â0B9c                 ó  — t        j                  t        j                  g d¢d¬«      t        j                  g d¢d¬«      dœ«      }t        | dz  «      }|j	                  «       j                  |d¬	«       t        j                  |t        j                  «       ¬
«      }|j                  |«      }|j                  |«      sJ ‚t        |«       t        j                  |d¬
«      }|j                  |«      }|j                  |«      sJ ‚y )NrÏ  rB   rw   rh  rC   rZ   útest.csvF©r&   r  r"  )r?   r   r~   r_   rÁ  Úto_csvrÇ   rS   r!  rä   r	  rV   )r·  rõ   r   rq   rS   r9  s         r   Útest_csv_formatr�  ™  sÒ   € ä�H‰Hœ2Ÿ8™8¢I°GÔ<ÜŸ8™8¢L°yÔAñCó D€Eô ˆw˜Ñ#Ó$€DØ	‡O�OÓ×Ñ˜T¨ÐÔ/ä�j‰j˜¤b×&6Ñ&6Ó&8Ô9€GØ×$Ñ$ WÓ-€FØ�=‰=˜ÔÐÐä/°Ô8ä�j‰j˜ eÔ,€GØ×$Ñ$ WÓ-€FØ�=‰=˜ÔÐÑr   Úcompression)Úbz2ÚgzipÚlz4Úzstdc                 óÄ  — t         j                  j                  |«      st        j                  |› d�«       t        j                  t        j                  g d¢d¬«      t        j                  g d¢d¬«      dœ«      }t        j                  «       }|dk7  r|nd	}t        | d
|› �z  «      }|j                  ||¬«      5 }|j                  «       j                  d¬«      }|j                  |j                  d«      «       d d d «       t!        j"                  |t!        j$                  «       ¬«      }	|j'                  |	«      }
|
j)                  |«      sJ ‚y # 1 sw Y   ŒWxY w)Nz support is not builtrÏ  rB   rw   rh  rC   rZ   r�  Úgzz	test.csv.©rŽ  Fr‹  re  r  )r¯   ÚCodecÚis_availabler  Úskipr?   r   r~   rc   rŠ   r_   rg   rÁ  rŒ  Úwritert  rÇ   rS   r!  rä   r	  )r·  rŽ  rõ   r   rú   Úsuffixrq   rH  Úcsv_strrS   r9  s              r   Útest_csv_format_compressedrœ  ¬  s  € ô �=‰=×%Ñ% kÔ2Ü�‰�{�mÐ#8Ð9Ô:Ü�H‰Hœ2Ÿ8™8¢I°GÔ<ÜŸ8™8¢L°yÔAñCó D€Eä×#Ñ#Ó%€JØ'¨6Ò1‰[°t€FÜˆw˜9 V HÐ-Ñ-Ó.€DØ	×	&Ñ	& t¸Ð	&Ô	EÈð —/‘/Ó#×*Ñ*°Ð*Ó7ˆØ�
‰
�7—>‘> 'Ó*Ô+÷ 
Fô �j‰j˜¤b×&6Ñ&6Ó&8Ô9€GØ×$Ñ$ WÓ-€FØ�=‰=˜ÔÐÑ÷ 
FÐ	Eús   Â?AEÅEc           	      ó®  — t        | dz  «      }t        |d«      5 }|j                  d«       d d d «       t        j                  |d¬«      }|j                  |«      }|j                  t        j                  dt        j                  g d¢«      i«      «      sJ ‚t        j                  |t        j                  t        j                  j                  d¬	«      ¬
«      ¬«      }|j                  |«      }|j                  t        j                  dt        j                  ddg«      i«      «      sJ ‚t        j                  |t        j                  t        j                  j                  dg¬«      ¬
«      ¬«      }|j                  |«      }|j                  t        j                  dt        j                  g d¢«      i«      «      sJ ‚y # 1 sw Y   �ŒŸxY w)NrŠ  Úwzskipped
col0
foo
bar
r"  r  Úskipped)Úcol0rÇ  rÈ  r   )r  r  r   rÇ  rÈ  ©rg  )rŸ  r   rÇ  rÈ  )r_   rL   r™  rÇ   rS   rä   r	  r?   r   r~   r!  r"  r$  )r·  rõ   rq   rH  rS   r9  s         r   Útest_csv_format_optionsr¢  Ç  st  € Üˆw˜Ñ#Ó$€DÜ	ˆd�CŒ˜DØ�
‰
Ð.Ô/÷ 
ä�j‰j˜ eÔ,€GØ×$Ñ$ WÓ-€FØ�=‰=Ü
�‰�)œRŸX™XÒ&<Ó=Ð>Ó?ôAð Að Aô �j‰j˜¤b×&6Ñ&6Ü—V‘V×'Ñ'°!Ð'Ó4ô'6ô 7€Gà×$Ñ$ WÓ-€FØ�=‰=œŸ™ 6¬2¯8©8°U¸E°NÓ+CÐ"DÓEÔFÐFÐFä�j‰j˜¤b×&6Ñ&6Ü—V‘V×'Ñ'°e°WÐ'Ó=ô'?ô @€Gà×$Ñ$ WÓ-€FØ�=‰=Ü
�‰�%œŸ™Ò"CÓDÐEÓFôHð Hñ H÷ 
‰ús   ›G
Ç
Gc           
      óX  — t        | dz  «      }t        |d«      5 }|j                  d«       d d d «       t        j                  |t        j
                  t        j                  j                  d¬«      ¬«      ¬«      }|j                  |«      }g d¢}|j                  |k(  sJ ‚|j                  t        j                  t        j                  d	g«      t        j                  d
g«      t        j                  dg«      t        j                  d	g«      dœ«      «      sJ ‚y # 1 sw Y   ŒôxY w)NrŠ  rž  z1,a,true,1
T)Úautogenerate_column_namesr  r  )Úf0r  r¥  r  r   r[   )r_   rL   r™  rÇ   rS   r!  r?   r"  r$  rä   rg  r	  r   r~   )r·  rõ   rq   rH  rS   r9  Úexpected_column_namess          r   Ú(test_csv_format_options_generate_columnsr§  Ü  sð   € Üˆw˜Ñ#Ó$€DÜ	ˆd�CŒ˜DØ�
‰
�>Ô"÷ 
ô �j‰j˜¤b×&6Ñ&6Ü—V‘V×'Ñ'À$Ð'ÓGô'Iô J€Gà×$Ñ$ WÓ-€FÚ4ÐØ×ÑÐ"7Ò7Ð7Ð7Ø�=‰=œŸ™¬¯©°1°#«Ü)+¯©°3°%«Ü)+¯©°4°&Ó)9Ü)+¯©°1°#«ñ#8ó 9ô :ð :ñ :÷ 
ˆús   ›D Ä D)c           	      óÀ  — t        | dz  «      }t        |d«      5 }|j                  d«       d d d «       t        j                  |d¬«      }t
        j                  j                  dgd¬«      }t        j                  |t        j                  j                  d	¬
«      ¬«      }|j                  ||¬«      }|j                  t        j                  dt        j                  g d¢«      i«      «      sJ ‚t        j                  |¬«      }t        j                  ||¬«      }|j                  |«      }|j                  t        j                  dt        j                  g d¢«      i«      «      sJ ‚t        j                  «       }|j                  ||¬«      }|j                  t        j                  dt        j                  g d¢«      i«      «      sJ ‚y # 1 sw Y   �Œ¨xY w)NrŠ  rž  zcol0
foo
spam
MYNULL
r"  r  ÚMYNULLT)Únull_valuesr-  r0  r1  )r/  rö  )Úfragment_scan_optionsr   )rÇ  ÚspamNr.  )rÇ  r¬  r©  )r_   rL   r™  rÇ   rS   r¯   r"  r4  r3  r?   r$  rä   r	  r   r~   r!  )	r·  rõ   rq   rH  rS   r/  rÒ   r9  rx  s	            r   Útest_csv_fragment_optionsr­  ì  s�  € Üˆw˜Ñ#Ó$€DÜ	ˆd�CŒ˜DØ�
‰
Ð.Ô/÷ 
ä�j‰j˜ eÔ,€GÜ—k‘k×0Ñ0¸h¸ZØEIð 1ó K€Oä×'Ñ'Ø'Ü—V‘V×'Ñ'°5Ð'Ó9ô;€Gð ×$Ñ$ WÀGÐ$ÓL€FØ�=‰=œŸ™ 6¬2¯8©8Ò4IÓ+JÐ"KÓLÔMÐMÐMä×!Ñ!°/ÔB€JÜ�j‰j˜ jÔ1€GØ×$Ñ$ WÓ-€FØ�=‰=œŸ™ 6¬2¯8©8Ò4IÓ+JÐ"KÓLÔMÐMÐMä×'Ñ'Ó)€GØ×$Ñ$ WÀGÐ$ÓL€FØ�=‰=Ü
�‰�&œ"Ÿ(™(Ò#<Ó=Ð>Ó?ôAð Añ A÷% 
‰ús   ›GÇGc                 óœ  — t        j                  t        j                  g d¢d¬«      t        j                  g d¢d¬«      dœ«      }t        | dz  «      }|j	                  «       j                  d¬	«      d
d j                  dd«      }t        |d«      5 }|j                  |«       d d d «       t        j                  |t        j                  «       ¬«      }|j                  |«      }|j                  |«      sJ ‚t        |«       t        j                  |d¬«      }|j                  |«      }|j                  |«      sJ ‚y # 1 sw Y   Œ�xY w)NrÏ  rB   rw   rh  rC   rZ   ú	test.jsonÚrecords©Úorientr   rM  ú},{ú}
{rž  r  r&  )r?   r   r~   r_   rÁ  Úto_jsonÚreplacerL   r™  rÇ   rS   r%  rä   r	  rV   ©r·  rõ   r   rq   rr   rÙ  rS   r9  s           r   Útest_json_formatr¸    s  € ä�H‰Hœ2Ÿ8™8¢I°GÔ<ÜŸ8™8¢L°yÔAñCó D€Eô ˆw˜Ñ$Ó%€DØ
�/‰/Ó
×
#Ñ
#¨9Ð
#Ó
5°a¸Ð
;×
CÑ
CÀEÈ6Ó
R€CÜ	ˆd�CŒ˜AØ	�‰�Œ÷ 
ô �j‰j˜¤b×&7Ñ&7Ó&9Ô:€GØ×$Ñ$ WÓ-€FØ�=‰=˜ÔÐÐä/°Ô8ä�j‰j˜ fÔ-€GØ×$Ñ$ WÓ-€FØ�=‰=˜ÔÐÑ÷ 
ˆús   ÂEÅEc           	      óB  — t        j                  t        j                  g d¢d¬«      t        j                  g d¢d¬«      dœ«      }t        | dz  «      }|j	                  «       j                  d¬	«      d
d j                  dd«      }t        |d«      5 }|j                  |«       d d d «       t        j                  t        d¬«      5  t        j                  |t        j                  t         j                  j!                  d¬«      ¬«      ¬«      }d d d «       t        j                  |t        j                  t         j                  j!                  d¬«      ¬«      ¬«      }|j#                  |«      }|j%                  |«      sJ ‚y # 1 sw Y   ŒäxY w# 1 sw Y   ŒƒxY w©NrÏ  rB   rw   rh  rC   rZ   r¯  r°  r±  r   rM  r³  r´  rž  ztry to increase block sizer   r{   r1  r  r  é@   )r?   r   r~   r_   rÁ  rµ  r¶  rL   r™  r  r  rN  rÇ   rS   r%  r&  r$  rä   r	  r·  s           r   Útest_json_format_optionsr¼    s?  € ä�H‰Hœ2Ÿ8™8¢I°GÔ<ÜŸ8™8¢L°yÔAñCó D€Eô ˆw˜Ñ$Ó%€DØ
�/‰/Ó
×
#Ñ
#¨9Ð
#Ó
5°a¸Ð
;×
CÑ
CÀEÈ6Ó
R€CÜ	ˆd�CŒ˜AØ	�‰�Œ÷ 
ô 
�‰”zØ9ö
;ä—*‘*˜T¬"×*;Ñ*;ÜŸ™×,Ñ,¸Ð,Ó:ô+<ô =ˆ÷
;ô
 �j‰j˜¤b×&7Ñ&7Ü—W‘W×(Ñ(°BÐ(Ó7ô'9ô :€Gà×$Ñ$ WÓ-€FØ�=‰=˜ÔÐÑ÷ 
ˆú÷
;ð 
;ús   ÂF	Ã	A
FÆ	FÆFc                 ó˜  — t        j                  t        j                  g d¢d¬«      t        j                  g d¢d¬«      dœ«      }t        | dz  «      }|j	                  «       j                  d¬	«      d
d j                  dd«      }t        |d«      5 }|j                  |«       d d d «       t        j                  t        d¬«      5  t        j                  t         j                  j                  d¬«      ¬«      }t        j                   |t        j"                  |«      ¬«      }d d d «       t        j                  t         j                  j                  d¬«      ¬«      }t        j                   |t        j"                  |«      ¬«      }|j%                  |«      }|j'                  |«      sJ ‚y # 1 sw Y   �ŒxY w# 1 sw Y   Œ™xY wrº  )r?   r   r~   r_   rÁ  rµ  r¶  rL   r™  r  r  rN  rÇ   r5  r&  r$  rS   r%  rä   r	  )	r·  rõ   r   rq   rr   rÙ  rÒ   rS   r9  s	            r   Útest_json_fragment_optionsr¾  .  s[  € ä�H‰Hœ2Ÿ8™8¢I°GÔ<ÜŸ8™8¢L°yÔAñCó D€Eô ˆw˜Ñ$Ó%€DØ
�/‰/Ó
×
#Ñ
#¨9Ð
#Ó
5°a¸Ð
;×
CÑ
CÀEÈ6Ó
R€CÜ	ˆd�CŒ˜AØ	�‰�Œ÷ 
ô 
�‰”zØ9ö
;ä×,Ñ,ÜŸ™×,Ñ,¸Ð,Ó:ô<ˆä—*‘*˜T¬"×*;Ñ*;¸GÓ*DÔEˆ÷	
;ô ×(Ñ(Ü—W‘W×(Ñ(°BÐ(Ó7ô9€Gä�j‰j˜¤b×&7Ñ&7¸Ó&@ÔA€GØ×$Ñ$ WÓ-€FØ�=‰=˜ÔÐÑ÷ 
‰ú÷
;ð 
;ús   ÂF3Ã	AG Æ3F=Ç G	c                 óh  — t        | dz  «      }dD �]  \  }}t        |d«      5 }|j                  |«       d d d «       t        j                  dt        j
                  «       fdt        j
                  «       fg«      }t        j                  dgdgdœ|¬	«      }t        j                  j                  |¬
«      }t        j                  |¬«      }	t        j                  ||	¬«      }
|
j                  j                  |«      sJ ‚|
j                  «       j                  |«      r�ŒJ ‚ y # 1 sw Y   ŒóxY w)NrŠ  ))úlatin-1s   a,b
un,éléphant)Úutf16s    ÿþa , b 
 u n , é l é p h a n t Úwbr[   r\   Úunõ
   Ã©lÃ©phantrZ   rb   ©Úencodingr  r  )r_   rL   r™  r?   r=   rD   r   r"  r$  rÇ   r!  rS   r	  rä   )r·  rõ   rq   rÆ  Ú
input_rowsrH  rF  rG  rö  r  Údataset_transcodeds              r   Útest_encodingrÉ  E  s  € Üˆw˜Ñ#Ó$€Dô!Ñˆ�*ô �$˜Ô Ø�J‰J�zÔ"÷ ô Ÿ)™) c¬2¯9©9«;Ð%7¸#¼r¿y¹y»{Ð9KÐ$LÓMˆÜŸ™¨¨Ø)5¨ñ#8Ø@OôQˆô —v‘v×)Ñ)°8Ð)Ó<ˆÜ×&Ñ&°LÔAˆÜŸZ™Z¨°[ÔAÐØ!×(Ñ(×/Ñ/°Ô@Ð@Ð@Ø!×*Ñ*Ó,×3Ñ3°NÖCÐCÐCñ%!÷ Ðús   ¤D(Ä(D1	c                 ó,  — t        | dz  «      }t        |d«      5 }|j                  d«       d d d «       t        j                  dt        j
                  «       fdt        j
                  «       fg«      }t        j                  dgdgdœ|¬	«      }t        j                  |d
|¬«      }t        j                  t        j                  j                  d¬«      5  |j                  |«       d d d «       t        j                  j!                  d¬«      }t        j"                  |¬«      }t        j                  ||¬«      }	|	j                  j%                  |«      sJ ‚|	j                  «       j%                  |«      sJ ‚y # 1 sw Y   �ŒRxY w# 1 sw Y   Œ¢xY w)NrŠ  rÂ  s   é,b
un,éléphantô   Ã©r\   rÃ  rÄ  )rË  r\   rb   r"  rÎ  zinvalid UTF8r   rÀ  rÅ  r  r  )r_   rL   r™  r?   r=   rD   r   rÇ   rS   r  r  r¯   rU  ra  rä   r"  r$  r!  r	  )
r·  rõ   rq   rH  rF  rG  rS   rö  r  rÈ  s
             r   Útest_column_names_encodingrÌ  ^  s>  € Üˆw˜Ñ#Ó$€Dä	ˆd�DÔ	˜TØ�
‰
Ð/Ô0÷ 
ô —i‘i $¬¯	©	«Ð!4°s¼B¿I¹I»KÐ6HÐ IÓJ€OÜ—X‘X d VØ%1 Nñ4Ø<KôM€Nô �j‰j˜ e°OÔD€GÜ	�‰”w—{‘{×/Ñ/°~Ö	FØ×Ñ Ô(÷ 
Gô —6‘6×%Ñ%¨yÐ%Ó9€LÜ×"Ñ"°Ô=€KÜŸ™ D°Ô=ÐØ×$Ñ$×+Ñ+¨OÔ<Ð<Ð<Ø×&Ñ&Ó(×/Ñ/°Ô?Ð?Ñ?÷% 
Ñ	ú÷ 
GÐ	Fús   ›E=ÃF
Å=FÆ
Fz$ignore:Feather V1:DeprecationWarningc                 óŒ  — ddl m} t        j                  t        j                  g d¢d¬«      t        j                  g d¢d¬«      dœ«      }| d	z  }|j                  «         ||t        |d
z  «      «       t        j                  |t        j                  «       ¬«      }|j                  |«      }|j                  |«      sJ ‚t        |«       t        j                  |d¬«      }|j                  |«      }|j                  |«      sJ ‚|j                  |ddg¬«      }|j                  ddgk(  sJ ‚|j                  |ddg¬«      }|j                  ddgk(  sJ ‚ ||t        |dz  «      d¬«       t        j                  t         «      5  |j                  t        j                  |d¬«      «       d d d «       y # 1 sw Y   y xY w)Nr   )r  rÏ  r   rw   rh  rC   rZ   Úfeather_datasetr  r  r  r\   r[   r)   zdata1.featherr   ©Úversion)Úpyarrow.featherr  r?   r   r~   r¯  r_   rÇ   rS   r  rä   r	  rV   rg  r  r  rN  )r·  rõ   r  r   rh  rS   r9  s          r   Útest_feather_formatrÒ  v  s�  € å-ä�H‰Hœ2Ÿ8™8¢I°FÔ;ÜŸ8™8¢L°yÔAñCó D€Eð Ð)Ñ)€GØ‡M�M„OÙ�%œ˜W ~Ñ5Ó6Ô7ä�j‰j˜¬×)9Ñ)9Ó);Ô<€GØ×$Ñ$ WÓ-€FØ�=‰=˜ÔÐÐä/°Ô8ä�j‰j˜¨Ô3€GØ×$Ñ$ WÓ-€FØ�=‰=˜ÔÐÐð ×$Ñ$ W°s¸C°jÐ$ÓA€FØ×Ñ 3¨ *Ò,Ð,Ð,Ø×$Ñ$ W°s¸C°jÐ$ÓA€FØ×Ñ 3¨ *Ò,Ð,Ð,ñ �%œ˜W Ñ6Ó7ÀÕCÜ	�‰”zÕ	"Ø×Ñ¤§
¡
¨7¸9Ô EÔF÷ 
#×	"Ñ	"ús   Æ
'F:Æ:G)r‘  r’  Úbrotlic                 óÄ  — t        j                  t        j                  dgdz  d¬«      t        j                  g d¢dz  d¬«      dœ«      }t         j                  j	                  |«      st        j                  «        | d	z  }|j                  «        t        j                  «       }| d
z  }|j                  «        t        j                  |t        |dz  «      ||j                  d ¬«      ¬«       |dk(  r‚t        j                  t        d¬«      5  |j                  |¬«      }d d d «       t        j                  t        d¬«      5  t        j                  |«      }|j                  |¬«      }d d d «       y |j                  |¬«      }t        j                  |t        |dz  «      ||¬«       t        j                  |t        j                  «       ¬«      }	|j!                  |	«      }
|
j#                  |«      sJ ‚|dz  dz  }|j%                  «       j&                  }|dz  dz  }|j%                  «       j&                  }||k  sJ ‚y # 1 sw Y   �Œ&xY w# 1 sw Y   y xY w)Nr   é,  r   rw   rh  rn  rC   rZ   Úfeather_dataset_compressedÚfeather_dataset_uncompressedz
data.arrowr•  ©rÐ   Úfile_optionsrÓ  zCompression typer   r  úpart-0.arrow)r?   r   r~   r–  r—  r  r˜  r¯  rÇ   r  r²  r_   r†  r  rN  rS   rä   r	  ÚstatÚst_size)r·  rŽ  rõ   r   rh  r  Úuncompressed_basedirÚwrite_optionsÚcodecrS   r9  Úcompressed_fileÚcompressed_sizeÚuncompressed_fileÚuncompressed_sizes                  r   Útest_feather_format_compressedrä  —  s  € ô �H‰Hœ2Ÿ8™8 Q C¨¡G°&Ô9ÜŸ8™8¢L°Ñ$4¸9ÔEñGó H€Eä�8‰8× Ñ  Ô-Ü�‰ŒàÐ4Ñ4€GØ‡M�M„OÜ×"Ñ"Ó$€Kà"Ð%CÑCÐØ×ÑÔ Ü×ÑØÜÐ  <Ñ/Ó0ØØ ×3Ñ3ÀÐ3ÓEõ	ð �hÒÜ�]‰]œ:Ð-?Ö@Ø'×:Ñ:Ø'ð ;ó )ˆM÷ Aô �]‰]œ:Ð-?Ö@Ü—H‘H˜[Ó)ˆEØ'×:Ñ:ÀuÐ:ÓMˆM÷ Að 	à×2Ñ2¸{Ð2ÓK€MÜ×ÑØÜˆG�lÑ"Ó#ØØ"õ	ô �j‰j˜¬×)9Ñ)9Ó);Ô<€GØ×$Ñ$ WÓ-€FØ�=‰=˜ÔÐÐà Ñ,¨~Ñ=€OØ%×*Ñ*Ó,×4Ñ4€OØ,¨|Ñ;¸nÑLÐØ)×.Ñ.Ó0×8Ñ8ÐØÐ.Ò.Ð.Ñ.÷1 AÑ@ú÷ Að 	ús   ÄI	Å(IÉ	IÉIc           	      ód  — g }t        d«      D ]h  }t        j                  |gdz  t        d«      D �cg c]  }t        j                  «       ‘Œ c}dœ«      }t	        j
                  |t        | «      |¬«       Œj t        | dz  «      }t	        j                  j                  ||¬«       ||fS c c}w )zO
    Creates a simple (flat files, no nested partitioning) Parquet dataset
    r{   rª   r°  ©Úmetadata_collectorÚ	_metadata)	r/   r?   r   r   rl   r�  r_   Úwrite_metadatar=   )Ú	root_pathrç  r:   rt  r   Úmetadata_paths         r   Ú_create_parquet_dataset_simplerì  Ì  s£   € ð
 Ðä�1ŽXˆÜ—‘   b¡Ì%ÐPRÌ)Ó0TÉ)ÀQ´·±µÈ)Ñ0TÑUÓVˆÜ
×ÑØ”3�y“>Ð6Hö	
ð ô ˜	 KÑ/Ó0€Mä×ÑØ�‰�mØ-õð ˜%ÐÐùò 1Us   ²B-c                 ó  — | dz  }t        |«      \  }}t        j                  |«      }|j                  j	                  |j                  «      sJ ‚t        |j                  «      dk(  sJ ‚|j                  «       }|j                  dk(  sJ ‚y )Nr�  r{   é(   )	rì  rÇ   Úparquet_datasetr=   r	  r±   r
  rä   rí   )r·  rê  rë  r   rS   r9  s         r   Útest_parquet_dataset_factoryrð  â  s�   € ð Ð0Ñ0€IÜ9¸)ÓDÑ€M�5Ü× Ñ  Ó/€GØ�>‰>× Ñ  §¡Ô.Ð.Ð.Üˆw�}‰}Ó Ò"Ð"Ð"Ø×ÑÓ€FØ�?‰?˜bÒ Ð Ñ r   Úwin32z'Results in FileNotFoundError on Windows)Úreasonc                 ó¸  — t        j                  d«      }| dz  }t        |«      \  }}|j                  d«      }t	        j
                  t	        j                  |«      «      }t        j                  ||¬«      }|j                  j                  |j                  «      sJ ‚t        |j                  «      dk(  sJ ‚|j                  «       }|j                  dk(  sJ ‚y )Nr<  r�  r=  rË  r{   rî  )r  r*  rì  rú   rc   r‹   r&  rÇ   rï  r=   r	  r±   r
  rä   rí   )	r·  r<  rê  rë  r   rB  rú   rS   r9  s	            r   Ú#test_parquet_dataset_factory_fsspecrô  î  sÂ   € ô × Ñ  Ó*€Fð Ð0Ñ0€IÜ9¸)ÓDÑ€M�5ð ×!Ñ! &Ó)€Iô —‘¤×!1Ñ!1°)Ó!<Ó=€JÜ× Ñ  ¸:ÔF€GØ�>‰>× Ñ  §¡Ô.Ð.Ð.Üˆw�}‰}Ó Ò"Ð"Ð"Ø×ÑÓ€FØ�?‰?˜bÒ Ð Ñ r   c                 óà  — | dz  }t        j                  dgdz  t        j                  j	                  d«      dœ«      }g }t        j                  |t        |«      |¬«       t        |dz  «      }t        j                  |j                  ||¬«       t        j                  |«      }|j                  j                  |j                  «      sJ ‚|j                  «       }|j                  dk(  sJ ‚y )Nr�  r   rª   r°  ræ  rè  )r?   r   r]  r   Úrandnrl   r�  r_   ré  r=   rÇ   rï  r	  rä   rí   )r·  rê  r   rç  rë  rS   r9  s          r   Ú&test_parquet_dataset_factory_roundtripr÷    sÎ   € ð Ð0Ñ0€IÜ�H‰H˜Q˜C "™H¬B¯I©I¯O©O¸BÓ,?Ñ@ÓA€EØÐÜ×ÑØŒs�9‹~Ð2Dõô ˜	 KÑ/Ó0€Mä×ÑØ�‰�mØ-õô × Ñ  Ó/€GØ�>‰>× Ñ  §¡Ô.Ð.Ð.Ø×ÑÓ€FØ�?‰?˜bÒ Ð Ñ r   c                 ó  — g }t        d«      D ]l  }t        j                  dt        t        |dz  |dz   dz  «      «      i«      }| |› d�z  }t	        j
                  |||¬«       |d   j                  |› d�«       Œn t        | dz  «      }t	        j                  j                  ||«       t        j                  |«      }|j                  «       }|j                  d«      j                  «       }|t        t        dd	«      «      k(  sJ ‚y )
Nrª   r  r   rX   ræ  rM  rè  r   rn  )r/   r?   r   rh   rl   rm   Úset_file_pathr_   ré  r=   rÇ   rï  rä   r-  rh  )	r·  Ú	metadatasr:   r   Ú
table_pathrë  rS   Úscanned_tableÚscanned_cols	            r   Ú"test_parquet_dataset_factory_orderrþ  !  sö   € ð €Iô �2ŽYˆÜ—‘Ø”4œ˜a ™d Q q¡S¨"¡HÓ-Ó.Ð/ó1ˆà !  H˜~Ñ-ˆ
Ü
�‰�u˜j¸YÕGØ�"‰×#Ñ# q c¨ NÕ3ð ô ˜ +Ñ-Ó.€MÜ×Ñ�e—l‘l M°9Ô=Ü× Ñ  Ó/€Gà×$Ñ$Ó&€MØ×&Ñ& tÓ,×6Ñ6Ó8€KØœ$œu Q¨›}Ó-Ò-Ð-Ñ-r   c                 ó¨  — | dz  }t        |«      \  }}t        |j                  d«      «      d   j                  «        t	        j
                  |«      }|j                  j                  |j                  «      sJ ‚t        |j                  «      dk(  sJ ‚t        j                  t        «      5  |j                  «        d d d «       y # 1 sw Y   y xY w)NÚtest_parquet_dataset_invalidú	*.parquetr   r{   )rì  rh   ÚglobÚunlinkrÇ   rï  r=   r	  r±   r
  r  r  r  rä   )r·  rê  rë  r   rS   s        r   Ú$test_parquet_dataset_factory_invalidr  7  s¥   € ð Ð8Ñ8€IÜ9¸)ÓDÑ€M�5äˆ�‰˜Ó	$Ó% aÑ(×/Ñ/Ô1Ü× Ñ  Ó/€GØ�>‰>× Ñ  §¡Ô.Ð.Ð.Üˆw�}‰}Ó Ò"Ð"Ð"Ü	�‰Ô(Õ	)Ø×ÑÔ÷ 
*×	)Ñ	)ús   Â.CÃCc                 óª  — t        t        | j                  d«      «      «      }t        j                  |d   «      j
                  j                  «       }g }|D ][  }t        j                  |«      j                  }|j                  t        |j                  | «      «      «       |j                  |«       Œ] | dz  }t        j                  |||¬«       |S )Nr  r   rè  ræ  )rh   r3  Úrglobrl   r‚  r=   Úto_arrow_schemarÅ  rù  r_   r°  r0   ré  )rê  Úparquet_pathsr=   rç  rq   rÅ  rë  s          r   Ú_create_metadata_filer	  E  s¶   € äœ 	§¡°Ó <Ó=Ó>€MÜ�^‰^˜M¨!Ñ,Ó-×4Ñ4×DÑDÓF€FàÐÛˆÜ—>‘> $Ó'×0Ñ0ˆØ×Ñœs 4×#3Ñ#3°IÓ#>Ó?Ô@Ø×!Ñ! (Õ+ð ð
  Ñ+€MÜ×ÑØ�Ð2Dõð Ðr   c           
      ó¨  — t        j                  t        j                  t        d«      «      t        j                  t        j
                  j                  d«      «      t        j                  t	        j                  ddgd«      «      gg d¢¬«      }|j                  ddi«      }t        j                  |t        | «      d	g¬
«       t        | «      |fS )Nr�  r[   r\   rª   r¤  r¦  rÆ   r'   r¾   r›  )r?   r   r~   r/   r]  r   rö  r\  rG   rl   r�  r_   r	  )rê  r   s     r   Ú#_create_parquet_dataset_partitionedr  W  sœ   € Ü�H‰HÜ
�‰”�r“ÓœRŸX™X¤b§i¡i§o¡o°bÓ&9Ó:Ü
�‰”—‘˜C ˜: rÓ*Ó+ð-ò #ô€Eð
 ×)Ñ)¨5°'Ð*:Ó;€EÜ×Ñ˜œs 9›~¸v¸hÕGÜ  Ó+¨UÐ2Ð2r   c                 ó  — | dz  }t        |«      \  }}t        j                  d¬«      }t        j                  ||¬«      }|j                  j                  |j                  «      sJ ‚t        |j                  «      dk(  sJ ‚|j                  «       }|j                  dk(  sJ ‚|j                  «       j                  d«      j                  d¬	«      }|j                  «       }t        j                  j                  ||«       y )
NÚ(test_parquet_dataset_factory_partitionedr¬   rœ  rì  rv   r�  r  T©Údrop)r  rÇ   rÍ   rï  r=   r	  r±   r
  rä   rí   rÁ  Úsort_valuesÚreset_indexr3   ÚtestingÚassert_frame_equal)r·  rê  rë  r   rÍ   rS   r9  r|  s           r   r  r  b  sÚ   € ð ÐDÑD€IÜ>¸yÓIÑ€M�5ä—?‘?¨&Ô1€LÜ× Ñ  ¸\ÔJ€Gà�>‰>× Ñ  §¡Ô.Ð.Ð.Üˆw�}‰}Ó Ò"Ð"Ð"Ø×ÑÓ€FØ�?‰?˜bÒ Ð Ð ð ×ÑÓ×+Ñ+¨DÓ1×=Ñ=À4Ð=ÓH€FØ�‰Ó €HÜ‡J�J×!Ñ! &¨(Õ3r   c                 óF  — | dz  }t        |«      \  }}t        j                  |d¬«      }|j                  j	                  |j                  «      sJ ‚d|j                  j
                  v sJ ‚t        |j                  «       «      }d|d   j                  j
                  v sJ ‚y )NÚ%test_parquet_dataset_factory_metadatar¬   rì  ó   keyr   )	r  rÇ   rï  r=   r	  rÅ  rh   rK   r“  )r·  rê  rë  r   rS   r  s         r   r  r  v  s•   € ð ÐAÑA€IÜ>¸yÓIÑ€M�5ä× Ñ  ¸VÔD€GØ�>‰>× Ñ  §¡Ô.Ð.Ð.Ø�W—^‘^×,Ñ,Ñ,Ð,Ð,ä�W×*Ñ*Ó,Ó-€IØ�Y˜q‘\×1Ñ1×:Ñ:Ñ:Ð:Ñ:r   c                 óâ  — |\  }}| dz  }t        |«      \  }} ||g«      5  t        j                  |t        j                  d¬«      |¬«      }d d d «        |g «      5  t	        j                  «       «      }d d d «        |g «      5  t	        j                  t        j                  d«      dkD  «      «       d d d «        |g «      5  d   j                  t        j                  d«      dkD  «       d d d «        |g «      5  d   j                  «       }	|	d   j                  «        d d d «       y # 1 sw Y   ŒçxY w# 1 sw Y   ŒÉxY w# 1 sw Y   Œ”xY w# 1 sw Y   ŒexY w# 1 sw Y   y xY w)NÚ#test_parquet_dataset_lazy_filteringr¬   rœ  )rÍ   rú   r  é   r   )	rì  rÇ   rï  rÍ   rh   rK   r@   r  r·  )
r·  r¢   rc   rš   rê  rë  rt  rS   r  Úrg_fragmentss
             r   r  r  …  s=  € ð 'Ñ€Bˆð
 Ð?Ñ?€IÜ5°iÓ@Ñ€M�1ñ 
�}�oÕ	&Ü×$Ñ$ØÜŸ™°Ô7Øôˆ÷ 
'ñ 
�bÕ	Ü˜×.Ñ.Ó0Ó1ˆ	÷ 
ñ 
�bÕ	ÜˆW×"Ñ"¤2§8¡8¨D£>°BÑ#6Ó7Ô8÷ 
ñ 
�bÕ	Ø�!‰×'Ñ'¬¯©°«¸Ñ(;Ô<÷ 
ñ 
�bÕ	Ø  ‘|×6Ñ6Ó8ˆØ�Q‰×0Ñ0Ô2÷ 
Ð	÷' 
'Ð	&ú÷ 
Ð	ú÷ 
Ð	ú÷ 
Ð	ú÷ 
Ð	ús;   ¢-D5ÁEÂ	1EÃ
+EÄ'E%Ä5D>ÅE
ÅEÅE"Å%E.c                 óH  — t        j                  dg d¢i«      }| dz  }|j                  |«       t        j                  |«      }|j                  |«      j                  }|j                  |dg¬«      j                  }d|j                  v sJ ‚|j                  |d¬«      sJ ‚y )Nr[   rÏ  r´  r)   s   pandasTr;  )	r3   r4   rú  rÇ   rS   rä   r=   rÅ  r	  )r·  rõ   rH   rq   rS   r=   rc  s          r   Útest_dataset_schema_metadatar  ®  sš   € ô 
�‰�sšIÐ&Ó	'€BØ�^Ñ#€DØ‡M�M�$ÔÜ�j‰j˜Ó€Gà×$Ñ$ WÓ-×4Ñ4€FØ%×.Ñ.¨wÀÀÐ.ÓF×MÑMÐð ˜Ÿ™Ñ'Ð'Ð'à�=‰=Ð)¸$ˆ=Ô?Ð?Ñ?r   c                 óè  — t        j                  dt        j                  g d¢d¬«      i«      }t        j                  |t        | dz  «      «       t        j                  dt        j                  «       fg«      }t        j                  | dz  d|¬«      }|j                  |t        j                  d«      dkD  ¬	«      }|d   j                  |d   j                  d
«      j                  d«      «      sJ ‚t        |j!                  «       «      d   }|j                  |t        j                  d«      dkD  |¬«      }|d   j                  |d   j                  d
«      j                  d«      «      sJ ‚y )Nrš  r  rÌ   rw   r2  r§   rÎ  rv   rý   rB   r   rý  )r?   r   r~   rl   rm   r_   r=   rB   rÇ   rS   rä   r@   r	  rÓ  r•  rh   rK   )r·  rõ   r   r=   rS   ÚfilteredrT   s          r   Útest_filter_mismatching_schemar  À  s<  € ô �H‰H�eœRŸX™X¢l¸ÔAÐBÓC€EÜ‡N�N�5œ#˜g¨Ñ6Ó7Ô8ô �Y‰Y˜¤§¡£
Ð+Ð,Ó-€FÜ�j‰jØ�.Ñ ¨¸6ôC€Gð
 ×&Ñ& w´r·x±xÀ³ÈÑ7JÐ&ÓK€HØ�E‰?×!Ñ! %¨¡,×"3Ñ"3°GÓ"<×"BÑ"BÀ1Ó"EÔFÐFÐFä�G×)Ñ)Ó+Ó,¨QÑ/€HØ×&Ñ&ØœŸ™ %›¨1Ñ,°Vð 'ó =€Hà�E‰?×!Ñ! %¨¡,×"3Ñ"3°GÓ"<×"BÑ"BÀ1Ó"EÔFÐFÑFr   c                 óœ  — t        j                  dj                  «       t        t	        d«      «      dœ«      }t        | dz  «      }t        j                  ||dg¬«       t        j                  |d¬«      }|j                  |«      }|j                  |dg¬	«      }|j                  d«      j                  |j                  d«      «      sJ ‚y )
Nza a b br{   r  r;  r¾   r›  r¬   rì  r)   )r?   r   rA  rh   r/   r_   rl   r�  rÇ   rS   rä   r-  r	  )r·  rõ   r   rq   rS   Úall_colsÚ	part_onlys          r   Ú+test_dataset_project_only_partition_columnsr#  Ö  s¨   € ô �H‰H˜iŸo™oÓ/¼¼UÀ1»X»ÑGÓH€Eäˆw˜Ñ'Ó(€DÜ×Ñ˜˜t°V°HÕ=Ü�j‰j˜¨FÔ3€Gà×&Ñ& wÓ/€HØ×'Ñ'¨¸&¸Ð'ÓB€Ià�?‰?˜6Ó"×)Ñ)¨)×*:Ñ*:¸6Ó*BÔCÐCÑCr   c           	      óÒ  — t        j                  dt        j                  g d¢d¬«      i«      }| dz  }|j	                  |d¬«       t        j                  |dt        j                  dt        j                  «       fg«      ¬	«      }t        j                  dt        j                  g d¢t        j                  «       «      i«      }|j                  |«      j                  |«      sJ ‚y )
Nrš  rj  Úobject©Údtypez(test_dataset_project_null_column.parquetr¯   rø  r§   rÎ  )r3   r4   r]  r~   rú  rÇ   rS   r?   r=   rB   r   rä   r	  )r·  rõ   rH   rÙ  rS   r|  s         r   Ú test_dataset_project_null_columnr(  æ  s¯   € ô 
�‰�uœbŸh™hÒ'9ÀÔJÐKÓ	L€BàÐ<Ñ<€AØ‡M�M�!˜I€MÔ&ä�j‰j˜ 9Ü "§	¡	¨E´2·8±8³:Ð+>Ð*?Ó @ôB€Gä�x‰x˜¤§¡Ò);¼R¿X¹X»ZÓ HÐIÓJ€HØ×"Ñ" 7Ó+×2Ñ2°8Ô<Ð<Ñ<r   c                 óŒ  — ddl m} t        j                  g d¢g d¢g d¢dœ«      }|j	                  || dz  «       t        j                  | dz  d¬	«      }|j                  |t        j                  d
«      t        j                  d«      j                  dd¬«      t        j                  d«      dk(  dœ¬«      }t        j                  g d¢t        j                  g d¢d¬«      g d¢dœ«      }|j                  |«      sJ ‚t        j                  t        d¬«      5  |j                  |d
d
i¬«       d d d «       y # 1 sw Y   y xY w)Nr   ©r  rÏ  )r!  r(  r)  rf  rü  r  r  r  rÉ  rý  rÌ   F©Úsaferþ  r[   )Ú	A_renamedÚB_as_intÚC_is_ar)   rw   )TFFzExpected an Expressionr   )r¯   r  r?   r   r  rÇ   rS   rä   r@   rÓ  r~   r	  r  r  r  )r·  rõ   r  r   rS   r9  r|  s          r   Útest_dataset_project_columnsr0  ô  s  € åÜ�H‰Hš9ª<ºoÑNÓO€EØ×Ñ˜% ¨>Ñ!9Ô:ä�j‰j˜ >Ñ1¸)ÔD€GØ×$Ñ$ WÜ—X‘X˜c“]Ü—H‘H˜S“M×&Ñ& w°UÐ&Ó;Ü—(‘(˜3“- 3Ñ&ñ7Ð$ó €Fô
 �x‰xÚÜ—H‘HšY¨WÔ5Ú&ñó €Hð
 �=‰=˜Ô"Ð"Ð"ô 
�‰”yÐ(@Ö	AØ×Ñ °#°s°ÐÔ<÷ 
B×	AÑ	Aús   ÄD:Ä:Ec                 óä  — t        | «      \  }}t        j                  |«      }t        |j                  t        j
                  «      sJ ‚t        | «      \  }}t        j                  |«      }t        |j                  t        j
                  «      sJ ‚t        j                  |d¬«      }|j                  }|€J ‚t        |t        j                  «      sJ ‚|j                  t        j                  dt        j                  «       fg«      k(  sJ ‚t        |j                  «      dk(  sJ ‚|j                  d   t        j                  g d¢t        j                  «       «      k(  sJ ‚t        j                  t        j                  dt        j                  «       fg«      d¬«      }t        |t        j                  «      sJ ‚t        |j                  «      dk(  sJ ‚t        d„ |j                  D «       «      sJ ‚t        j                  ||¬«      }|j                  }t        |t        j                  «      sJ ‚|j                  t        j                  dt        j                  «       fg«      k(  sJ ‚t        |j                  «      dk(  sJ ‚t        d	„ |j                  D «       «      sJ ‚t        j                  |d¬«      }t        j                  t!        |j#                  «       «      |j                  |j$                  |j&                  ¬
«      }|j                  �J ‚| dz  }t)        |«      \  }}t        j*                  |d¬«      }|j                  }|€J ‚t        |t        j                  «      sJ ‚|j                  t        j                  dt        j,                  «       fg«      k(  sJ ‚t        |j                  «      dk(  sJ ‚t/        |j                  d   j1                  «       «      ddhk(  sJ ‚y )Nr¬   rì  r¾   r   r   )r   r   rv   rœ  c              3   ó$   K  — | ]  }|d u –— Œ
 y ­wr   r   rˆ  s     r   rŠ  z6test_dataset_preserved_partitioning.<locals>.<genexpr>,  ó   è ø€ Ð4Ñ"3˜Qˆq�DŒyÑ"3ùrŒ  c              3   ó$   K  — | ]  }|d u –— Œ
 y ­wr   r   rˆ  s     r   rŠ  z6test_dataset_preserved_partitioning.<locals>.<genexpr>3  r3  rŒ  rÿ   zdata-partitioned-metadatar[   r\   )r  rÇ   rS   rM   rÍ   rË   rê  rª  r=   r?   rÌ   r±   rœ  r~   r¬  r  rh   rK   rÐ   rú   r  rï  rD   r�   rh  )	r·  rt  rq   rS   ré  r¾   r«  rê  rë  s	            r   Ú#test_dataset_preserved_partitioningr5    sG  € ô " 'Ó*�G€A€tÜ�j‰j˜Ó€GÜ�g×*Ñ*¬B×,DÑ,DÔEÐEÐEô 3°7Ó;Ñ€J�Ü�j‰j˜Ó€GÜ�g×*Ñ*¬B×,DÑ,DÔEÐEÐEô �j‰j˜¨FÔ3€GØ×Ñ€DØÐÐÐÜ�dœB×/Ñ/Ô0Ð0Ð0Ø�;‰;œ"Ÿ)™) f¬b¯h©h«jÐ%9Ð$:Ó;Ò;Ð;Ð;Üˆt× Ñ Ó! QÒ&Ð&Ð&Ø×Ñ˜QÑ¤2§8¡8ªI´r·x±x³zÓ#BÒBÐBÐBô �?‰?œ2Ÿ9™9 v¬r¯x©x«zÐ&:Ð%;Ó<ÀVÔL€DÜ�dœB×/Ñ/Ô0Ð0Ð0Üˆt× Ñ Ó! QÒ&Ð&Ð&ÜÑ4 $×"3Ò"3Ó4Ô4Ð4Ð4Ü�j‰j˜¨DÔ1€GØ×Ñ€DÜ�dœB×/Ñ/Ô0Ð0Ð0Ø�;‰;œ"Ÿ)™) f¬b¯h©h«jÐ%9Ð$:Ó;Ò;Ð;Ð;äˆt× Ñ Ó! QÒ&Ð&Ð&ÜÑ4 $×"3Ò"3Ó4Ô4Ð4Ð4ô �j‰j˜¨FÔ3€GÜ×#Ñ#ÜˆW×"Ñ"Ó$Ó%¨g¯n©nØ�~‰~¨'×*<Ñ*<ô€Hð × Ñ Ð(Ð(Ð(ð Ð5Ñ5€IÜ:¸9ÓEÑ€M�1Ü× Ñ  ¸VÔD€GØ×Ñ€DØÐÐÐÜ�dœB×/Ñ/Ô0Ð0Ð0Ø�;‰;œ"Ÿ)™) f¬b¯i©i«kÐ%:Ð$;Ó<Ò<Ð<Ð<Üˆt× Ñ Ó! QÒ&Ð&Ð&ô ˆt× Ñ  Ñ#×-Ñ-Ó/Ó0°S¸#°JÒ>Ð>Ñ>r   c                 óÔ  — t        j                  t        j                  dt        j                  «       «      t        j                  dt        j                  t        j
                  «       t        j                  «       «      «      g«      }t        j                  g d¢t        t        d«      «      dœ|¬«      }t        | dz  «      }t        j                  ||dg¬«       t        j                  | dz  «      }|j                  d«      j                  «       |j                  d«      j                  «       k(  sJ ‚|j                  d«      j!                  |j                  d«      «      sJ ‚y )	Nrš  r¾   )NNr[   r[   r{   r  rb   r;  r›  )r?   r=   r@   rB   rz   rÌ   rD   r   rh   r/   r_   rl   r�  r_  r-  rh  r	  )r·  r=   r   rq   Úactual_tables        r   Ú+test_write_to_dataset_given_null_just_worksr8  K  s  € ô �Y‰YÜ
�‰�œŸ™›
Ó#Ü
�‰�œŸ™¤r§x¡x£z´2·9±9³;Ó?Ó@ðó €Fô �H‰HÒ4Ü!¤%¨£(›^ñ-Ø5;ô=€Eô ˆw˜Ñ'Ó(€DÜ×Ñ˜˜t°V°HÕ=ä—=‘= ¨>Ñ!9Ó:€Lð ×Ñ˜vÓ&×0Ñ0ó Ø	�‰�fÓ	×	'Ñ	'Ó	)ò*ð *ð *à×Ñ˜uÓ%×,Ñ,¨U¯\©\¸%Ó-@ÔAÐAÑAr   c                 ó„   — dd l m}  |j                  |  |j                  |ddfg«      ¬«      } |j                  | |«      S )Nr   Ú	ascendingÚat_end)rÒ   )Úpyarrow.computeÚcomputeÚsort_indicesÚSortOptionsrï   )ÚtabÚsort_colrË  Úsorted_indicess       r   Ú_sort_tablerC  `  sC   € Ý Ø$�R—_‘_Ø�^�R—^‘^ h°¸XÐ%FÐ$GÓHôJ€Nàˆ2�7‰7�3˜Ó'Ð'r   c                 ó`  — |xs |}t        j                  | |d|d¬«       t        |j                  d«      «      }t	        |«      t	        |«      k(  sJ ‚t        j
                  |d|¬«      }t        |j                  «       |«      j                  t        | j                  «       |«      «      sJ ‚y )Nrr  F©rÐ   rÍ   rÝ   Ú*r©  )	rÇ   r²  rh   r  r�   rS   rC  rä   r	  )rS   r�  Úexpected_filesrA  Úbase_dir_pathrÍ   Ú
file_pathsr«  s           r   Ú_check_dataset_roundtriprJ  g  s©   € à!Ò- X€Mä×Ñ�W˜h¨wØ".¸EõCô �m×)Ñ)¨#Ó.Ó/€JÜˆz‹?œc .Ó1Ò1Ð1Ð1ô �z‰zØ˜g°LôB€Hô �x×(Ñ(Ó*¨HÓ5×<Ñ<Ü�G×$Ñ$Ó&¨Ó1ô3ð 3ñ 3r   c                 ó  — | dz  }|j                  «        t        |«      }t        j                  |«      }| dz  }|dz  g}t	        |t        |«      |d|«       | dz  }|dz  g}t	        |||d|«       | dz  }|dz  g}t        | «      5  t	        |d|d|«       d d d «       | dz  }|j                  «        t        |«      }t        j                  |«      }| d	z  }|dz  g}t	        |t        |«      |d|«       y # 1 sw Y   ŒbxY w)
Nr®  zsingle-file-targetrÚ  r[   zsingle-file-target2zsingle-file-target3z./single-file-target3r¸  zsingle-directory-target)r¯  r  rÇ   rS   rJ  r_   r
   r‘  )r·  rp   rt  rS   ÚtargetrG  s         r   Útest_write_datasetrM  z  s(  € ð ˜-Ñ'€IØ‡O�OÔÜ˜IÓ&€AÜ�j‰j˜Ó#€Gð Ð+Ñ+€FØ˜~Ñ-Ð.€NÜ˜W¤c¨&£k°>À3ÈÔOð Ð,Ñ,€FØ˜~Ñ-Ð.€NÜ˜W f¨n¸cÀ6ÔJð Ð,Ñ,€FØ˜~Ñ-Ð.€NÜ	�GÕ	Ü ØÐ,¨n¸cÀ6ô	K÷ 
ð
 Ð,Ñ,€IØ‡O�OÔÜ" 9Ó-€AÜ�j‰j˜Ó#€GàÐ0Ñ0€FØ˜~Ñ-Ð.€NÜ˜W¤c¨&£k°>À3ÈÕO÷ 
Ð	ús   Â	C:Ã:Dc                 óR  — | dz  }t        |«      }t        j                  d¬«      }t        j                  ||¬«      }| dz  }|dz  |dz  dz  |dz  |dz  dz  g}t        j                  t	        j
                  d	t	        j                  «       fg«      d¬«      }t        |t        |«      |d
||¬«       | dz  }|dz  |dz  dz  |dz  |dz  dz  g}t        j                  t	        j
                  d	t	        j                  «       fg«      «      }t        |t        |«      |d
||¬«       y )NÚpartitionedr¬   rœ  rì  zpartitioned-hive-targetúpart=arÚ  úpart=br¾   r  úpartitioned-dir-targetr[   r\   )	r  rÇ   rÍ   rS   r?   r=   rD   rJ  r_   )r·  rp   rt  rÍ   rS   rL  Úexpected_pathsr¶  s           r   Útest_write_dataset_partitionedrT  ž  s6  € ð ˜-Ñ'€IÜ+¨IÓ6€AÜ—?‘?¨&Ô1€LÜ�j‰j˜°Ô>€Gð Ð0Ñ0€Fà�Ñ˜6 HÑ,¨~Ñ=Ø�Ñ˜6 HÑ,¨~Ñ=ð€Nô Ÿ/™/Ü
�	‰	�FœBŸI™I›KÐ(Ð)Ó*°6ô;ÐäØ”�V“˜n¨d°FØ(õ*ð
 Ð/Ñ/€Fà�‰�f˜s‘l ^Ñ3Ø�‰�f˜s‘l ^Ñ3ð€Nô Ÿ/™/Ü
�	‰	�FœBŸI™I›KÐ(Ð)Ó*ó,ÐäØ”�V“˜n¨d°FØ(ö*r   c                 ó¤  — t        j                  g d¢g d¢dœ«      }t        j                  || ddg¬«       t        j                  | ddg¬«      }|j
                  }|D �ch c]9  }t        t        j                  |«      j                  | «      j                  «      ’Œ; }}|h d£k(  sJ ‚|j                  «       }|j                  |«      sJ ‚y c c}w )NrS  rU  rZ   r¨  r\   r©  >   r  rT  rÐ  ©r?   r   rÇ   r²  rS   r
  r_   r–  r—  r°  r˜  rä   r	  ©r·  r   r¸  r
  rÙ  Úpartitioning_dirsr¹  s          r   Ú#test_write_dataset_with_field_namesrY  ¿  s¿   € Ü�H‰HÒ+²/ÑBÓC€Eä×Ñ�U˜G¨EØ#& %õ)ô —
‘
˜7¨5À¸uÔE€IØ�O‰O€EáBGóÙBG¸QŒŒG�L‰L˜‹O×'Ñ'¨Ó0×7Ñ7Õ8À%ð ð ð ¢Ò/Ð/Ð/à×(Ñ(Ó*€OØ×!Ñ! %Ô(Ð(Ñ(ùòó   Á >Cc                 ó¤  — t        j                  g d¢g d¢dœ«      }t        j                  || ddgd¬«       t        j                  | dd¬«      }|j
                  }|D �ch c]9  }t        t        j                  |«      j                  | «      j                  «      ’Œ; }}|h d	£k(  sJ ‚|j                  «       }|j                  |«      sJ ‚y c c}w )
NrS  rU  rZ   r¨  r\   r¬   )rÐ   rÍ   Úpartitioning_flavorr©  >   úb=xúb=yúb=zrV  rW  s          r   Ú(test_write_dataset_with_field_names_hiver`  Ð  sÁ   € Ü�H‰HÒ+²/ÑBÓC€Eä×Ñ�U˜G¨EØ#& %¸VõEô —
‘
˜7¨5¸vÔF€IØ�O‰O€EáBGóÙBG¸QŒŒG�L‰L˜‹O×'Ñ'¨Ó0×7Ñ7Õ8À%ð ð ð Ò 5Ò5Ð5Ð5à×(Ñ(Ó*€OØ×!Ñ! %Ô(Ð(Ñ(ùòrZ  c                 ó  — t        j                  g d¢g d¢g d¢dœ«      }t        j                  || ddg¬«       t        j                  | ddg¬«      }t        j                  «       5 }t        j                  |j                  ddg¬	«      |ddg¬«       t        j                  |ddg¬«      }|j                  «       }t        |j                  «       «      |j                  d
«      j                  «       k(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)NrS  rU  rÏ  rf  r¨  r\   r©  r}   r)   r[   )r?   r   rÇ   r²  rS   r°  r±  rê   rä   r¾  r2  Údrop_columns©r·  r   rS   Útempdir2r¸  r¹  s         r   Útest_write_dataset_with_scannerre  á  sî   € Ü�H‰HÒ+²/Ú$ñ&ó '€Eô ×Ñ�U˜G¨EØ#& %õ)ô �j‰j˜¨¸c¸UÔC€Gä	×	$Ñ	$Ô	&¨(Ü
×Ñ˜Ÿ™°#°s°˜Ó<Ø!¨%¸s¸eõ	Eô —J‘J˜x°ÀSÀEÔJˆ	Ø#×,Ñ,Ó.ˆÜ�O×-Ñ-Ó/ó Ø×+Ñ+¨CÓ0×:Ñ:Ó<ò=ð 	=ñ =÷ 
'×	&Ñ	&ús   Á'BDÄDc           	      óº  ‡ ‡	‡
‡‡‡‡‡‡— t        j                  «       Š G ˆfd„dt        «      }t        j                   |t        j
                  «       «      «      Št        j                  t        j                  dt        j                  «       «      g«      }t        j                  t        j                  t        t        d«      «      «      g|¬«      Š	dŠ
d}dŠd	Šˆ	ˆ
ˆˆfd
„}t        j                  j!                   |«       |d	¬«      Št        j"                  ˆˆˆ fd„¬«      }|j%                  «        	 t'        j&                  «       Šˆfd„}d}d} |«       dk  r/‰
|kD  r
‰
|k(  rd	}n"‰
}t'        j(                  d«        |«       dk  rŒ/|sJ ‚	 dŠ‰j+                  «        |j-                  «        y # dŠ‰j+                  «        |j-                  «        w xY w)Nc                   ó   •— e Zd Zˆ fd„Zy)ú6test_write_dataset_with_backpressure.<locals>.GatingFsc                 ó^   •— ‰j                  «        | j                  j                  ||¬«      S )N©rÅ  )Úwaitr”   rg   )r   rq   rÅ  Úconsumer_gates      €r   rg   zItest_write_dataset_with_backpressure.<locals>.GatingFs.open_output_streamý  s)   ø€ à×ÑÔ Ø—8‘8×.Ñ.¨t¸hÐ.ÓGÐGr   N)r   r   r   rg   )rl  s   €r   ÚGatingFsrh  ü  s	   ø„ õ	Hr   rm  r9   r  rb   r   é    éÈ   Tc               3   óh   •K  — ‰‰k  r(‰sy t        j                  d«       ‰dz  Š‰ –— ‰‰k  rŒ'y y ­w)Ng{®Gáz„?r   )rñ  Úsleep)rt   Úbatches_readÚendÚ
keep_goings   €€€€r   Úcounting_generatorz@test_write_dataset_with_backpressure.<locals>.counting_generator  s:   øè ø€ à˜SÒ ÙØÜ�J‰J�tÔØ˜AÑˆLØŠKð ˜SÕ ùs   ƒ,2°2rå  c                  óH   •— t        j                  ‰t        ‰«      d‰ ¬«      S )Nr§   r  )rÇ   r²  r_   )Ú	gating_fsrê   r·  s   €€€r   r$  z6test_write_dataset_with_backpressure.<locals>.<lambda>  s   ø€ ”r×'Ñ'Ø”S˜“\¨)À	õKr   )rL  c                  ó2   •— t        j                   «       ‰ z
  S r   )rñ  )Ústarts   €r   Údurationz6test_write_dataset_with_backpressure.<locals>.duration   s   ø€ Ü—9‘9“; Ñ&Ð&r   Frª   rÒ  )Ú	threadingÚEventr   rc   r‹   rŠ   r?   r=   r@   rÌ   rj   r~   rh   r/   rÇ   r`  rk   ÚThreadry  rñ  rq  r�   rÌ  )r·  rm  r=   Úmin_backpressureru  Úwrite_threadrz  Ú
last_valueÚbackpressure_probably_hitrt   rr  rl  rs  rw  rt  rê   ry  s   `        @@@@@@@@r   Ú$test_write_dataset_with_backpressurer‚  ô  s™  ÿø€ ô —O‘OÓ%€Mö
H”<ô Hô
 —‘¡¬×);Ñ);Ó)=Ó >Ó?€Iä�Y‰YœŸ™ ¬¯©«Ó4Ð5Ó6€Fô �O‰OœRŸX™X¤d¬5°Ó+;Ó&<Ó=Ð>ÀvÔN€EØ€LØÐØ
€CØ€J÷ô �j‰j×%Ñ%ÙÓ V¸ð &ó ?€Gô ×#Ñ#õKôL€Lð ×ÑÔð!Ü—	‘	“ˆô	'ð ˆ
Ø$)Ð!Ù‹j˜2ŠoØÐ.Ò.Ø :Ò-Ø04Ð-ØØ)�
Ü�J‰J�sŒOñ ‹j˜2‹oñ )Ð(Ñ(ð
 ˆ
Ø×ÑÔØ×ÑÕøð ˆ
Ø×ÑÔØ×ÑÕús   Ä8AF6 ÆF6 Æ6$Gc                 óÔ  — t        j                  g d¢g d¢dœ«      }t        j                  || ddg¬«       t        j                  | ddg¬«      }t        j                  «       5 }t        j                  ||ddg¬«       t        j                  |ddg¬«      }|j                  «       }t        |j                  «       «      |j                  «       k(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)NrU  rÏ  ©r\   r}   r¨  r\   r©  )
r?   r   rÇ   r²  rS   r°  r±  rä   r¾  r2  rc  s         r   Útest_write_dataset_with_datasetr…  A  s¾   € Ü�H‰Hš?²Ñ;Ó<€Eä×Ñ�U˜G¨EØ#& %õ)ô �j‰j˜¨¸c¸UÔC€Gä	×	$Ñ	$Ô	&¨(Ü
×Ñ˜ (Ø %°S°Eõ	;ô —J‘J˜x°ÀSÀEÔJˆ	Ø#×,Ñ,Ó.ˆÜ�O×-Ñ-Ó/Ó0°E·O±OÓ4EÒEÐEÑE÷ 
'×	&Ñ	&ús   Á$A0CÃC'c           	      óX  — | dz  }t        j                  g d¢g d¢dœ«      }t        j                  t        j                  t        j
                  dt        j                  «       «      g«      d¬«      }d„ }t        j                  |||d	¬
«       t        j                  g d¢g d¢dœ«      }t        j                  t         j                  «      5  t        j                  |||d	¬
«       d d d «       t        j                  ddgi«      }|dz  dz  }t        j                  j                  ||«       t        j                  |||d	d¬«       t        j                  g d¢g d¢dœ«      }t        j                  | d	|¬«      j                  «       } |||«       |j!                  «       sJ ‚t        j                  |||d	d¬«       t        j                  g d¢g d¢dœ«      }t        j                  | d	|¬«      j                  «       } |||«       |j!                  «       rJ ‚y # 1 sw Y   �Œ9xY w)NrÇ   rU  rÏ  r„  r}   r¬   )r=   rÃ  c                 óæ   — | j                  «       j                  d«      j                  d¬«      }|j                  «       j                  d«      j                  d¬«      }|j                  |«      sJ ‚y )Nr\   Tr  )rÁ  r  r  r	  )r¹  rº  Údf1Údf2s       r   Úcompare_tables_ignoring_orderzGtest_write_dataset_existing_data.<locals>.compare_tables_ignoring_orderY  sZ   € Ø�l‰l‹n×(Ñ(¨Ó-×9Ñ9¸tÐ9ÓDˆØ�l‰l‹n×(Ñ(¨Ó-×9Ñ9¸tÐ9ÓDˆØ�z‰z˜#ŒÐ‰r   r¨  r  rf  rÐ  r\   Úezc=2z	foo.arrowÚoverwrite_or_ignore)rÍ   rÐ   Úexisting_data_behavior)r‹  r  r[   r\   r}   )rv   r   rv   rY   r{   r©  Údelete_matching)r  r[   r\   r}   r  )r?   r   rÇ   rÍ   r=   r@   rB   r²  r  r  ra  r¯   r  r  rS   rä   Úexists)	r·  rp   r   rÍ   rŠ  Úextra_tableÚ
extra_fileÚoverwrittenÚreadbacks	            r   Ú test_write_dataset_existing_datar”  R  sÒ  € à˜$‘€IÜ�H‰Hš?²Ñ;Ó<€EÜ—?‘?¬"¯)©)Ü	�‰�#”r—x‘x“zÓ	"Ð#ó+%Ø-3ô5€Lòô ×Ñ�U˜I°LÈÕOä�H‰Hš?²Ñ;Ó<€Eô 
�‰”r—‘Õ	'Ü
×Ñ˜ 	Ø&2¸5õ	B÷ 
(ô —(‘(˜C # ˜<Ó(€KØ˜UÑ" [Ñ0€JÜ‡O�O×!Ñ! +¨zÔ:ô ×Ñ�U˜I°LØ!Ø,AõCô —(‘(Ú'ªoÑ>ó@€Kä�z‰z˜'¨%Ø'3ô5ß5=±X³Zð á! (¨KÔ8Ø×ÑÔÐÐô ×Ñ�U˜I°LØ!Ð:KõMô —(‘(Ò!5ºLÑIÓJ€KÜ�z‰z˜'¨%Ø'3ô5ß5=±X³Zð á! (¨KÔ8Ø× Ñ Ô"Ð"Ð"Ð"÷9 
(Ñ	'ús   ÃHÈH)c                 óf   — t        | «      D �cg c]  }t        j                  ||«      ‘Œ c}S c c}w r   )r/   r   Úrandint)rT  r®  r¯  rt  s       r   Ú_generate_random_int_arrayr—  ƒ  s)   € Ü.3°D¬kÓ:©k¨ŒF�N‰N˜3 Õ$¨kÑ:Ð:ùÒ:s   Ž.c                 óÐ   — g }g }t        | «      D ]<  }|j                  t        |d|¬«      «       |j                  dt        |«      z   «       Œ> t	        j
                  ||¬«      }|S )Nr   )rT  r®  r¯  r}   ©r9   r§  )r/   r0   r—  r_   r?   rj   )Únum_of_columnsÚnum_of_recordsr9   rg  r:   rj   s         r   Ú_generate_data_and_columnsrœ  ‡  si   € Ø€DØ€LÜ�>Ö"ˆØ�‰Ô.°NØ34Ø3AôCô 	Dð 	×Ñ˜C¤# a£&™LÕ)ð	 #ô
 —?‘?¨°LÔA€LØÐr   c                 ót   — t        t        t        j                  | «      j	                  d|› �«      «      «      S )Nz**/*.)r±   rh   r–  r—  r  ©Úbase_directoryr  s     r   Ú_get_num_of_files_generatedr   “  s-   € ÜŒt”G—L‘L Ó0×5Ñ5¸¸k¸]Ð6KÓLÓMÓNÐNr   c                 óþ  ‡— | dz  }dŠd}d}d}t        ||«      }t        j                  ||d‰|¬«       t        j                  |«      }|‰z  dz   }t        |«      |k(  sJ ‚g }t        |«      D ]V  \  }	}
|t        |
«      z  }t        j                  |d¬«      }|j                  |j                  «       j                  d	   «       ŒX |t        |«      k(  sJ ‚|t        |«      k(  sJ ‚t        ˆfd
„|D «       «      sJ ‚y )NrÇ   rª   rv   é#   r§   )rÐ   Úmax_rows_per_fileÚmax_rows_per_groupr   r  r   c              3   ó(   •K  — | ]	  }|‰k  –— Œ y ­wr   r   )r‰  Úfile_rowcountr£  s     €r   rŠ  z7test_write_dataset_max_rows_per_file.<locals>.<genexpr>¸  s   øè ø€ ð <Ù$:�=ð Ð 1Õ1Ù$:ùs   ƒ)rœ  rÇ   r²  rd  re  r±   re   r_   rS   r0   rä   Úshaper¿  r¬  )r·  rp   r¤  rš  r›  rj   Úfiles_in_dirÚexpected_partitionsÚresult_row_combinationrt  Úf_fileÚf_pathrS   r£  s                @r   Ú$test_write_dataset_max_rows_per_filer­  —  s*  ø€ à˜$‘€IØÐØÐØ€NØ€Nä-¨nØ.<ó>€Lô ×Ñ�\ 9°YØ'8Ø(:õ<ô —:‘:˜iÓ(€Lð )Ð,=Ñ=ÀÑAÐô ˆ|ÓÐ 3Ò3Ð3Ð3ð  ÐÜ˜|Ö,‰	ˆˆ6ØœS ›[Ñ(ˆÜ—*‘*˜V¨IÔ6ˆØ×%Ñ% g×&6Ñ&6Ó&8×&>Ñ&>¸qÑ&AÕBð -ð ¤#Ð&<Ó"=Ò=Ð=Ð=ØœSÐ!7Ó8Ò8Ð8Ð8Üó <Ù$:ó<ô <ð <ñ <r   c                 óþ  — | dz  }d}d}d}g d¢}|D �cg c]  }t        ||«      ‘Œ }}|dz  }t        j                  ||||d¬«       t        j                  |«      }	t        |	«      D ]Ž  \  }
}|t        |«      z  }t        j                  |d¬	«      }|j                  «       }|j                  «       }t        |«      D ]6  \  }}|j                  }|t        |«      d
z
  k  r||k\  r||k  rŒ.J ‚||k  rŒ6J ‚ Œ� y c c}w )NrÇ   rÑ  rR  rv   )
r   r   r   r   r   r{   r{   r{   r{   r{   Úmin_rows_groupr§   )r9   r�  Úmin_rows_per_groupr¤  rÐ   r  r   )rœ  rÇ   r²  rd  re  re   r_   rS   rä   rç   rí   r±   )r·  rp   r°  r¤  rš  Úrecord_sizesr›  Úrecord_batchesÚdata_sourcer¨  rt  r«  r¬  rS   r   ÚbatchesrÇ  rt   Úrows_per_batchs                      r   Ú%test_write_dataset_min_rows_per_groupr¶  ¼  s2  € à˜$‘€IØÐØÐØ€Nâ1€Lñ -9ó:á,8˜.ô 1°Ø1?õAà,8ð ð :ð Ð.Ñ.€Kä×Ñ˜.°;Ø(:Ø(:Ø%õ'ô
 —:‘:˜kÓ*€LÜ˜|Ö,‰	ˆˆ6Øœs 6›{Ñ*ˆÜ—*‘*˜V¨IÔ6ˆØ× Ñ Ó"ˆØ×"Ñ"Ó$ˆä" 7Ö+‰IˆB�Ø"Ÿ^™^ˆNØ”C˜“L 1Ñ$Ò$Ø%Ð);Ò;Ø"Ð&8Ó8ð9ð 9ð &Ð);Ó;Ð;Ð;ñ ,ñ -ùò:s   ”C:c                 óŠ  — | dz  }d}d}d}t        ||«      }|dz  }t        j                  |||d¬«       t        j                  |«      }g }|D ]i  }	|t        |	«      z  }
t        j                  |
d¬«      }|j                  «       }|j                  «       }|D ]  }|j                  |j                  «       Œ Œk |dd	gk(  sJ ‚y )
NrÇ   rð  rv   é   Úmax_rows_groupr§   )r9   r�  r¤  rÐ   r  rh  )rœ  rÇ   r²  rd  re  r_   rS   rä   rç   r0   rí   )r·  rp   r¤  rš  r›  rj   r³  r¨  Úbatched_datar«  r¬  rS   r   r´  rt   s                  r   Ú%test_write_dataset_max_rows_per_groupr»  à  sØ   € à˜$‘€IØÐØ€NØ€Nä-¨nØ.<ó>€Lð Ð.Ñ.€Kä×Ñ˜,°Ø(:Ø%õ'ô —:‘:˜kÓ*€LØ€LÛˆØœs 6›{Ñ*ˆÜ—*‘*˜V¨IÔ6ˆØ× Ñ Ó"ˆØ×"Ñ"Ó$ˆÛˆEØ×Ñ §¡Õ/ñ ð ð ˜B ˜8Ò#Ð#Ñ#r   c                 óª  — | dz  }d}d}ddg}t        j                  g d¢g d¢g|¬«      }t        j                  g d	¢g d
¢g|¬«      }t        j                  g d¢g d¢g|¬«      }t        j                  g d¢g d¢g|¬«      }t         j                  j                  ||||g«      }	t	        j
                  t        j                  ||   t        j                  «       fg«      d¬«      }
|dz  }t	        j                  |	||
|¬«       d„ } |||||«      \  }}||k(  sJ ‚|dz  }d}t	        j                  |	||
||d¬«        |||||«      \  }}||kD  sJ ‚y )NrÇ   r§   r   Úc1Úc2)r   rv   rY   r{   r   rª   )r[   r\   r}   r|   r‹  r[   r™  )r   rÑ  rU  rR  r   r   )r[   r\   r}   r|   r‹  r}   )r�  rª   ri  rh  r   r   )r[   r\   r}   r|   r‹  r|   )r†  r  r  rQ  r   r   )r[   r\   r}   r|   r‹  r\   r¬   rœ  Údefault)r9   r�  rÍ   rÐ   c                 óz   — t        | |¬«      }t        t        j                  j	                  ||   «      «      }||fS )Nrž  )r   r±   r?   r=  Úunique)r³  rj   r  Úcol_idÚnum_of_files_generatedÚnumber_of_partitionss         r   Ú_get_compare_pairz<test_write_dataset_max_open_files.<locals>._get_compare_pair  s>   € Ü!<Ø&°Kô"AÐä"¤2§:¡:×#4Ñ#4°\À&Ñ5IÓ#JÓKÐØ%Ð';Ð;Ð;r   Úmax_1rY   F)r9   r�  rÍ   rÐ   Úmax_open_filesrÝ   )	r?   rj   rE   rk   rÇ   rÍ   r=   rD   r²  )r·  rp   r  Úpartition_column_idrg  Úrecord_batch_1Úrecord_batch_2Úrecord_batch_3Úrecord_batch_4r   rÍ   Údata_source_1rÅ  rÃ  rÄ  Údata_source_2rÇ  s                    r   Ú!test_write_dataset_max_open_filesrÏ  ý  s§  € à˜$‘€IØ€KØÐØ˜$�<€LÜ—_‘_Ò+>Ú+Ið+Kà+7ô9€Nô —_‘_Ò+=Ú+Ið+Kà+7ô9€Nô —_‘_Ò+@Ú+Ið+Kà+7ô9€Nô —_‘_Ò+AÚ+Ið+Kà+7ô9€Nô �H‰H×!Ñ! >°>Ø#1°>ð#Có D€Eô —?‘?Ü
�	‰	�LÐ!4Ñ5´r·y±y³{ÐCÐDÓEØô€Lð  	Ñ)€Mä×Ñ˜%¨-Ø".°{õDò<ñ ˜M¨>¸;Ø/ó1ñ 1ÐÐ0ð "Ð%9Ò9Ð9Ð9ð  Ñ'€Mà€Nä×Ñ˜%¨-Ø".°{Ø$2ÀõGñ
 ˜M¨>¸;Ø/ó1ñ 1ÐÐ0ð "Ð$8Ò8Ð8Ñ8r   c                 ó²  — | dz  }t        |«      }t        j                  |t        j                  j	                  d¬«      ¬«      }| dz  }|dz  |dz  dz  |dz  |dz  dz  g}t        j
                  t        j                  |j                  j                  d	«      g«      d	t        j                  ddg«      i¬
«      }t        |t        |«      |d||¬«       y )NrO  Tr3  rì  rR  r[   rÚ  r\   r¾   r›  r  )r  rÇ   rS   rª  r*  rÍ   r?   r=   r@   r~   rJ  r_   )r·  rp   rt  rS   rL  rS  rÍ   s          r   Ú#test_write_dataset_partitioned_dictrÑ  B  sÞ   € ð ˜-Ñ'€IÜ+¨IÓ6€Aô �j‰jØÜ×(Ñ(×1Ñ1À4Ð1ÓHôJ€Gð Ð/Ñ/€Fà�‰�f˜s‘l ^Ñ3Ø�‰�f˜s‘l ^Ñ3ð€Nô —?‘?¤2§9¡9Ø�‰×Ñ˜VÓ$ð.&ó $'àœbŸh™h¨¨S zÓ2Ð3ô5€Lô Ø”�V“˜n¨d°FØ!ö#r   c                 ó�  ‡— | dz  }t        |«      }t        j                  |d¬«      }t        j                  t	        j
                  dt	        j                  «       fg«      d¬«      }| dz  }g Šˆfd„}t        j                  ||d|d	|¬
«       |dz  dz  |dz  dz  h}t        t        t        j                  ‰«      «      }||k(  sJ ‚| dz  }	t        j                  ||	d|d¬«       t        j                  |d|¬«      }
t        j                  |	d|¬«      }|
j                  «       j                  |j                  «       «      sJ ‚y )NrO  r¬   rì  r¾   rœ  Úpartitioned1c                 ó<   •— ‰j                  | j                  «       y r   )r0   rq   )Úwritten_fileÚpaths_writtens    €r   Úfile_visitorz4test_write_dataset_use_threads.<locals>.file_visitori  s   ø€ Ø×Ñ˜\×.Ñ.Õ/r   r  T©rÐ   rÍ   rÝ   r×  rP  úpart-0.featherrQ  Úpartitioned2FrE  r©  )r  rÇ   rS   rÍ   r?   r=   rD   r²  r�   ri   r–  r—  rä   r	  )r·  rp   rt  rS   rÍ   Útarget1r×  rS  Úpaths_written_setÚtarget2Úresult1Úresult2rÖ  s               @r   Útest_write_dataset_use_threadsrà  \  sB  ø€ ð ˜-Ñ'€IÜ+¨IÓ6€AÜ�j‰j˜°Ô8€Gä—?‘?Ü
�	‰	�FœBŸI™I›KÐ(Ð)Ó*°6ô;€Lð ˜Ñ&€GØ€Mô0ô ×ÑØ� ¸Ø |õð 	�(ÑÐ-Ñ-Ø�(ÑÐ-Ñ-ð€Nô œC¤§¡¨mÓ<Ó=ÐØ Ò.Ð.Ð.à˜Ñ&€GÜ×ÑØ� ¸Øõô �j‰j˜¨ÀÔN€GÜ�j‰j˜¨ÀÔN€GØ×ÑÓ×$Ñ$ W×%5Ñ%5Ó%7Ô8Ð8Ñ8r   c                 óR  — t        j                  dt        d«      i«      }|j                  d¬«      }t	        j
                  || ddd¬«       t	        j                  | «      j                  d¬	«      d   j                  «       }d
}|D ]  }t        |«      }||kD  s
J d|› �«       ‚|}Œ  y )Nr[   rx  rv   )Úmax_chunksizer§   T)rÐ   rÝ   Úpreserve_orderFrÜ   rM  z!Sequence expected to be ordered: )
r?   r   r/   rç   rÇ   r²  rS   rä   Úto_numpyr³  )r·  r   r´  ÚseqÚprevÚitemÚcurrs          r   Ú-test_write_dataset_use_threads_preserve_orderré  „  s§   € ô �H‰H�cœ5 ›;Ð'Ó(€EØ×Ñ¨QÐÓ/€GÜ×Ñ�W˜g¨iØ!%°dõ<ä
�*‰*�WÓ
×
&Ñ
&°5Ð
&Ó
9¸#Ñ
>×
GÑ
GÓ
I€CØ€DÛˆÜ�4‹yˆØ�dŠ{ÐEÐ?À¸uÐEÓEˆ{Ø‰ñ r   c           	      óÂ  ‡‡— t        j                  t        j                  t        d«      «      t        j                  d„ t        d«      D «       «      t        j                  dgdz  dgdz  z   «      gg d¢¬«      }| dz  }t	        j
                  ||d	d
¬«       t        |j                  d«      «      }|dz  g}t        |«      t        |«      k(  sJ ‚t	        j                  |d¬«      j                  «       }|j                  |«      sJ ‚| dz  }|dz  |dz  dz  |dz  |dz  dz  g}g Šg Šˆˆfd„}t	        j                  t        j                  dt        j                  «       fg«      d¬«      }t	        j
                  ||d
d	||¬«       t        |j                  d«      «      }t        |«      t        |«      k(  sJ ‚‰D �cg c]!  }t        j                   j#                  |«      ‘Œ# }	}‰|	k(  sJ ‚t	        j                  |d|¬«      }|j                  «       j                  |«      sJ ‚t%        ‰«      dk(  sJ ‚‰D ]  }
t'        j(                  |
«      |v rŒJ ‚ y c c}w )Nr�  c              3   óD   K  — | ]  }t        j                   «       –— Œ y ­wr   rŸ  r¡  s     r   rŠ  z#test_write_table.<locals>.<genexpr>–  r¢  r£  r[   rª   r\   r¤  r¦  Úsingleúdat_{i}.arrowr  ©Úbasename_templaterÐ   rF  zdat_0.arrowr¨  r  rO  rP  rQ  c                 ór   •— ‰j                  | j                  «       ‰j                  | j                  «       y r   )r0   rq   rT  )rÕ  Úvisited_pathsÚvisited_sizess    €€r   r×  z&test_write_table.<locals>.file_visitor¯  s+   ø€ Ø×Ñ˜\×.Ñ.Ô/Ø×Ñ˜\×.Ñ.Õ/r   r¾   r¬   rœ  )rÐ   rï  rÍ   r×  r©  rv   )r?   r   r~   r/   rÇ   r²  rh   r  r�   rS   rä   r	  rÍ   r=   rD   rd  rq   Úgetsizer±   r–  r—  )r·  r   r�  rI  rS  r9  r×  rÍ   rq   Úactual_sizesÚvisited_pathrñ  rò  s              @@r   Útest_write_tablerö  ”  s<  ù€ Ü�H‰HÜ
�‰”�r“ÓœRŸX™XÑ%I¼uÀR¼yÓ%IÓIÜ
�‰�#�˜‘˜s˜e b™jÑ(Ó)ðò "ô#€Eð
 ˜Ñ!€HÜ×Ñ�U˜HØ'6¸yõJô �h—n‘n SÓ)Ó*€JØ Ñ.Ð/€NÜˆz‹?œc .Ó1Ò1Ð1Ð1ä�Z‰Z˜¨Ô/×8Ñ8Ó:€FØ�=‰=˜ÔÐÐð ˜Ñ&€Hà�8Ñ˜X¨Ñ0°=Ñ@Ø�8Ñ˜X¨Ñ0°=Ñ@ð€Nð
 €MØ€Mõ0ô —?‘?Ü
�	‰	�FœBŸI™I›KÐ(Ð)Ó*°6ô;€Lä×Ñ�U˜H¨YØ'6Ø".¸\õKô �h—n‘n SÓ)Ó*€JÜˆz‹?œc .Ó1Ò1Ð1Ð1Ù6CÓD±m¨d”B—G‘G—O‘O DÕ)°m€LÐDØ˜LÒ(Ð(Ð(Ü�Z‰Z˜¨¸\ÔJ€FØ�?‰?Ó×#Ñ# EÔ*Ð*Ð*Üˆ}Ó Ò"Ð"Ð"Û%ˆÜ�|‰|˜LÓ)¨^Ò;Ð;Ð;ñ &ùò Es   Ç&Ic           	      óp  — t        j                  t        j                  t        d«      «      t        j                  d„ t        d«      D «       «      t        j                  dgdz  dgdz  z   «      gg d¢¬«      }t        j                  |gdz  «      }| d	z  }t        j                  ||d
¬«       t        |j                  d«      «      t        |dz  g«      k(  sJ ‚t        j                  |d¬«      j                  «       j                  |«      sJ ‚| dz  }t        j                  |g|d
¬«       t        |j                  d«      «      t        |dz  g«      k(  sJ ‚t        j                  |d¬«      j                  «       j                  |«      sJ ‚| dz  }t        j                  |j                  «       |d
¬«       t        |j                  d«      «      t        |dz  g«      k(  sJ ‚t        j                  |d¬«      j                  «       j                  |«      sJ ‚| dz  }t        j                  ||g|d
¬«       t        |j                  d«      «      t        |dz  g«      k(  sJ ‚t        j                  |d¬«      j                  «       j                  t        j                  |gdz  «      «      sJ ‚y )Nrª   c              3   óD   K  — | ]  }t        j                   «       –— Œ y ­wr   rŸ  r¡  s     r   rŠ  z6test_write_table_multiple_fragments.<locals>.<genexpr>Å  r¢  r£  r[   r   r\   r¤  r¦  rv   rì  r  r  rF  rÙ  r¨  zsingle-listÚmultiplezmultiple-table)r?   r   r~   r/   r¢  rÇ   r²  r�   r  rS   rä   r	  rç   )r·  r   r�  s      r   Ú#test_write_table_multiple_fragmentsrú  Ã  sn  € Ü�H‰HÜ
�‰”�r“ÓœRŸX™XÑ%I¼uÀR¼yÓ%IÓIÜ
�‰�#�˜‘˜c˜U Q™YÑ&Ó'ðò "ô#€Eô ×Ñ˜e˜W Q™YÓ'€Eð ˜Ñ!€HÜ×Ñ�U˜H¨YÕ7Üˆx�~‰~˜cÓ"Ó#¤s¨HÐ7GÑ,GÐ+HÓ'IÒIÐIÐIÜ�:‰:�h uÔ-×6Ñ6Ó8×?Ñ?ÀÔFÐFÐFð ˜Ñ&€HÜ×Ñ�e�W˜h¨yÕ9Üˆx�~‰~˜cÓ"Ó#¤s¨HÐ7GÑ,GÐ+HÓ'IÒIÐIÐIÜ�:‰:�h uÔ-×6Ñ6Ó8×?Ñ?ÀÔFÐFÐFð ˜Ñ#€HÜ×Ñ�U×%Ñ%Ó'¨¸)ÕDÜˆx�~‰~˜cÓ"Ó#¤sØ	Ð$Ñ	$Ð%ó('ò 'ð 'ð 'ä�:‰:�h uÔ-×6Ñ6Ó8×?Ñ?ÀÔFÐFÐFð Ð)Ñ)€HÜ×Ñ�e˜U�^ X°iÕ@Üˆx�~‰~˜cÓ"Ó#¤sØ	Ð$Ñ	$Ð%ó('ò 'ð 'ð 'ä�:‰:�h uÔ-×6Ñ6Ó8×?Ñ?Ü
×Ñ˜%˜ ™Ó#ôð ñ r   c           	      óÀ  — t        j                  t        j                  t        d«      «      t        j                  d„ t        d«      D «       «      t        j                  dgdz  dgdz  z   «      gg d¢¬«      }| dz  }t	        j
                  d	„ |j                  «       D «       ||j                  d
d¬«       t	        j                  |d¬«      j                  «       }|j                  |«      sJ ‚| dz  }t         j                  j                  |j                  |j                  «       «      }t	        j
                  ||d
d¬«       t	        j                  |d¬«      j                  «       }|j                  |«      sJ ‚| dz  }t        |«      }t	        j
                  ||d
d¬«       t	        j                  |d¬«      j                  «       }|j                  |«      sJ ‚y )Nr�  c              3   óD   K  — | ]  }t        j                   «       –— Œ y ­wr   rŸ  r¡  s     r   rŠ  z&test_write_iterable.<locals>.<genexpr>é  r¢  r£  r[   rª   r\   r¤  r¦  Úinmemory_iterablec              3   ó    K  — | ]  }|–— Œ y ­wr   r   )r‰  rt   s     r   rŠ  z&test_write_iterable.<locals>.<genexpr>î  s   è ø€ Ð<Ñ); ”eÑ);ùs   ‚rí  r¨  )r=   rï  rÐ   r  Úinmemory_readerrî  Úinmemory_pycapsule)r?   r   r~   r/   rÇ   r²  rç   r=   rS   rä   r	  rÛ  rk   r   )r·  r   r�  r9  ró   Ústreams         r   Útest_write_iterabler  ç  s�  € Ü�H‰HÜ
�‰”�r“ÓœRŸX™XÑ%I¼uÀR¼yÓ%IÓIÜ
�‰�#�˜‘˜s˜e b™jÑ(Ó)ðò "ô#€Eð
 Ð,Ñ,€HÜ×ÑÑ<¨×)9Ñ)9Ô);Ó<¸hØ!ŸL™LØ'6¸uõFô �Z‰Z˜¨Ô/×8Ñ8Ó:€FØ�=‰=˜ÔÐÐàÐ*Ñ*€HÜ×!Ñ!×.Ñ.¨u¯|©|Ø/4×/?Ñ/?Ó/AóC€Fä×Ñ�V˜X¸ÐQVÕWÜ�Z‰Z˜¨Ô/×8Ñ8Ó:€FØ�=‰=˜ÔÐÐàÐ-Ñ-€HÜ Ó&€FÜ×Ñ�V˜X¸ÐQVÕWÜ�Z‰Z˜¨Ô/×8Ñ8Ó:€FØ�=‰=˜ÔÐÑr   c           	      óž  — t        j                  t        j                  t        d«      «      t        j                  d„ t        d«      D «       «      t        j                  dgdz  dgdz  z   «      gg d¢¬«      }t	        j
                  |«      }| dz  }t	        j                  |j                  |«      |d	¬
«       |j                  t	        j
                  |d¬
«      «      }|j                  |«      sJ ‚| dz  }t	        j                  |j                  |dg¬«      |d	¬
«       |j                  t	        j
                  |d¬
«      «      }|j                  |j                  dg«      «      sJ ‚t        j                  t        d¬«      5  t	        j                  |j                  |«      ||j                  d	¬«       d d d «       y # 1 sw Y   y xY w)Nr�  c              3   óD   K  — | ]  }t        j                   «       –— Œ y ­wr   rŸ  r¡  s     r   rŠ  z%test_write_scanner.<locals>.<genexpr>  r¢  r£  r[   rª   r\   r¤  r¦  Údataset_from_scannerr  r  r¨  Údataset_from_scanner2r  r)   zCannot specify a schemar   )r=   rÐ   )r?   r   r~   r/   rÇ   rS   r²  rê   rä   r	  r¡  r  r  rN  r=   )r·  rõ   r   rS   r�  r9  s         r   Útest_write_scannerr    sx  € Ü�H‰HÜ
�‰”�r“ÓœRŸX™XÑ%I¼uÀR¼yÓ%IÓIÜ
�‰�#�˜‘˜s˜e b™jÑ(Ó)ðò "ô#€Eô �j‰j˜Ó€GàÐ/Ñ/€HÜ×Ñ�^×+Ñ+ØóØ 9õ.à×$Ñ$¤R§Z¡Z°ÀÔ%GÓH€FØ�=‰=˜ÔÐÐð Ð0Ñ0€HÜ×Ñ�^×+Ñ+¨G¸d¸VÐ+ÓDØ iõ1à×$Ñ$¤R§Z¡Z°ÀÔ%GÓH€FØ�=‰=˜Ÿ™ t fÓ-Ô.Ð.Ð.ô 
�‰”zÐ)BÖ	CÜ
×Ñ˜×/Ñ/°Ó8¸(Ø %§¡°Yõ	@÷ 
D×	CÑ	Cús   Æ3GÇGc                 ó  — t        j                  t        j                  t        d«      «      t        j                  dgdz  dgdz  z   «      j	                  «       gddg¬«      }t        j                  |j                  dg«      j                  «      }| dz  }t        j                  ||d	|¬
«       t
        j                  j                  dgd¬«      }t        j                  |d|¬
«      j                  «       }|j                  |«      sJ ‚y )Nr�  r[   rª   r\   rš  r¾   r¦  rS   r  r©  Tr3  r¨  )r?   r   r~   r/   r  rÇ   rÍ   r¡  r=   r²  rË   r*  rS   rä   r	  )r·  r   rÍ   r�  Úpartitioning_readr9  s         r   Ú!test_write_table_partitioned_dictr
    sñ   € ô �H‰HÜ
�‰”�r“ÓÜ
�‰�#�˜‘˜s˜e b™jÑ(Ó)×;Ñ;Ó=ðð �Vˆ_ô€Eô
 —?‘? 5§<¡<°°Ó#9×#@Ñ#@ÓA€Là˜Ñ"€HÜ×ÑØˆx 	¸õô
 ×0Ñ0×9Ñ9Ø	ˆ 4ð :ó )Ðä�Z‰ZØ˜Ð->ôç�hƒjð ð �=‰=˜ÔÐÑr   c           
      ó>  — t        j                  t        j                  t        d«      d¬«      t        j                  t	        j
                  ddd¬«      j                  d«      «      t        j                  t	        j                  dd	gd
«      «      gg d¢¬«      }| dz  }t        j                  ||d¬«       t        |j                  d«      «      }|dz  g}t        |«      t        |«      k(  sJ ‚t        j                  |d¬«      j                  «       }|j                  |«      sJ ‚dD �]n  }t        j                   «       }|j#                  |¬«      }dt%        |«      v sJ ‚| d|› �z  }t        j                  ||||¬«       t'        j(                  |dz  «      }	|dk(  rdnd}
|	j*                  |
k(  sJ ‚t        j                  |d¬«      j                  «       }|j,                  }|dk(  rB|j                  d|j/                  d«      j1                  t        j2                  «       «      «      }|dv rC|j                  d|j/                  d«      j1                  t        j4                  d«      «      «      }|j7                  |«      }|j                  |«      r�ŒoJ ‚ y )Nr�  rÔ  rw   rF  zdatetime64[D]r&  zdatetime64[ns]r[   r\   rª   r¤  r¦  rï  r§   r  rF  úpart-0.parquet)ú1.0ú2.4ú2.6rÏ  z(<pyarrow.dataset.ParquetFileWriteOptionsÚparquet_dataset_versionrØ  r  r  r   )r  r  r   rÑ  )r?   r   r~   r/   r]  r^  r¿  r\  rÇ   r²  rh   r  r�   rS   rä   r	  rÈ   r†  r  rl   Úread_metadataÚformat_versionr=   r@   Ú	with_typerB   rá  rÓ  )r·  r   r�  rI  rS  r9  rÐ  rÐ   ÚoptsÚmetaÚexpected_versionr=   r|  s                r   Útest_write_dataset_parquetr  4  s<  € ô �H‰HÜ
�‰”�r“ Ô*Ü
�‰”—‘˜<¨°?ÔC×JÑJØóó 	ä
�‰”—‘˜C ˜: rÓ*Ó+ð	ò
 "ô#€Eð Ð*Ñ*€HÜ×Ñ�U˜H¨YÕ7ä�h—n‘n SÓ)Ó*€JØÐ!1Ñ1Ð2€NÜˆz‹?œc .Ó1Ò1Ð1Ð1ä�Z‰Z˜¨Ô3×<Ñ<Ó>€FØ�=‰=˜ÔÐÐô )ˆÜ×%Ñ%Ó'ˆØ×(Ñ(°Ð(Ó9ˆØ9¼TÀ$»ZÑGÐGÐGØÐ6°w°iÐ@Ñ@ˆÜ
×Ñ˜ °ÀdÕKÜ×Ñ Ð+;Ñ ;Ó<ˆØ$+¨uÒ$4™5¸%ÐØ×"Ñ"Ð&6Ò6Ð6Ð6ô —‘˜H¨YÔ7×@Ñ@ÓBˆØ—‘ˆØ�eÒà—Z‘Z  6§<¡<°£?×#<Ñ#<¼R¿X¹X»ZÓ#HÓIˆFØ�nÑ$Ø—Z‘Z  6§<¡<°£?×#<Ñ#<¼R¿\¹\È$Ó=OÓ#PÓQˆFØ—:‘:˜fÓ%ˆØ�}‰}˜XÖ&Ð&Ð&ñ' )r   c           	      ór  — t        j                  t        j                  t        d«      «      t        j                  d„ t        d«      D «       «      t        j                  dgdz  dgdz  z   «      gg d¢¬«      }| dz  }t	        j
                  ||d	¬
«       t        |j                  d«      «      }|dz  g}t        |«      t        |«      k(  sJ ‚t	        j                  |d	¬
«      j                  «       }|j                  |«      sJ ‚t	        j                  t        j                  j                  |j                   j"                  ¬«      ¬«      }|j%                  d¬«      }| dz  }t	        j
                  ||||¬«       t	        j                  ||¬
«      j                  «       }|j                  |«      sJ ‚y )Nr�  c              3   óD   K  — | ]  }t        j                   «       –— Œ y ­wr   rŸ  r¡  s     r   rŠ  z)test_write_dataset_csv.<locals>.<genexpr>c  r¢  r£  r[   rª   r\   )r  r¥  Úchr1r¦  Úcsv_datasetr"  r  rF  z
part-0.csvr¡  r  F)Úinclude_headerÚcsv_dataset_noheaderrØ  )r?   r   r~   r/   rÇ   r²  rh   r  r�   rS   rä   r	  r!  r¯   r"  r$  r=   r§  r†  )r·  r   r�  rI  rS  r9  rÐ   r  s           r   Útest_write_dataset_csvr  a  so  € Ü�H‰HÜ
�‰”�r“ÓœRŸX™XÑ%I¼uÀR¼yÓ%IÓIÜ
�‰�#�˜‘˜s˜e b™jÑ(Ó)ðò "ô#€Eð
 ˜Ñ&€HÜ×Ñ�U˜H¨UÕ3ä�h—n‘n SÓ)Ó*€JØ Ñ-Ð.€NÜˆz‹?œc .Ó1Ò1Ð1Ð1ä�Z‰Z˜¨Ô/×8Ñ8Ó:€FØ�=‰=˜ÔÐÐô ×Ñ¬7¯;©;×+BÑ+BØ—\‘\×'Ñ'ð ,Có ,)ô *€Fà×$Ñ$°EÐ$Ó:€DØÐ/Ñ/€HÜ×Ñ�U˜H¨VÀ$ÕGÜ�Z‰Z˜¨Ô0×9Ñ9Ó;€FØ�=‰=˜ÔÐÑr   c           	      óJ  ‡— t        j                  t        j                  t        d«      «      t        j                  d„ t        d«      D «       «      t        j                  dgdz  dgdz  z   «      gg d¢¬«      }dŠˆfd	„}| d
z  }t	        j
                  ||d|¬«       ‰sJ ‚y )Nr�  c              3   óD   K  — | ]  }t        j                   «       –— Œ y ­wr   rŸ  r¡  s     r   rŠ  z:test_write_dataset_parquet_file_visitor.<locals>.<genexpr>~  r¢  r£  r[   rª   r\   r¤  r¦  Fc                 óX   •— | j                   �| j                   j                  dk(  rdŠy y y )NrY   T)rÅ  rV  )rÕ  Úvisitor_calleds    €r   r×  z=test_write_dataset_parquet_file_visitor.<locals>.file_visitor„  s2   ø€ à×!Ñ!Ð-Ø×%Ñ%×1Ñ1°QÒ6Ø!‰Nð 7ð .r   rï  r§   )rÐ   r×  )r?   r   r~   r/   rÇ   r²  )r·  r   r×  r�  r"  s       @r   Ú'test_write_dataset_parquet_file_visitorr#  {  s—   ø€ ä�H‰HÜ
�‰”�r“ÓœRŸX™XÑ%I¼uÀR¼yÓ%IÓIÜ
�‰�#�˜‘˜s˜e b™jÑ(Ó)ðò "ô#€Eð
 €Nô"ð Ð*Ñ*€HÜ×Ñ�U˜H¨YØ".õ0ñ Ð‰>r   c                 ór  ‡‡— t        d«      D ��cg c]  }|gdz  D ]  }|‘Œ Œ }}}t        d«      D ��cg c]  }|gdz  D ]  }|dz  ‘Œ	 Œ }}}t        j                  ||dgdz  dgdz  z   dœ«      }| dz  }t        j                  t        j
                  dt        j                  «       fg«      d	¬
«      }g Šd Šˆˆfd„}t        j                  ||d|d|¬«       |dz  dz  |dz  dz  h}	t        t        t        j                  ‰«      «      }
|
|	k(  sJ ‚‰€J ‚‰j                  dk(  sJ ‚y c c}}w c c}}w )Nr{   rª   r[   r�  r\   r¤  rO  r¾   r¬   rœ  c                 ól   •— | j                   r| j                   Š‰j                  | j                  «       y r   )rÅ  r0   rq   )rÕ  rÖ  Úsample_metadatas    €€r   r×  zAtest_partition_dataset_parquet_file_visitor.<locals>.file_visitor   s+   ø€ à× Ò Ø*×3Ñ3ˆOØ×Ñ˜\×.Ñ.Õ/r   r§   TrØ  rP  r  rQ  rv   )r/   r?   r   rÇ   rÍ   r=   rD   r²  r�   ri   r–  r—  rV  )r·  r½   rç  Úf1_valsÚf2_valsr   rê  rÍ   r×  rS  rÜ  rÖ  r&  s              @@r   Ú+test_partition_dataset_parquet_file_visitorr)  ‘  sW  ù€ ä!& q¤ÔC¡˜°u°gÀ´l¨dŠt°lˆt €GÑCÜ$)¨!¤HÔF¡H˜5¸%¸À2¼°ˆt�B‹w¸ˆw H€GÑFÜ�H‰H˜G¨7Ø"˜e b™j¨C¨5°2©:Ñ5ñ7ó 8€Eð ˜-Ñ'€IÜ—?‘?Ü
�	‰	�FœBŸI™I›KÐ(Ð)Ó*°6ô;€Lð €Mà€Oõ0ô ×ÑØˆy ¸Ø |õð 	�HÑÐ/Ñ/Ø�HÑÐ/Ñ/ð€Nô œC¤§¡¨mÓ<Ó=ÐØ Ò.Ð.Ð.ØÐ&Ð&Ð&Ø×&Ñ&¨!Ò+Ð+Ñ+ùó? DùÛFs
   ‘D-¶D3c                 ó6  — t        j                  dt        j                  dd¬«      gi«      }|d   j                  j
                  dk(  sJ ‚t        j                  || d¬«       t        j                  | dz  «      }|d   j                  j
                  dk(  sJ ‚y )Nr[   rF  zEurope/Brussels)Útzr§   r  r  )
r?   r   r3   rH  rx   r+  rÇ   r²  rl   r_  )r·  r   r9  s      r   Ú(test_write_dataset_arrow_schema_metadatar,  µ  sˆ   € ô
 �H‰H�cœBŸL™L¨Ð:KÔLÐMÐNÓO€EØ�‰:�?‰?×ÑÐ!2Ò2Ð2Ð2ä×Ñ�U˜G¨IÕ6Ü�]‰]˜7Ð%5Ñ5Ó6€FØ�#‰;×Ñ×ÑÐ"3Ò3Ð3Ñ3r   c                 óú   — ddl m} t        j                  dg d¢i«      }|j	                  ddi«      }t        j                  || d¬«       |j                  | d	z  «      j                  }|j                  ddik(  sJ ‚y )
Nr   r*  r[   rÏ  r  ó   valuer  r  rÙ  )
r¯   r  r?   r   rG   rÇ   r²  r_  r=   rÅ  )r·  r  r   r=   s       r   Ú"test_write_dataset_schema_metadatar/  Â  sr   € åä�H‰H�cš9Ð%Ó&€EØ×)Ñ)¨6°8Ð*<Ó=€EÜ×Ñ�U˜G¨IÕ6à×Ñ Ð*:Ñ :Ó;×BÑB€FØ�?‰?˜v xÐ0Ò0Ð0Ñ0r   c                 óö   — t        j                  dg d¢i«      }|j                  ddi«      }t        j                  || d¬«       t        j                  | dz  «      j                  }|j                  ddik(  sJ ‚y )Nr[   rÏ  r  r.  r§   r  r  )	r?   r   rG   rÇ   r²  rl   r_  r=   rÅ  )r·  r   r=   s      r   Ú*test_write_dataset_schema_metadata_parquetr1  Î  so   € ô �H‰H�cš9Ð%Ó&€EØ×)Ñ)¨6°8Ð*<Ó=€EÜ×Ñ�U˜G¨IÕ6ä�]‰]˜7Ð%5Ñ5Ó6×=Ñ=€FØ�?‰?˜v xÐ0Ò0Ð0Ñ0r   c           	      óì  — | \  }}}}}}}}dj                  ||||«      }t        j                  t        j                  t	        d«      «      t        j                  d„ t	        d«      D «       «      t        j                  dgdz  dgdz  z   «      gg d¢¬«      }t        j                  t        j                  d	t        j                  «       fg«      d
¬«      }	t        j                  |d|d|	¬«       t        j                  d|dd
¬«      j                  «       }
|
j                  |«      sJ ‚|j                  d«      }t        j                  ||d|	¬«       t        j                  d|dd
¬«      j                  «       }
|
j                  |«      sJ ‚|j                  d«      }t        j                  |d|d|	¬«       t        j                  d|dd
¬«      j                  «       }
|
j                  |«      sJ ‚y )Nr1  r�  c              3   óD   K  — | ]  }t        j                   «       –— Œ y ­wr   rŸ  r¡  s     r   rŠ  z(test_write_dataset_s3.<locals>.<genexpr>ä  r¢  r£  r[   rª   r\   r¤  r¦  r¾   r¬   rœ  zmybucket/datasetr  rZ  r¨  zmybucket/dataset2r©  r  rï  zmybucket/dataset3)rÐ   r?   r   r~   r/   rÇ   rÍ   r=   rD   r²  rS   rä   r	  )rW  rt  rc   rY  rZ  r[  r\  Úuri_templater   r¾   r9  rX  s               r   Útest_write_dataset_s3r5  Ù  sÎ  € ð 7HÑ3€A€qˆ"ˆa��t˜Z¨à=×DÑDØ˜
 D¨$ó	0ð ô
 �H‰HÜ
�‰”�r“ÓœRŸX™XÑ%I¼uÀR¼yÓ%IÓIÜ
�‰�#�˜‘˜s˜e b™jÑ(Ó)ð+ò #ô€Eô
 �?‰?œ2Ÿ9™9 v¬r¯y©y«{Ð&;Ð%<Ó=ÀfÔM€Dô ×ÑØÐ!¨b¸Øõô
 �Z‰ZØ r°%Àfôç�hƒjð ð �=‰=˜ÔÐÐð ×
Ñ
Ð1Ó
2€CÜ×Ñ�U˜C¨	ÀÕEä�Z‰ZØ¨°5Àvôç�hƒjð ð �=‰=˜ÔÐÐð ×
Ñ
˜jÓ
)€CÜ×ÑØˆz c°)È$õô �Z‰ZØ¨°5Àvôç�hƒjð ð �=‰=˜ÔÐÑr   aC  {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:ListBucket",
                "s3:GetObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::*"
            ]
        }
    ]
}c           	      ó‚  — ddl m} | d   \  }}}}t        | t        dd«        |dd|› d|› �d¬«      }t	        j
                  t	        j                  t        d	«      «      t	        j                  d
„ t        d	«      D «       «      t	        j                  dgdz  dgdz  z   «      gg d¢¬«      }t        j                  t	        j                  dt	        j                  «       fg«      d¬«      }t        j                  |d|dd|d¬«       t        j                  d|dd¬«      j                  «       }|j                  |«      sJ ‚t        j                  |d|dd|d¬«       t        j                  d|dd¬«      j                  «       }|j                  |«      sJ ‚t!        j"                  t$        d¬«      5  t        j                  |d|ddd¬«       d d d «        |dd|› d|› �dd¬ «      }t!        j"                  t$        d!¬«      5  t        j                  |d|ddd¬«       d d d «       y # 1 sw Y   Œ[xY w# 1 sw Y   y xY w)"Nr   )r+  r  Útest_dataset_limited_userÚ
limited123r  Úhttp)r[  r\  Úendpoint_overrideÚschemer�  c              3   óD   K  — | ]  }t        j                   «       –— Œ y ­wr   rŸ  r¡  s     r   rŠ  z1test_write_dataset_s3_put_only.<locals>.<genexpr>3  r¢  r£  r[   rª   r\   r¤  r¦  r¾   r¬   rœ  zexisting-bucketr  FrŒ  )rú   rÐ   rf   rÍ   r�  r¨  rZ  Tz&Bucket 'non-existing-bucket' not foundr   znon-existing-bucket)rú   rÐ   rf   r�  Úlimited)r[  r\  r:  r;  Úallow_bucket_creationz(Access Denied|ACCESS_DENIED))r›   r+  r   Ú_minio_put_only_policyr?   r   r~   r/   rÇ   rÍ   r=   rD   r²  rS   rä   r	  r  r  rV  )	r  r+  rY  rZ  rt  rc   r   r¾   r9  s	            r   Útest_write_dataset_s3_put_onlyr@    s4  € õ (ð ! Ñ.Ñ€Dˆ$��1ä˜yÔ*@Ø:¸LôJá	Ø.ØØ!˜F ! D 6Ð*Øô	
€Bô �H‰HÜ
�‰”�r“ÓœRŸX™XÑ%I¼uÀR¼yÓ%IÓIÜ
�‰�#��r‘˜S˜E B™JÑ&Ó'ð)ò #ô€Eô
 �?‰?œ2Ÿ9™9 v¬r¯y©y«{Ð&;Ð%<Ó=ÀfÔM€Dô ×ÑØÐ ¨RØ U¸Ø4õô �Z‰ZØ b°ÀVôç�hƒjð ð �=‰=˜ÔÐÐô ×ÑØÐ ¨RØ T¸Ø4õô �Z‰ZØ b°ÀVôç�hƒjð ð �=‰=˜ÔÐÐô 
�‰”wØEö
Gä
×ÑØÐ(°RØ¨Ø#8õ	
÷
Gñ 
ØØØ!˜F ! D 6Ð*ØØ"ô
€Bô 
�‰”wÐ&EÖ	FÜ
×ÑØÐ(°RØ¨Ø#8õ	
÷ 
GÐ	F÷!
Gð 
Gú÷  
GÐ	Fús   Æ3H)ÈH5È)H2È5H>c           
      ó  — t        j                  dd d gi«      }t        j                  || dz  «       t        j                  t        j
                  dt        j                  t        j                  «       t        j                  «       «      «      g«      }t        j                  j                  | dz  g|t        j                  «       t        j                  «       ¬«      }|j                  |«      }|j                  |k(  sJ ‚y )Nr[   r´  )rŽ   r=   rÐ   rú   )r?   r   rl   rm   r=   r@   rz   rÌ   rD   rÇ   r  r  rÈ   rc   rŠ   rä   )r·  rõ   r   r=   Úfsdss        r   Ú$test_dataset_null_to_dictionary_castrC  j  sÍ   € ô �H‰H�c˜D $˜<Ð(Ó)€EÜ‡N�N�5˜' NÑ2Ô3ä�Y‰YÜ
�‰�”b—m‘m¤B§H¡H£J´·	±	³Ó<Ó=ðó €Fô ×Ñ×*Ñ*Ø˜Ñ'Ð(ØÜ×#Ñ#Ó%Ü×%Ñ%Ó'ð	 +ó €Dð ×#Ñ# DÓ)€EØ�<‰<˜6Ò!Ð!Ñ!r   c                 ó~  — t        j                  g d¢g d¢dœ«      }t        j                  || dz  d¬«       t        j                  | dz  d¬«      }t        j                  g d¢g d¢d	œ«      }t        j                  || d
z  d¬«       t        j                  | d
z  d¬«      }|j                  |dd«      }|j                  «       t        j                  g d¢g d¢g d¢dœ«      k(  sJ ‚|j                  |ddd¬«      }|j                  «       j                  d«      t        j                  g d¢g d¢g d¢dœ«      k(  sJ ‚y )N©r   rv   rÑ  ©r[   r\   rÙ  ©ÚcolAr¼  r¹  r¨  r  ©éc   rv   r   ©ÚZrý  rÉ  )ÚcolBÚcol3rº  rH  rM  ©rÉ  rý  N©rH  r¼  rN  ú
full outer)Ú	join_type©r   rv   rÑ  rJ  ©r[   r\   rÙ  N©rÉ  rý  NrL  ©r?   r   rÇ   r²  rS   rÌ  rä   r1  ©r·  r¹  Úds1rº  Úds2r9  s         r   Útest_dataset_joinrZ  }  s%  € ä	�‰ÚÚñó 
€Bô ×Ñ�R˜ 4™°Õ6Ü
�*‰*�W˜t‘^¨EÔ
2€Cä	�‰ÚÚñó 
€Bô ×Ñ�R˜ 4™°Õ6Ü
�*‰*�W˜t‘^¨EÔ
2€Cà�X‰X�c˜6 6Ó*€FØ�?‰?Ó¤§¡ÚÚÚ ñ*ó !ò ð ð ð �X‰X�c˜6 6°\ˆXÓB€FØ�?‰?Ó×$Ñ$ VÓ,´·±ÚÚ%Ú%ñ:ó 1ò ð ñ r   c                 ó|  — t        j                  g d¢g d¢dœ«      }t        j                  || dz  d¬«       t        j                  | dz  d¬«      }t        j                  g d¢g d¢d	œ«      }t        j                  || d
z  d¬«       t        j                  | d
z  d¬«      }|j                  |d«      }|j                  «       t        j                  g d¢g d¢g d¢dœ«      k(  sJ ‚|j                  |ddd¬«      }|j                  «       j                  d«      t        j                  g d¢g d¢g d¢dœ«      k(  sJ ‚y )NrE  rF  rG  r¹  r¨  r  rI  rK  )rH  rN  rº  rH  rO  rP  rQ  Ú_r©rR  Úright_suffixrS  rT  rU  rV  rW  s         r   Útest_dataset_join_unique_keyr_  œ  s#  € ä	�‰ÚÚñó 
€Bô ×Ñ�R˜ 4™°Õ6Ü
�*‰*�W˜t‘^¨EÔ
2€Cä	�‰ÚÚñó 
€Bô ×Ñ�R˜ 4™°Õ6Ü
�*‰*�W˜t‘^¨EÔ
2€Cà�X‰X�c˜6Ó"€FØ�?‰?Ó¤§¡ÚÚÚ ñ*ó !ò ð ð ð �X‰X�c˜6¨\ÈˆXÓM€FØ�?‰?Ó×$Ñ$ VÓ,´·±ÚÚ%Ú%ñ:ó 1ò ð ñ r   c           	      ó  — t        j                  g d¢g d¢g d¢dœ«      }t        j                  || dz  d¬«       t        j                  | dz  d¬«      }t        j                  g d¢g d	¢g d
¢dœ«      }t        j                  || dz  d¬«       t        j                  | dz  d¬«      }|j                  |ddd¬«      }|j                  «       j                  d«      t        j                  g d¢g d¢g d¢g d¢g d¢gg d¢¬«      k(  sJ ‚y )NrE  ©rª   r�  é<   rF  )rH  rM  ÚcolValsr¹  r¨  r  rI  ©rJ  r�  rª   rK  rº  rH  rQ  r\  r]  rS  )rª   r�  rb  NrT  )rª   r�  NrJ  rU  )rH  rM  rc  ÚcolB_rÚ	colVals_rr¦  rV  rW  s         r   Útest_dataset_join_collisionsrg  »  sõ   € ä	�‰ÚÚÚ"ñó 
€Bô
 ×Ñ�R˜ 4™°Õ6Ü
�*‰*�W˜t‘^¨EÔ
2€Cä	�‰ÚÚÚ"ñó 
€Bô
 ×Ñ�R˜ 4™°Õ6Ü
�*‰*�W˜t‘^¨EÔ
2€Cà�X‰X�c˜6¨\ÈˆXÓM€FØ�?‰?Ó×$Ñ$ VÓ,´·±ÚÚÚÚÚð:ò @ô1Aò Að Añ Ar   c                 ó&  — t         j                  j                  g d¢g d¢dœ«      }t        j                  || dz  d¬«       t        j
                  | dz  d¬«      }t         j                  j                  g d¢g d¢g d	¢d
œ«      }t        j                  || dz  d¬«       t        j
                  | dz  d¬«      }|j                  |ddddd¬«      }|j                  «       j                  d«      t        j                  g d¢g d¢g d¢dœ«      k(  sJ ‚y )N)r   r   r   rÑ  rU  )r[   r\   r[   r\   rÙ  rG  r¹  r¨  r  )rv   r�  r  )r[   r\   Úg)r!  r)  g      @)rM  rN  ÚcolCrº  rH  r¼  r   rM  rN  ©ÚonÚbyÚ	toleranceÚright_onÚright_by)r!  NNNN)rH  r¼  rj  )
r?   rE   Úfrom_pydictrÇ   r²  rS   Ú	join_asofrä   r1  r   rW  s         r   Útest_dataset_join_asofrs  ×  sû   € ä	�‰×	Ñ	ÚÚ)ñó 
€Bô ×Ñ�R˜ 4™°Õ6Ü
�*‰*�W˜t‘^¨EÔ
2€Cä	�‰×	Ñ	ÚÚÚñó 
€Bô
 ×Ñ�R˜ 4™°Õ6Ü
�*‰*�W˜t‘^¨EÔ
2€Cà�]‰]Ø�˜6¨QØ &ð ó €Fð �?‰?Ó×$Ñ$ VÓ,´·±ÚÚ)Ú,ñ:ó 1ò ð ñ r   c                 ó  — t        j                  g d¢g d¢g d¢dœ«      }t        j                  || dz  d¬«       t        j                  | dz  d¬«      }t        j                  g d¢g d	¢g d
¢g d¢dœ«      }t        j                  || dz  d¬«       t        j                  | dz  d¬«      }|j                  |dddgd¬«      }|j                  «       j                  d«      t        j                  g d¢g d¢g d¢g d¢dœ«      k(  sJ ‚y )NrE  ra  rÏ  )rH  rM  rl  r¹  r¨  r  rd  rK  rI  rÐ  )rM  rc  rH  rl  rº  rl  rH  rM  r   ©rl  rm  rn  )Nrý  N©rH  rM  rl  rc  )r?   r   rÇ   r²  rS   rr  rä   r1  rW  s         r   Ú"test_dataset_join_asof_multiple_byrw  ó  sø   € ä	�‰ÚÚÚñó 
€Bô
 ×Ñ�R˜ 4™°Õ6Ü
�*‰*�W˜t‘^¨EÔ
2€Cä	�‰ÚÚ"ÚÚñ	ó 
€Bô ×Ñ�R˜ 4™°Õ6Ü
�*‰*�W˜t‘^¨EÔ
2€Cà�]‰]Ø�˜& &Ð)°Qð ó €Fð �?‰?Ó×$Ñ$ VÓ,´·±ÚÚÚÚ$ñ	:ó 1ò ð ñ r   c                 óÊ  — t        j                  dg d¢i«      }t        j                  || dz  d¬«       t        j                  | dz  d¬«      }t        j                  g d¢g d¢dœ«      }t        j                  || d	z  d¬«       t        j                  | d	z  d¬«      }|j                  |dg d
¬«      }|j                  «       t        j                  g d¢g d¢dœ«      k(  sJ ‚y )Nrl  rÏ  r¹  r¨  r  rK  rÐ  )rc  rl  rº  r   ru  )rL  rL  rý  )rl  rc  )r?   r   rÇ   r²  rS   rr  rä   rW  s         r   Útest_dataset_join_asof_empty_byry    sØ   € ä	�‰ØŠiðó 
€Bô ×Ñ�R˜ 4™°Õ6Ü
�*‰*�W˜t‘^¨EÔ
2€Cä	�‰Ú"Úñó 
€Bô ×Ñ�R˜ 4™°Õ6Ü
�*‰*�W˜t‘^¨EÔ
2€Cà�]‰]Ø�˜ qð ó €Fð �?‰?Ó¤§¡ÚÚ"ñ*ó !ò ð ñ r   c           
      ó   — t        j                  g d¢g d¢g d¢g d¢dœ«      }t        j                  || dz  d¬«       t        j                  | dz  d¬«      }t        j                  g d	¢g d
¢g d¢g d¢g d¢dœ«      }t        j                  || dz  d¬«       t        j                  | dz  d¬«      }d}t        j                  t        |¬«      5  |j                  |dddgddddg¬«       d d d «       y # 1 sw Y   y xY w)NrE  ra  rÏ  rF  rv  r¹  r¨  r  rd  rK  )rn  ro  rÕ  rI  rÐ  )rM  rc  ÚcolUniqrH  rl  rº  zXColumns {'colVals'} present in both tables. AsofJoin does not support column collisions.r   rl  rH  rM  r   rk  )	r?   r   rÇ   r²  rS   r  r  rN  rr  )r·  r¹  rX  rº  rY  r_  s         r   Ú!test_dataset_join_asof_collisionsr|  )  sê   € ä	�‰ÚÚÚÚ"ñ	ó 
€Bô ×Ñ�R˜ 4™°Õ6Ü
�*‰*�W˜t‘^¨EÔ
2€Cä	�‰ÚÚ"Ú"ÚÚñó 
€Bô ×Ñ�R˜ 4™°Õ6Ü
�*‰*�W˜t‘^¨EÔ
2€Cð	7ð ô 
�‰”z¨Ö	-Ø�‰Ø�D˜f fÐ-¸Ø V¨VÐ$4ð 	ô 	
÷ 
.×	-Ñ	-ús   ÃC4Ã4C=Údstyperc   Úmemc           	      óR  — t        j                  g d¢g d¢dœ«      }|dk(  r6t        j                  || dz  d¬«       t        j                  | dz  d¬«      }n!|dk(  rt        j                  |«      }nt
        ‚|j                  t        j                  d	«      d
k  «      j                  t        j                  d«      dk(  «      }|dk(  rt        j                  nt        j                  }t        ||«      sJ ‚|j                  «       t        j                  dgdgdœ«      k(  sJ ‚|j                  d«      t        j                  dgdgdœ«      k(  sJ ‚|j                  t        j                  d	«      dk  «      j                  t        j                  d	«      dkD  «      j                  t        j                  d	«      dk7  ¬«      }|j                  «       t        j                  dgdgdœ«      k(  sJ ‚t        j                  || dz  d¬«       t        j                  | dz  d¬«      }|j                  «       t        j                  dgdgdœ«      k(  sJ ‚|j                  t        j                  t        j                  ddgddgdœ«      «      dd¬«      }|j                  «       j!                  d«      t        j                  dd gddgddgdœ«      k(  sJ ‚t#        j$                  t&        «      5  |j                  d «       d d d «       t#        j$                  t(        «      5  |j+                  «        d d d «       |j,                  j/                  d«      }	|j                  t        j                  d	«      d
k  «      j1                  |	«      }
|
j                  «       t        j                  d	ddgi«      k(  sJ ‚t#        j$                  t         j2                  «      5  |j1                  |	«      j                  «        d d d «       y # 1 sw Y   �ŒxY w# 1 sw Y   ŒßxY w# 1 sw Y   y xY w)N©r   rv   rÑ  rR  ©r[   r\   rÙ  ri  rG  rc   r¹  r¨  r  r~  rH  rY   r¼  r[   r   r   rR  rÑ  rý   rv   r\   r  rª   r�  ©rM  r¼  zright outer©ÚkeysrR  rM  )rH  rM  r¼  )r?   r   rÇ   r²  rS   r  rþ   rË  r@   r  rÕ  rM   rä   rì   rê   rÌ  r1  r  r  r  rN  rK   r=   r–  Úreplace_schemara  )r·  r}  r¹  rX  r9  r|  Úr2r  ÚjoinedÚschema_without_col2Ú	newschemas              r   Útest_dataset_filterrŠ  I  s¶  € ô 
�‰ÚÚ$ñó 
€Bð �‚~Ü
×Ñ˜˜W t™^°EÕ:Ü�j‰j˜ 4™°Ô6‰Ø	�5ŠÜ�j‰j˜‹n‰ä!Ð!ð �Z‰ZœŸ™ Ó(¨1Ñ,Ó-×4Ñ4´R·X±X¸fÓ5EÈÑ5LÓM€FØ'-°¢~Œr×#Ò#¼2×;MÑ;M€HÜ�f˜hÔ'Ð'Ð'à�?‰?Ó¤§¡Ø�Ø�ñ*ó !ò ð ð ð
 �;‰;�q‹>œRŸX™XØ�Ø�ñ'ó ò ð ð ð 
�‰”B—H‘H˜VÓ$ qÑ(Ó	)×	0Ñ	0Ü
�‰�Ó˜1Ñó
ß%™g¬R¯X©X°fÓ-=ÀÑ-B˜gÓCð à�;‰;‹=œBŸH™HØ�Ø�ñ&ó ò ð ð ô ×Ñ�V˜W zÑ1¸%Õ@Ü�z‰z˜' JÑ.°uÔ=€HØ×ÑÓ¤"§(¡(Ø�Ø�ñ,ó #ò ð ð ð �[‰[œŸ™¤B§H¡HØ�R�Ø�c�
ñ.ó %ó ð  ð ó /€Fð �?‰?Ó×$Ñ$ VÓ,´·±Ø�D�	Ø�R�Ø�c�
ñ:ó 1ò ð ð ô 
�‰”yÕ	!Ø�
‰
�4Ô÷ 
"ô 
�‰”zÕ	"Ø×ÑÔ÷ 
#ð Ÿ*™*×+Ñ+¨AÓ.ÐØ—
‘
Ü
�‰�Ó˜1Ñóç�nÐ(Ó)ð ð ×ÑÓ¤2§8¡8Ø��A�ð-ó $ò ð ð ô 
�‰”r—‘Õ	'ð 	×ÑÐ1Ó2×;Ñ;Ô=÷	 
(Ð	'÷ 
"Ñ	!ú÷ 
#Ð	"ú÷ 
(Ð	'ús$   Ë/PÌ"PÏ PÐPÐPÐP&c           	      óö  — t        j                  g d¢g d¢dœ«      }t        j                  g d¢g d¢dœ«      }|dk(  rkt        j                  || dz  d¬	«       t        j                  | dz  d¬	«      }t        j                  || d
z  d¬	«       t        j                  | d
z  d¬	«      }n6|dk(  r+t        j                  |«      }t        j                  |«      }nt
        ‚t        j                  ||f«      j                  t        j                  d«      dk  t        j                  d«      dk(  z  «      }|j                  «       t        j                  g d¢g d¢dœ«      k(  sJ ‚|j                  t        j                  t        j                  ddgddgdœ«      «      dd¬«      }|j                  «       j                  d«      t        j                  g d¢g d¢g d¢dœ«      k(  sJ ‚|j                  t        j                  d«      dk  «      }|j                  t        j                  d«      dk  «      }	t        j                  t        d¬«      5  t        j                  ||	f«       d d d «       y # 1 sw Y   y xY w)Nr€  r�  rG  )r�  rª   ri  )Úhr:   Úlrc   r¹  r¨  r  rº  r~  rH  rY   r�  )r   rv   r�  )r[   r\   rŒ  rª   r�  r[   r\   r‚  r¼  z
left outerrƒ  )rª   r�  N)rH  r¼  rM  zcurrently not supportedr   )r?   r   rÇ   r²  rS   r  rþ   rË  r@   rä   rÌ  r1  r  r  rN  )
r·  r}  r¹  rº  rX  rY  Úfiltered_union_dsr‡  Úfiltered_ds1Úfiltered_ds2s
             r   Útest_union_dataset_filterr‘  š  s  € ô 
�‰ÚÚ$ñó 
€Bô 
�‰ÚÚñó 
€Bð �‚~Ü
×Ñ˜˜W t™^°EÕ:Ü�j‰j˜ 4™°Ô6ˆÜ
×Ñ˜˜W t™^°EÕ:Ü�j‰j˜ 4™°Ô6‰Ø	�5ŠÜ�j‰j˜‹nˆÜ�j‰j˜‹n‰ä!Ð!äŸ
™
 C¨ :Ó.×5Ñ5Ü	�‰�&Ó	˜AÑ	¤"§(¡(¨6Ó"2°aÑ"7Ñ8óÐð ×%Ñ%Ó'¬2¯8©8ÚÚñ5ó ,ò ð ð ð
 ×#Ñ#¤B§J¡J¬r¯x©xØ�R�Ø�c�
ñ9ó 0ó %ð  ð $ó .€Fð �?‰?Ó×$Ñ$ VÓ,´·±ÚÚÚñ:ó 1ò ð ð ð —:‘:œbŸh™h vÓ.°Ñ2Ó3€LØ—:‘:œbŸh™h vÓ.°Ñ3Ó4€Lä	�‰”zÐ)BÖ	CÜ
�
‰
�L ,Ð/Ô0÷ 
D×	CÑ	Cús   ÉI/É/I8c                 óž  — | dz  }t        |«      \  }}t        j                  |«      }|j                  «       }|j                  dk(  sJ ‚|j                  t        j                  d«      dk  «      }|j                  «       j                  dk(  sJ ‚t        j                  t        «      5  |j                  «        d d d «       y # 1 sw Y   y xY w)NÚtest_parquet_dataset_filterrî  r  rv   r�  )rì  rÇ   rï  rä   rí   rþ   rË  r@   r  r  rN  rK   )r·  rê  rë  rt  rS   r9  Úfiltered_dss          r   r“  r“  Ê  s¨   € ØÐ7Ñ7€IÜ5°iÓ@Ñ€M�1Ü× Ñ  Ó/€Gà×ÑÓ€FØ�?‰?˜bÒ Ð Ð à—.‘.¤§¡¨$£°!Ñ!3Ó4€KØ×ÑÓ!×*Ñ*¨bÒ0Ð0Ð0ä	�‰”zÕ	"Ø×!Ñ!Ô#÷ 
#×	"Ñ	"ús   Â)CÃCc                 ó²  — t        j                  t        j                  t        d«      «      gdg¬«      }t	        j
                  |«      }dt	        j                  d«      i}|j                  |¬«      }t	        j                  || dgd¬«       t        j                  t        d¬	«      5  t	        j                  || dgd¬«       d
d
d
«       y
# 1 sw Y   y
xY w)z‡
    Ensure the projected schema is used to validate partitions for scanner

    https://issues.apache.org/jira/browse/ARROW-17228
    r�  Úoriginal_columnr¦  Úrenamed_columnr)   r¨  r  z0'Column original_column does not exist in schemar   N)r?   r   r~   r/   rÇ   rS   r@   rê   r²  r  r  ÚKeyError)r·  r   Útable_datasetr*   rê   s        r   Ú4test_write_dataset_with_scanner_use_projected_schemarš  Ù  s¾   € ô �H‰H”b—h‘hœu R›yÓ)Ð*Ð3DÐ2EÔF€EÜ—J‘J˜uÓ%€Màœ"Ÿ(™(Ð#4Ó5ð€Gð ×#Ñ#¨GÐ#Ó4€Gä×ÑØ�Ð(8Ð'9À%õIô 	�‰ÜÐOö	
ô 	×ÑØ�WÐ,=Ð+>Àuõ	
÷		
÷ 	
ñ 	
ús   Â)CÃCrÐ   )r¨  r§   c           
      óž  — |dk(  rt        j                  dt        ¬«       t        j                  ddgddgd dddgd	d
id gdœddg d¢ddigdœgdœ«      }t        j                  || dz  |¬«       t        j                  | dz  |¬«      }|j                  g d¢¬«      }|j                  «       dd ddgd d
dœd gddœddg d¢dd dœgddœgk(  sJ ‚y )Nr§   zpyarrow.parquet)Úexc_typeÚabc123Úqrs456r   rv   ÚbuttonrÇ  rÈ  )rx   ÚelementÚvaluesÚstructsÚscrollÚwindow)NrY   r{   ÚfizzÚbuzz)Úuser_idúa.dotted.fieldÚinteractionr   r  )r§  zinteraction.typezinteraction.valueszinteraction.structsr¨  r)   )r¥  rÇ  )r§  rx   r¡  r¢  r¨  )
r  r*  r(  r?   r   rÇ   r²  rS   rä   rh  )r·  rÐ   r   rX  s       r   Útest_read_table_nested_columnsrª  ò  s  € à�ÒÜ×ÑÐ-¼ÕDä�H‰H (¨HÐ!5Ø)*¨A¨à (Ø�q�6¨¨u ~°tÐ&<ñ	>à hÚ¨f°fÐ-=Ð,>ñ	@ð&ñó €Eô ×Ñ�U˜G gÑ-°fÕ=Ü
�*‰*�W˜wÑ&¨vÔ
6€Cð �L‰Lò:ð ó ;€Eð �?‰?ÓØ d°q¸!°fØ"¨5Ñ1°4Ð8ÈAñ	Oà hº,Ø$¨TÑ2Ð3Àqñ	Jð!ò ð ñ r   c                 óx  — ddl m} | dz  }t        j                  j	                  t        j
                  g d¢t        j                  «       «      t        j
                  g d¢t        j                  «       «      gddg«      } |j                  ||ddgd	¬
«        |j                  |dd	t        j                  t        j                  dt        j                  «       «      t        j                  dt        j                  «       «      g«      ¬«      j                  «       j                  «       }||j                  d«      k(  sJ ‚|j                  d«      j                  «       }t!        t#        |«      «      }|D �cg c]  }dt%        |d¬«      z   ‘Œ }}t!        t'        j(                  «      «      }||k(  sJ ‚y c c}w )Nr   )rS   zslash-writer-x©r   rv   rY   r{   r   )úexperiment/A/f.csvzexperiment/B/f.csvr­  zexperiment/C/k.csvzexperiment/M/i.csvÚexp_idÚexp_metar¨  r¬   )r9   r�  rÐ   rÍ   r\  )rÝ  rÐ   rÍ   r=   r   z	exp_meta=rÁ  r+  )r¯   rS   r?   rE   r�   r~   rÌ   r×  r²  r=   r@   rä   r4  r1  r-  rh  r3  r�   r   rd  re  )ÚtmpdirrÇ   rq   Údt_tabler_  r¯  Úencoded_pathsrI  s           r   Ú!test_dataset_partition_with_slashr³    ss  € Ý%àÐ$Ñ$€Dä�x‰x×#Ñ#Ü
�‰’¤"§(¡(£*Ó-Ü
�‰ò (ä)+¯©«ó	4ð%5ð 8@ÀÐ6Ló	N€Hð €B×ÑØØØØ �\Ø"õð �—‘ØØØÜ�y‰yœ"Ÿ(™( 8¬R¯X©X«ZÓ8ÜŸ(™( :¬r¯w©w«yÓ9ð;ó <ô	÷ �hƒj—‘Ó!ð ð �z×)Ñ)¨(Ó3Ò3Ð3Ð3à�‰˜qÓ!×+Ñ+Ó-€HÜ”c˜(“mÓ$€HÙDLÓMÁH¸D�[¤5¨°BÔ#7Ó7ÀH€MÐMÜœŸ
™
 4Ó(Ó)€Jà˜JÒ&Ð&Ñ&ùò Ns   Å8F7c                 ód  — t        j                  t        j                  dt        j                  «       d¬«      t        j                  dt        j                  «       d¬«      g«      }g d¢g d¢g}t         j                  j                  ||¬«      }t        j                  || d	z  «       t        j                  | d	z  d
¬«      }|j                  «       j                  j                  |«      sJ ‚t        j                  || dz  d
¬«       t        j                  | dz  d
¬«      }|j                  «       j                  j                  |«      sJ ‚t        j                  ||g| dz  d
¬«       t        j                  | dz  d
¬«      }|j                  «       j                  j                  |«      sJ ‚y )Nr  F)ÚnullablerT  TrÏ  ©Nr   Nrb   Ú	nulltest1r§   r  Ú	nulltest2Ú	nulltest3)r?   r=   r@   rB   rE   r�   rl   r�  rÇ   rS   rä   r	  r²  )r·  Úschema_nullabler„  r   rS   s        r   Ú'test_write_dataset_preserve_nullabilityr»  3  sW  € ô —i‘iÜ
�‰�”b—h‘h“j¨5Ô1Ü
�‰�”b—h‘h“j¨4Ô0ð!2ó 3€Oò šÐ)€FÜ�H‰H× Ñ  °Ð Ó@€Eä×Ñ˜˜w¨Ñ4Ô5Ü�j‰j˜ ;Ñ.°yÔA€Gà×ÑÓ×$Ñ$×+Ñ+¨OÔ<Ð<Ð<ä×Ñ�U˜G kÑ1¸)ÕDÜ�j‰j˜ ;Ñ.°yÔA€GØ×ÑÓ×$Ñ$×+Ñ+¨OÔ<Ð<Ð<ä×Ñ�e˜U�^ W¨{Ñ%:À9ÕMÜ�j‰j˜ ;Ñ.°yÔA€GØ×ÑÓ×$Ñ$×+Ñ+¨OÔ<Ð<Ñ<r   c                 ó†  — t        j                  t        j                  dt        j                  «       ddi¬«      t        j                  dt        j                  «       «      g«      }t        j                  t        j                  dt        j                  «       «      t        j                  dt        j                  «       «      g«      }g d¢g d¢g}t         j                  j                  ||¬«      }t         j                  j                  ||¬«      }t        j                  ||g| d	z  d
¬«       t        j                  | d	z  d
¬«      }|j                  «       j                  j                  |d¬«      sJ ‚t        j                  ||g| dz  d
¬«       t        j                  | dz  d
¬«      }|j                  «       j                  j                  |d¬«      sJ ‚t        j                  ||g| dz  d
|¬«       t        j                  | dz  d
¬«      }|j                  «       j                  j                  |d¬«      sJ ‚y )Nr  s   foos   barrj  rT  rÏ  r¶  rb   Útest1r§   r  Tr;  Útest2Útest3rÎ  )r?   r=   r@   rB   rE   r�   rÇ   r²  rS   rä   r	  )r·  Úschema_metadataÚschema_no_metar„  r   Útable_no_metarS   s          r   Ú*test_write_dataset_preserve_field_metadatarÃ  K  sÓ  € Ü—i‘iÜ
�‰�”b—h‘h“j¨F°FÐ+;Ô<Ü
�‰�”b—h‘h“jÓ!ð!#ó $€Oô —Y‘YÜ
�‰�”b—h‘h“jÓ!Ü
�‰�”b—h‘h“jÓ!ð #ó $€Nò šÐ)€FÜ�H‰H× Ñ  °Ð Ó@€EÜ—H‘H×(Ñ(¨¸Ð(ÓG€Mô ×Ñ�e˜]Ð+¨W°wÑ->ÀyÕQÜ�j‰j˜ 7Ñ*°9Ô=€GØ×ÑÓ×$Ñ$×+Ñ+¨OÈDÐ+ÔQÐQÐQä×Ñ�m UÐ+¨W°wÑ->ÀyÕQÜ�j‰j˜ 7Ñ*°9Ô=€GØ×ÑÓ×$Ñ$×+Ñ+¨NÈ4Ð+ÔPÐPÐPô ×Ñ�m UÐ+¨W°wÑ->ÀyØ+õ-ä�j‰j˜ 7Ñ*°9Ô=€GØ×ÑÓ×$Ñ$×+Ñ+¨OÈDÐ+ÔQÐQÑQr   c                 óÎ  — dD �]_  }dD �]V  }t        j                  t        j                  dt        j                  «       «      t        j                  dt        j                  «       «      g«      }g d¢g d¢g}t         j                  j                  ||¬«      }t        j                  «       }| d|› �z  }t        j                  ||d|j                  ||¬	«      d
¬«       t        j                  |d¬«      }|j                  D ]Z  }	t        j                  |	«      }
|
j                  d«      j                  d«      }|j                   |u sJ ‚|j"                  ||z  u rŒZJ ‚ �ŒY �Œb y )N)TFr  rT  rÏ  r¶  rb   Úwrite_page_index_r§   )Úwrite_statisticsÚwrite_page_indexrŒ  )rÐ   rÙ  r�  r  r   )r?   r=   r@   rB   rE   r�   rÇ   rÈ   r²  r†  rS   r
  rl   r  rÈ  r-  Úhas_offset_indexÚhas_column_index)r·  rÆ  rÇ  r=   r„  r   r  r�  rX  r=  rÅ  Úccs               r   Ú#test_write_dataset_write_page_indexrË  h  sJ  € Ü)ÐÜ -ÐÜ—Y‘YÜ—‘˜œbŸh™h›jÓ)Ü—‘˜œbŸh™h›jÓ)ð +ó ,ˆFò  ¢Ð1ˆFÜ—H‘H×(Ñ(¨¸Ð(Ó?ˆEä×.Ñ.Ó0ˆKØÐ#4Ð5EÐ4FÐ!GÑGˆHÜ×ÑØØØ Ø(×;Ñ;Ø%5Ø%5ð <ó ð (=õ	ô —*‘*˜X¨iÔ8ˆCàŸ	œ	�ä×+Ñ+¨DÓ1�Ø×'Ñ'¨Ó*×1Ñ1°!Ó4�Ø×*Ñ*Ð.>Ñ>Ð>Ð>Ø×*Ñ*Ð.>ÐAQÑ.QÒQÐQÐQò "ò- !.ñ *r   c                 óø  — t        j                  t        j                  g d¢«      t        j                  g d¢«      gddg¬«      }|dk(  r6t        j                  || dz  d¬	«       t        j
                  | dz  d¬	«      }n!|d
k(  rt        j
                  |«      }nt        ‚|j                  d«      j                  «       j                  «       g d¢g d¢dœk(  sJ ‚|j                  dg«      j                  «       j                  «       g d¢g d¢dœk(  sJ ‚|j                  t        j                  d«      dk  «      j                  d«      j                  «       j                  «       g d¢g d¢dœk(  sJ ‚t         j                  j                  t        j                  g d¢t        j                  «       ¬«      t        j                  g d¢«      gddg¬«      }t        j
                  |«      }|j                  dg«      }|j                  «       j                  «       }|d   g d¢k(  sJ ‚|d   g d¢k(  sJ ‚|j                  dg«      }|j                  «       j                  «       }|d   g d¢k(  sJ ‚|d   g d¢k(  sJ ‚y )N)rY   r   r{   rv   r   )r\   r[   r\   r[   r}   r¡  r„  r¦  rc   r¹  r¨  r  r~  )r[   r[   r\   r\   r}   r¬  )r„  r¡  )r¡  Ú
descendingr;  )r}   r\   r\   r[   r[   )r   r{   rY   rv   r   r{   )r[   r[   r\   rÏ  )r   rU  rU  r¢  rw   )rÇ  ÚcarrÈ  Úfoobarr[   r\   )r[   rÍ  r;  )r¢  rU  rU  r   )rÏ  rÎ  rÈ  rÇ  )r[   r:  r;  )r?   r   r~   rÇ   r²  rS   r  r1  rä   r2  rþ   rË  r@   rE   r�   rB   )r·  r}  r   r´   Ú
sorted_tabÚsorted_tab_dicts         r   Útest_dataset_sort_byrÒ  ˆ  sJ  € ô �H‰HÜ
�‰’Ó!Ü
�‰Ò*Ó+ðð ˜Ðô!€Eð
 �‚~Ü
×Ñ˜ ¨$¡°uÕ=Ü�Z‰Z˜ $™¨uÔ5‰Ø	�5ŠÜ�Z‰Z˜Ó‰ä!Ð!à�:‰:�hÓ×(Ñ(Ó*×4Ñ4Ó6Ú)Ú!ñ;ò ð ð ð
 �:‰:Ð9Ð:Ó;×DÑDÓF×PÑPÓRÚ)Ú!ñWò ð ð ð
 �9‰9”b—h‘h˜xÓ(¨1Ñ,Ó.×6Ñ6Øóç�hƒj—‘“ÚÚñ!òð ð ô �H‰H× Ñ Ü
�‰’¤R§X¡X£ZÔ0Ü
�‰Ò0Ó1ð"ð �3ˆZð !ó €Eô 
�‰�EÓ	€Bà—‘Ð:Ð;Ó<€JØ ×)Ñ)Ó+×5Ñ5Ó7€OØ˜3Ñ¢=Ò0Ð0Ð0Ø˜3ÑÒ#BÒBÐBÐBà—‘Ð9Ð:Ó;€JØ ×)Ñ)Ó+×5Ñ5Ó7€OØ˜3Ñ¢=Ò0Ð0Ð0Ø˜3ÑÒ#BÒBÐBÑBr   c                 óN  — t        j                  dg d¢i«      }t         j                  j                  «       }|j	                  d¬«      }| dz  }t        j                  ||||¬«       t        j                  d¬«      }t         j                  j                  |¬«      }t        j                  ||¬	«      j                  «       }||k(  sJ ‚| d
z  }t        ||«       t        |j                  «       «      }	t        |	«      dk(  sJ ‚|	d   }
t        |
j                  «       «      }|d   |d   k7  sJ ‚|d   |d   c|d<   |d<   |
j                  |«       t        j                  d¬«      }t         j                  j                  |¬«      }t        j                  ||¬	«      j                  «       }||k7  sJ ‚|t        j                  dg d¢i«      k(  sJ ‚t!        j"                  t$        d¬«      5  t        j                  ||¬	«      j                  «       }ddd«       y# 1 sw Y   yxY w)zwCheck that checksum verification works for datasets created with
    ds.write_dataset and read with ds.dataset.to_tabler[   r  T)Úwrite_page_checksumÚcorrect_dir)r9   r�  rÐ   rÙ  r  )Údefault_fragment_scan_optionsr  Úcorrupted_dirr   r   é   é$   F)r   rY   rv   r{   zCRC checksum verificationr   N)r?   r   rS   rÈ   r†  rÇ   r²  r  rä   r   rh   Úiterdirr±   Ú	bytearrayÚ
read_bytesÚwrite_bytesr  r  rV  )r·  Ú
table_origÚpq_write_formatrÞ  Úoriginal_dir_pathÚpq_scan_opts_crcÚpq_read_format_crcÚtable_checkÚcorrupted_dir_pathÚcorrupted_file_path_listÚcorrupted_file_pathÚbin_dataÚpq_scan_opts_no_crcÚpq_read_format_no_crcÚtable_corruptrt  s                   r   Ú1test_checksum_write_dataset_read_dataset_to_tablerë  »  s/  € ô —‘˜3¢Ð-Ó.€Jô —j‘j×2Ñ2Ó4€OØ#×6Ñ6Ø ð 7ó "€Mð   -Ñ/ÐÜ×ÑØØ"ØØ"õ	ô ×4Ñ4Ø#'ô)ÐäŸ™×5Ñ5Ø&6ð 6ó 8Ðä—*‘*ØØ!ô÷ �hƒjð ð ˜Ò$Ð$Ð$ð ! ?Ñ2ÐÜÐÐ 2Ô3ô
  $Ð$6×$>Ñ$>Ó$@ÓAÐÜÐ'Ó(¨AÒ-Ð-Ð-Ø2°1Ñ5ÐÜÐ,×7Ñ7Ó9Ó:€Hð �B‰<˜8 B™<Ò'Ð'Ð'Ø!)¨"¡¨x¸©|Ð€HˆR�L�(˜2‘,ð ×#Ñ# HÔ-ô ×7Ñ7Ø#(ô*ÐäŸJ™J×8Ñ8Ø&9ð 9ó ;Ðä—J‘JØÐ#8ô:ß:B¹(»*ð ð
 ˜JÒ&Ð&Ð&ØœBŸH™H cª<Ð%8Ó9Ò9Ð9Ð9ô 
�‰”wÐ&AÖ	BÜ�J‰JØØ%ô
÷ ‰(‹*ð 	
÷ 
C×	BÑ	Bús   Ç,&HÈH$c                  óÜ  — d} d}t        j                  t        «      5 }t        j                  j
                  j                  d«       d d d «       | t        j                  «      v s|t        |j                  «      v sJ ‚t        j                  j                  «       }d}t        j                  t        |¬«      5  |j                  d«       d d d «       y # 1 sw Y   Œ�xY w# 1 sw Y   y xY w)NzImake_write_options() should be called on an instance of ParquetFileFormatzqdescriptor 'make_write_options' for 'pyarrow._dataset_parquet.ParquetFileFormat' objects doesn't apply to a 'int'é+   z;make_write_options\(\) takes exactly 0 positional argumentsr   )	r  r  r  r?   rS   rÈ   r†  r_   r'   )Úmsg_1Úmsg_2ÚexcinfoÚpformatr_  s        r   Útest_make_write_options_errorrò    s±   € ð-€Eð(€Eô 
�‰”yÔ	! WÜ
�
‰
×$Ñ$×7Ñ7¸Ô;÷ 
"à”C˜Ÿ™Ó&Ñ&¨%´3°w·}±}Ó3EÑ*EÐEÐEä�j‰j×*Ñ*Ó,€GØ
I€CÜ	�‰”y¨Ö	,Ø×"Ñ" 2Ô&÷ 
-Ð	,÷ 
"Ð	!ú÷ 
-Ð	,ús   ž*CÂ;C"ÃCÃ"C+c                 ó:  — 	 dd l m} d}d}| j                  j                  j                  |«      |j                  j                  |«      ¬«      j                  «       }|j                  «       dddgik(  sJ ‚y # t        $ r t        j                  d«       Y Œ‘w xY w)Nr   zsubstrait NOT enabledsé   
SOhttps://github.com/apache/arrow/blob/main/format/substrait/extension_types.yaml	
u64
	u32

str"i
i64
f64
str
const
struct
a
b
group
key7
:
Z
b
:
Ê
:
b
*
bs3  
/functions_comparison.yaml
SOhttps://github.com/apache/arrow/blob/main/format/substrait/extension_types.yamlÅequal:any1_any1	
u64
	u32
Å
"
 "
("i
i64
f64
str
const
struct
a
b
group
key7
:
Z
b
:
Ê
:
b
*
brw  r_   Ú4)
Úpyarrow.substraitÚ	substraitr(  r  r˜  rê   ÚBoundExpressionsÚfrom_substraiträ   r2  )rS   Úpsr:  Ú	filteringr9  s        r   Útest_scanner_from_substraitrû    s£   € ð-Ý&ð
W€Jð
C€Ið �_‰_Ø×#Ñ#×2Ñ2°:Ó>Ø×"Ñ"×1Ñ1°)Ó<ð ó ÷ �hƒjð ð ×ÑÓ %¨#¨s¨Ð!4Ò4Ð4Ñ4øô9 ò -Ü�‰Ð+Ö,ð-ús   ‚A9 Á9BÂBr¥  r   )r{   r   rª   (  rŸ   r+   rd  r–  rm  r   Úsysr°  rq  r{  rñ  Úshutilr   Úurllib.parser   Únumpyr]  r(  r  r¯   r?   r<  r=  rË  Úpyarrow.csvrÑ  r›   rc   Úpyarrow.jsonÚpyarrow.libr   Úpyarrow.tests.utilr   r   r   r	   r
   r¦   r3   rÀ  rS   rÇ   Úpyarrow.parquetr§   rl   ÚmarkÚ
pytestmarkr   r;   rI   rV   Úfixturern   rˆ   r¢   rÀ   rõ   r  r  r;  rI  rO  rW  rk  ru  ry  r}  r  r…  rº  rÀ  Úparametrizer_   ÚtuplerÍ  rÔ  rÜ  ró  rü  r  r+  r7  rÉ   rI  rP  Ús3rc  rz  r}  r‹  r‘  r˜  r�  rª  r²  r¹  rÂ  rÉ  rÌ  râ  ró  rõ  rû  rþ  r   r  r	  r  r  r   r.  r7  rJ  rQ  rW  rY  rb  rk  rn  rs  rw  ry  r{  r€  r„  r‹  r  r‘  r”  rš  rž  r   r¤  r§  r¬  r¶  r½  rÂ  rÄ  rÉ  rÌ  rÏ  rÙ  rÞ  ræ  rê  rí  rð  ró  rö  rø  rú  r  r  rW  r   r#  r,  r:  r>  rC  rI  rL  rN  rS  rW  ra  rd  rf  rl  rp  rw  rz  r~  r�  r„  rˆ  r�  rœ  r¢  r§  r­  r¸  r¼  r¾  rÉ  rÌ  ÚfilterwarningsrÒ  rä  rì  rð  ÚskipifÚplatformrô  r÷  rþ  r  r	  r  r  r  r  r  r  r#  r(  r0  r5  r8  rC  rJ  rM  rT  rY  r`  re  r‚  r…  r”  r—  rœ  r   r­  r¶  r»  rÏ  rÑ  rà  ré  rö  rú  r  r  r
  r  r  r#  r)  r,  r/  r1  r5  r?  r@  rC  rZ  r_  rg  rs  rw  ry  r|  rŠ  r‘  r“  rš  rª  r³  r»  rÃ  rË  rÒ  rë  rò  rö  rû  r   r   r   Ú<module>r     s+  ðó$ Û Û 	Û Û Û Û 
Û Û Û Û Ý Ý ðÛó ã Ý Û Û Ý Û Ý ,÷,õ ,ðÛðÝ ðÝ ð �[‰[× Ñ €
÷?ñ ?òKò +ò%ð ‡�ñó ððD ‡�ñ  ó ð  ðF ‡�ñó ðð@ €‡��hÔñ0ó  ð0ðf ‡�ñó ðð €‡�Ø	Ø
ðð 	�HÐôñ+ó	ð+ð\ ‡�×ÑñDGó ðDGòN)ð, ‡�×Ññ?9ó ð?9òD)GòX&ð( ‡�×Ññ"ó ð"ð ‡�×Ññ-Ió ð-Ið` ‡�×Ññ%ó ð%ð$ ‡�×Ññ-ó ð-ð, ‡�×Ññ5ó ð5ð ‡�×ÑñOó ðOòòA!òHFð$ ‡�×ÑØFòóð8
Øð8
à %ð8
ð #(ò8
óð8
òv#ò"6ð ‡�×Ññ&ó ð&ðR ‡�×Ññ$ó ð$ð" ‡�×Ññ6ó ð6òr$TòNJð2 ‡�×ÑÐ,Ø€B‡O�O�H¨Ô-à$Ø$ðð/ó ð ‡�×Ñ˜¨¨t }Ó5Ø‡�×ÑñE"ó ó 6óðE"ðP ‡�×Ññ4ó ð4ð$ ‡�×ÑØ‡�‡�ñ5-ó ó ð5-òpHò2Hð, ‡�×Ññ*Dó ð*DðZ ‡�×Ñóó ðð" ‡�×Ññ7ó ð7ð@ ‡�×ÑØ‡�×Ññ	%ó ó ð	%ð ‡�×Ññ9Nó ð9Nðx ‡�×Ññó ðð: ‡�×Ññ)ó ð)ð" ‡�×ÑØ‡�×Ññ
:ó ó ð
:ð ‡�×Ññ%0ó ð%0ðP ‡�×Ññó ðô"5Jðp ‡�×ÑØ‡�×Ññ'ó ó ð'ðT ‡�×Ññ7ó ð7ð ‡�×ÑØ‡�×Ññ7ó ó ð7ð ‡�×Ññ)ó ð)ð, ‡�×Ññ&.ó ð&.ðR ‡�×Ññ$ó ð$ð6 ‡�×Ññ'ó ð'ð> ‡�×Ññ	ó ð	ð ‡�×Ññ 3ó ð 3ðF ‡�×ÑØ‡�×Ññ ó ó ð ðF ‡�×ÑØ‡�×ÑØ‘Ñ @ÐAóCñIóCó ðIð< ‡�×ÑØ‡�×ÑÐ+¨e°T¨]Ó;Ø‡�×ÑØ‘Ñ @ÐAóCñ@óCó <ó ð@ð@ ‡�×ÑØ‘Ñ @ÐAóCña,óCða,ðH ‡�×ÑØ‘Ñ @ÐAóCñR,óCðR,òjJò?ð ‡�×ÑØ‡�×Ññ(ó ó ð(ò2Nò
+òò;ò
=òOò"6ðJ ‡�×ÑñHó ðHò(*ô8ò,ò>ò@ð" ‡�×ÑñIó ðIð
 ‡�×ÑñIó ðIð ‡�×ÑñLó ðLð ‡�×Ññ$ó ð$ð$ ‡�×Ññ<ó ð<ð& ‡�×ÑñJó ðJð& ‡�×Ññ7ó ð7ð& ‡�×Ññ ó ð ð, ‡�×Ññ-ó ð-ð ‡�×Ññ=ó ð=ò*"òò?(òDJð" ‡�×Ñ˜¨°¨Ó6ñó 7ðò&ð" ‡�×Ññ!#ó ð!#ðH ‡�×Ññ?ó ð?ð, ‡�×Ññ,ó ð,ð ‡�×ÑñNó ðNò.òAð ‡�×ÑØ‡�×Ñ˜¨+°vÐ)>Ó?Ø‡�×Ñ˜¨5°$¨-Ó8Ø‡�×ÑÐ+¨e°T¨]Ó;Ø‡�×ÑÐ)Ú’iÐ Ú’Ð Ú’oÐ&Ú’	ÐÚ’?Ð#ÚÒ Ð!Ú’<Ð ð,ó ñ62óó <ó 9ó @ó ð62ðr ‡�×Ññ;ó ð;ð< ‡�ñDó ðDð& ‡�×ÑØ‡�‡�ñ
:ó ó ð
:ð ‡�×ÑØ‡�‡�ñ:ó ó ð:ð ‡�×ÑØ‡�‡�ñ,ó ó ð,ð0 ‡�×ÑØ‡�‡�ñ?=ó ó ð?=ðD ‡�×Ññ/ó ð/ð ‡�×Ññ9ó ð9ð2 ‡�×Ññ=ó ð=ð6 ‡�×ÑñFó ðFð ‡�×Ññ	ó ð	ð ‡�×Ññ9ó ð9ò(4ò?%òDMò2ð@ ‡�×Ññ6)ó ð6)ðr ‡�×Ññó ðò"$ð, ‡�‡‚ñ#Mó ð#MðL ‡�‡‚ñ?ó ð?ò,*ð ‡�‡‚ñ ó ð ð" ‡�×Ññ ó ð ð$ ‡�×ÑØ‡�×Ñ˜ò )ó ñ óó ð ò(Hò*:ò Að0 ‡�×Ññ ó ð ð( ‡�×Ññ ó ð ð( ‡�×Ññ ó ð ò,Dò2@ð0 ‡�×ÒÐBÓCñGó DðGð@ ‡�×ÑØ‡�×Ñ˜ò )ó ñ
,/óó ð,/ò^ ð, ‡�×ÑØ‡�×Ññ!ó ó ð!ð ‡�×ÑØ‡�×ÑØ‡�×Ò�C—L’L GÑ+ØDð ó Fñ!óFó ó ð!ð( ‡�×ÑØ‡�×Ññ!ó ó ð!ð2 ‡�×Ññ.ó ð.ð* ‡�×ÑØ‡�×Ññ	ó ó ð	òò$3ð ‡�×ÑØ‡�×Ññ4ó ó ð4ð$ ‡�×ÑØ‡�×Ññ
;ó ó ð
;ð ‡�×ÑØ‡�×Ññ3ó ó ð3ðN ‡�×ÑØ‡�×Ññ@ó ó ð@ð  ‡�×ÑñGó ðGð* ‡�×ÑØ‡�×ÑñDó ó ðDð ‡�×ÑØ‡�×Ññ	=ó ó ð	=ò=ð0 ‡�×ÑØ‡�×Ññ:?ó ó ð:?ðz ‡�×ÑØ‡�×ÑñBó ó ðBò&(ð ?Cô3ð& ‡�×Ññ Pó ð PðF ‡�×ÑØ‡�×Ññ*ó ó ð*ò>)ò")ò"=ð& ‡�×ÑØ‡�×ÑñHó ó ðHòVFð" ‡�×Ññ-#ó ð-#ô`;ò	òOð ‡�×Ññ!<ó ð!<ðH ‡�×Ññ <ó ð <ðF ‡�×Ññ$ó ð$ð8 ‡�×ÑñA9ó ðA9ðH ‡�×ÑØ‡�×Ññ#ó ó ð#ð0 ‡�×ÑØ‡�×Ññ#9ó ó ð#9ðL ‡�×ÑØ‡�×Ññó ó ðò,<ò^!òH ò6@ò4 ð0 ‡�×ÑØ‡�×Ññ('ó ó ð('òV ð4 ‡�×Ññó ðð* ‡�×Ññ ,ó ð ,ðF ‡�×ÑØ‡�×Ññ4ó ó ð4ò	1ð ‡�×Ññ1ó ð1ð ‡�×ÑØ‡�‡�ñ, ó ó ð, ð^Ð ð$ ‡�×ÑØ‡�‡�ñI
ó ó ðI
ðX ‡�×Ññ"ó ð"ð$ ‡�×Ññó ðð< ‡�×Ññó ðð< ‡�×ÑñAó ðAð6 ‡�×Ññó ðð6 ‡�×Ññó ðð: ‡�×Ññó ðð. ‡�×Ññ
ó ð
ð> ‡�×Ñ˜Øˆ%ð$ó òK>óðK>ð\ ‡�×Ñ˜Øˆ%ð$ó ò*1óð*1óZ$ô
ð2 ‡�×Ñ™Ñ#5Ó6òó 7ñô6"'ðJ ‡�×Ñò=ó ñ=ô.Rô:Rð@ ‡�×Ñ˜Øˆ%ð$ó ò-Cóñ-Cô`FôR'ð& ‡�×Òò5ó ò5øðmw ò Ø	ƒBðûð" ò Ø	ƒBðûð
 ò Ø	ƒBðûð
 ò Ø	ƒBðús[   ºAU Á3AU( Á8AU6 Á?AV ÁUAU%ÁU$AU%ÁU(AU3ÁU2AU3ÁU6AVÁV AVÁVAVÁVAV