Ë
    _Qêj®^ ã                   óÌ+  — 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ì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	ejZ                  jV                  ejZ                  j�                  �dd�d�d�dœg«      �d„ «       «       �Z
�d„ �ZejZ                  �j                  �d„ «       �Zy# e$ r dZY �Œzw xY w# e$ r dZ&Y �ŒOw xY w# e$ r dZ)Y �ŒVw 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     ú_/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/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   sŒ   € à×)Ñ)Ó+ò %ˆØ�]‰]‹_ð 	% Ü˜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ˆ   –   sa  € ô ×ÑÓ!€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À   Û   sN  € à‡N�N×Ñ×#Ñ# HÔ-Ø‡N�N×Ñ×#Ñ# IÔ.ä	˜Ó	€BÜ×ÑÓ!€Fô 	ˆB‹€AÜ9>¸qÀ!ÀQÈÁTÓ9JÖK°A˜bŸg™g a¨¨!¨Q©$©Ò/ÒKÑ€Dˆ$��dð ×Ñ�gÔÜˆD‹	€AÜ¼UÀ1ÀaÈÈBÉÓ=OÖP¸˜tŸy™y¨¨1¨Q°©U©7Ò3ÒPÓQò ;‰ˆˆ5Ø˜a˜S Ð)ˆØ×&Ñ& tÓ,ð 	;°Ü�N‰NÔ-¨eÓ4°cÔ:÷	;ð 	;ð;ð ×Ñ�hÔØ—|‘| T§Y¡Y§\¡\×%;Ñ%;¸T¿Z¹ZÐ$HÓIò ;‰ˆˆeØ˜4 ™7˜) 1 T¨!¡W IÐ.ˆØ�˜Ð(ˆØ×Ñ˜&Ô!Ø×&Ñ& tÓ,ð 	;°Ü�N‰NÔ-¨eÓ4°cÔ:÷	;ð 	;ð	;ð ×Ñ�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Ô:÷	;ð 	;ð	;ð ×Ñ�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÷;Ù�T˜4ð ×*Ñ*¨4°¸Õ>ð ;€Iñ ;ä—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Ô=Ð=Ð=ð	>ô ˜×.Ñ.´b·h±h¸wÓ6GÈ1Ñ6LÐ.ÓMÓNˆ	Ü�9‹~ Ô"Ð"Ð"ð/#ô4 ×"Ñ"Ø˜&¨Àô€Gð ×'Ñ'×.Ñ.¬r¯y©y¸«Ô?Ð?Ð?ô ×"Ñ"×-Ñ-Ø�f [¸Vð .ó €Gð ×'Ñ'×.Ñ.¬r¯y©y¸«Ô?Ð?Ð?Ø×)Ñ)Ó+ò EˆØ×,Ñ,×3Ñ3´B·I±I¸d³OÕDÐDÐDðEô 
�‰”yÐ(8Ô	9ñ =Ü
×Ñ˜Y¨°VÔ<÷=ô 
�‰”yÐ(8Ô	9ñ CÜ
×Ñ˜Y¨vØ$/Àõ	C÷Cô 
�‰”yÐ(8Ô	9ñ GÜ
×Ñ×'Ñ'¨	¸+Ð'ÔF÷Gð Gùò{ >ùó;÷j=ð =ú÷Cð Cú÷Gð Gú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Ð(?Ô	@ñ 2Ø×ÑÐ 0ÐÔ1÷2ô Ÿ™ ›¨!Ñ+ÐÜ	�‰”yÐ(?Ô	@ñ 3Ø×ÑÐ 1ÐÔ2÷3ô —8‘8šO´"·(±(³*Ô=€LÜ—8‘8šO´"·*±*³,Ô?€Là×*Ñ*¨7Ó3ò 4ˆÜ˜%¤§¡Ô0Ð0Ð0Ø�|‰|˜A‹×%Ñ% lÔ3Ð3Ð3Ø�|‰|˜A‹×%Ñ% lÕ3Ð3Ð3ð4ð
  ×'Ñ'¨Ó0×=Ñ=Ó?ò 7ˆÜ˜%¤×!5Ñ!5Ô6Ð6Ð6Ü˜%Ÿ.™.¬"¯+©+Õ6Ð6Ð6ð7ð ×#Ñ# 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2ñ 2ú÷3ñ 3ú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ñ 6Ø�‰¨ˆÔ5÷6ô 
�‰ÜÐXô
ñ )ð 	�‰ %ˆÔ(÷)ô
 
�‰ÜÐUô
ñ &ð 	�‰ "ˆÔ%÷&ð &÷6ð 6ú÷)ð )ú÷
&ð &ú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×)Ñ)Ó	*ñ 1Ø�‰”R—X‘X˜uŸ~™~Ð.Ó/Ô0÷1ð �>‰>˜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=ñ =ú÷&1ñ 1ú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}  “  sX  € ä�G×)Ñ)Ó+Ó,€HØ˜�FœBŸH™H a¨ VÓ,Ð-ò BˆØ!×*Ñ*¨8Ó4×9Ñ9¸'ÓBˆØ×"Ñ" 8¨WÓ5¸ÓAÐAÐAðBô 
�‰”zÓ	"ñ 5Ø×Ñ˜H¤b§h¡h°¨s£mÔ4÷5ð ˜�FœBŸH™H a¨ VÓ,Ð-ò PˆØ×"Ñ"Ø�WóØ!/×!8Ñ!8¸Ó!A×!FÑ!FÀwÓ!OóPð 	Pð PðPô 
�‰”zÓ	"ñ 5Ø×Ñ˜G¤R§X¡X¨r¨d£^Ô4÷5ð 5÷5ð 5ú÷5ð 5ú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…  ³  sZ   € ä
�‰Ü
�
‰
Ü
�‰ð€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¸!¤f§m¡m§oÑ%Iùó   ‚ 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Ô*÷	+ð 	+ð+ð œ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×,?Ñ,?Ü×)Ñ)ð+ò 	1ˆä×(Ñ(Ó*ð 	1¨gÙ Ð!4Ó5ˆLÜ×Ñ˜U GØ$)¸õFäŸ
™
 7°5Ø0<ô>ˆIà'×0Ñ0Ó2ˆOØ"×)Ñ)¨%Ô0Ð0Ñ0÷	1ð 	1ð	1ô 
×	$Ñ	$Ó	&ð !¨'Ü×/Ñ/Ð0CÓDˆÜ
×Ñ˜ Ø %°Lõ	Bàˆ	Ü�]‰]œ:Ø!OôQñ 	OäŸ
™
 7°5ÄsÈ1ÃvÔNˆI÷	Oð Ð Ð Ñ ÷!ð !÷A,ñ ,ú÷<	+ñ 	+ú÷$,ñ ,ú÷L	1ñ 	1ú÷	Oð 	Oú÷!ð !ú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ð ò FˆØ×"Ñ" =×#6Ñ#6°tÓ#<Ó=ÀÓEÐEÐEñF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  sD  € ô Ÿ)™) 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ð(ô
ñ 	Bð ×Ñ¤"§(¡(¨5£/°YÑ">ÔA÷	Bð 	Bð ×"Ñ"¤R§X¡X¨e£_¸	Ñ%AÓDð I
ò 
ð 	
ñ 
÷	Bð 	Bú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¸°°1±Ò/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                  óx  — 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|¬«      }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k(  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 ‚|j                  dk(  sJ ‚| | k(  sJ ‚| |k7  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_optionsé*   )Úschema_depth_limiti áõé@B éd   )rÇ   ÚParquetFragmentScanOptionsr?   ÚCacheOptionsr  r   r   r  r  r  r  r  r
  )	rî  rï  rð  rñ  rò  Úopts6Ú
cache_optsÚopts7Úopts8s	            r   Útest_parquet_scan_optionsr  ò  sú  € ä×)Ñ)Ó+€EÜ×)Ñ)°dÔ;€EÜ×)Ñ)Ø¨tô5€Eä×)Ñ)°eÈÔN€EÜ×)Ñ)Ø!'Ø$*ô-€Eô ×)Ñ)Ø#'ô)€Eä—‘Ø°¸dôD€Jä×)Ñ)°TÈÔT€EÜ×)Ñ)¸RÔ@€Eà×$Ñ$¨Ñ-Ð-Ð-Ø×Ñ Ò%Ð%Ð%ÜÔØ×Ñ 4Ñ'Ð'Ð'Ø×)Ñ)¨[Ò8Ð8Ð8Ø×,Ñ,°	Ò9Ð9Ð9Ø×+Ñ+¨uÑ4Ð4Ð4Ø×#Ñ# sÒ*Ð*Ð*à×$Ñ$¨Ñ-Ð-Ð-Ø×Ñ Ò%Ð%Ð%ÜÔØ×Ñ 4Ñ'Ð'Ð'à×$Ñ$¨Ñ,Ð,Ð,Ø×Ñ Ò%Ð%Ð%ÜÔØ×Ñ 4Ñ'Ð'Ð'à×$Ñ$¨Ñ-Ð-Ð-Ø×Ñ Ò%Ð%Ð%ÜÔØ×Ñ 5Ñ(Ð(Ð(à×)Ñ)¨VÒ3Ð3Ð3Ø×,Ñ,°Ò6Ð6Ð6à×+Ñ+¨tÑ3Ð3Ð3äÔØ×Ñ 4Ñ'Ð'Ð'Ø×Ñ *Ò,Ð,Ð,Ø×Ñ %×"5Ñ"5Ò5Ð5Ð5à×#Ñ# rÒ)Ð)Ð)à�EŠ>Ðˆ>Ø�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        �h|j                  t        j                  «       t        j                  dh¬«      t        j                  d¬«      t        j                  d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  )rÇ   r  ÚCsvFileFormatr?   ÚcsvÚParseOptionsÚReadOptionsÚJsonFileFormatÚjsonr0   ÚOrcFileFormatÚImportErrorrl   ÚextendrÈ   r¼  r½  )r¾  Úformatsr  s      r   Útest_file_format_picklingr/  1  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Ô:Ü× Ñ Ø$(Ø Ø),Ø,/Ø#%ôð	
ô 	ð ò TˆØ×"Ñ" =×#6Ñ#6°{Ó#CÓDÈÓSÐSÐSñTøô# ò Ùðú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_picklingr;  Y  s'  € ä
×!Ñ!Ó#Ü
×!Ñ!ÜŸF™F×1Ñ1ÀdÐ1ÓKô	Mä
×!Ñ!ÜŸ™×+Ñ+°uÐ+Ó=ô	?ä
×"Ñ"Ó$Ü
×"Ñ"Ü�G‰G× Ñ °EØ;Bð !ó Dó	Eô 	×"Ñ"ÜŸ™×,Ñ,¸È#Ð,ÓNô	Pð€Gô 
€~Ø�‰Ü×)Ñ)°dÔ;Ü×)Ñ)°TÔ:ð
ô 	ð
 ò JˆØ×"Ñ" =×#6Ñ#6°vÓ#>Ó?À6ÓIÐIÐIñJ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   r<  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_factoryrM  r  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Ø$%ð '(¨!¡e´#°a¸!±e³*Ó =ò  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�‰˜|Ö,Ð,Ð,ð-ð ×ÑÓ€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_fragmentrT  Ã  sð   € ä×)Ñ)Ó+€NÜ�j‰j˜¨mØ .ô0€Gð —‘ò 
4ˆØ!×/Ñ/°°mÓDˆØ×"Ñ" q cÒ)Ð)Ð)à+×9Ñ9¸$ÀØFGÀSð :ó JÐàÐ.Ð/ò 	AˆAÜ˜a¤×!7Ñ!7Ô8Ð8Ð8Ø—6‘6˜T’>Ð!�>Ü˜aŸl™l¬D°Ó,?Õ@Ð@Ð@ð	Að "×,Ñ,°°Ó3Ð3Ð3ñ
4r   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_truerX  Úfragments_with_sizeÚdataset_with_sizeÚsizes_toosmallÚsizes_toolarges                        r   Útest_make_fragment_with_sizerg  Ö  sÓ  € ð @QÑ<€Eˆ4��S˜$  j°*ä×&Ñ&Ó(€KØˆF€Eð #ö$Øð ×*Ñ*¨4°Õ4ð $€Ið $ä×"Ñ"Ø˜+¨e¯l©lÀrô€Gð ×
Ñ
Ó
€CØ�:‰:�eÔÐÐð ELÇMÁMÖR¸q�'×$Ñ$×2Ñ2°1Ó5×:Ó:ÐR€JÐRä-0°¸
Ó-C÷EÙ)˜t Tð '×4Ñ4°T¸2ÈÐ4ÕNð EÐñ Eä×,Ñ,Ø K¸¿¹ÐQSôÐð ×
Ñ
Ó
€CØ�:‰:�eÔÐÐð %*Ö*˜D’aÐ*€NÐ*ä-0°¸Ó-G÷IÙ)˜t Tð '×4Ñ4°T¸2ÈÐ4ÕNð IÐñ Iô ×,Ñ,Ø K¸¿¹ÐQSôÐô 
�‰”w—{‘{×/Ñ/Ð7UÔ	Vñ -Ø!×*Ñ*Ó,ˆ÷-ð +0Ö0 $’gÐ0€NÐ0ä-0°¸Ó-G÷IÙ)˜t Tð '×4Ñ4°T¸2ÈÐ4ÕNð IÐñ Iô ×,Ñ,Ø K¸¿¹ÐQSôÐô
 
�‰”wÐ&7Ô	8ñ -Ø!×*Ñ*Ó,ˆ÷-ð -ùòS$ùò SùóEùò +ùóI÷-ð -üò 1ùóI÷-ð -ú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_bufferr~    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"}
ri  rj  rk  rn  rr  r¦  )r?   rw  rx  rÇ   r)  r  rM   rL   ry  r   rä   r	  r¼  r½  )rõ   r¾  rz  r{  Újson_formatrT   r|  r}  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 )Nrj  rk  rn  r   r   rv   r�  rt  rÞ  Trþ  )rö  r  r   rr  r¦  )r?   r~   Údictionary_encoderÇ   rÈ   rè  r   ÚBufferOutputStreamrl   rm   Úgetvaluer  rä   r	  r¼  r½  ry  rL   rM   rN   rQ   ÚParquetFileÚread)rõ   r¾  ÚarraysÚdictionary_arraysÚdictionary_formatÚcasesÚformat_r   rr   r{  rT   r}  Ú	file_likeÚopened_files                 r   Ú&test_make_parquet_fragment_from_bufferr�  ?  sç  € ô 	�‰’Ó!Ü
�‰’ÓÜ
�‰Ò)Ó*ð€Fð 	ˆq‰	×#Ñ#Ó%Øˆq‰	Øˆq‰	×#Ñ#Ó%ðÐô
 ×,Ñ,Ü×*Ñ*Ø '¨Ð2ô
ð !ØôÐð 
”×%Ñ%Ó'Ð(Ø	Ð-Ð.ð€Eð !ó D‰ˆ�Ü—‘˜Ò'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ñ'D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•  m  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œ    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   rR  Úpickled_fragmentÚnew_fragmentÚpatternr   s             @r   Útest_fragments_reconstructr®  ®  s}  ø€ ä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ñ NØ%×3Ñ3Ø�M‰M˜8×.Ñ.Ø!)×!>Ñ!>ð 4ó @ˆð 	×Ñ ´R·X±X¸fÓ5EÈÑ5LÐÔM÷	N÷ Nñ Nú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   rQ  )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   rQ  )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Ó	&ñ 0Ø×*Ñ*¨q°!¨fÒ4Ð4Ð4Ø$×/Ñ/°Ñ2ˆ	Ø�|‰|˜qÒ Ð Ð Ø×#Ñ#Ð/Ð/Ñ/÷	0ð 0÷3,ñ ,ú÷
,ñ ,ú÷(0ð 0ú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Ð  S  s¹   € ð 'Ñ€BˆÜ.¨wÀ2ÔF�J€A€wÜ�G×)Ñ)Ó+Ó,¨QÑ/€Hñ 
�bÓ	ñ NØ(×.Ñ.¨}×/BÑ/BÀ8Ó/LÓMÐ÷Nñ 
Ð'×,Ñ,Ð-Ó	.ñ 1Ø%×0Ñ0ˆ
÷1à˜!˜ÒÐÑ÷Nð Nú÷1ð 1ú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  )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å  e  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   rl  é   )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   rR  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ñ .Ø×Ñ Ô-÷.÷ .ñ .ú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
  !  sk  € ð 'Ñ€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  =  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  ]  s¤   € ä.¨wÀ1ÔE�J€A€wÜ�G×)Ñ)Ó+Ó,¨QÑ/€Hô 
�‰”zÓ	"ñ CØ�‰œŸ™ ›¨!Ñ+¸A¸q¸6ˆÔB÷Cô 
�‰”zÓ	"ñ Ø�‰Ô÷ð ÷Cð Cú÷ð ú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  j  s:  € ô 
�‰’,Ó	€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ñ 3Ø�‰œŸ™ ¨Ó-°Ñ1Ô2÷3ô 
�‰ÜÐ#Nô
ñ 3ð 	�‰œŸ™ ¨Ó-°Ñ1Ô2÷3ð 3÷	3ð 3ú÷3ð 3ú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   r}  c                 ó   — | S r   r   ©r  Úms     r   ú<lambda>r'  µ  ó   € ˜Q€ r   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   r}  r¾  r<  rÐ   rÒ   r/  rÓ   rF  rF  Úhive_partitioning_factorys              r   Útest_partitioning_factoryr1  ³  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Æ   ©r2  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   r2  r}  r¾  r<  rÐ   rÒ   r/  rÓ   Úinferred_schemaÚexpected_typer   r§  r|  s                 r   Ú$test_partitioning_factory_dictionaryr:  Ô  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ª  )r}  r¾  rn   rÐ   r=   r   Úpartition_schemaÚstring_partition_schemaÚfull_schemarp   ÚsinkÚwriterrÑ   rÒ   r/  rÓ   r8  r§  r  rÍ   s                       r   Ú*test_partitioning_factory_segment_encodingrM  ø  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Ô)Ø—‘”÷÷	ð 	ðô �‰˜{°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ñ ,à!Ÿ/™/Ó+ˆ÷,ô
 �‰˜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ñ ,à!Ÿ/™/Ó+ˆ÷,ð ,÷_ñ ú÷	ñ 	ú÷R,ñ ,ú÷N,ð ,ús<   Å!^Å;"^Æ^Ò^ Ý,^-Þ^Þ^Þ^	Þ ^*Þ-^6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                 ó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@  r\  rŽ  z2021-05-04 00:00:00ú$r�  rA  rB  rC  rD  r   )&rc   rd   rÇ   r  r?   r=   rB   r   r~   r/   rä  rD   rh   rf   rg   r¨  rE  rm   rF  rÉ   rÊ   rª  r-  r/  rÎ   rC  rÏ   rä   r@   rÓ  rG  rK   r  r	  rÍ   r  r  ra  )r}  r¾  rn   rÐ   r=   r   rH  rI  rJ  Úpartition_schema_enÚstring_partition_schema_enrp   rK  rL  rÑ   rÒ   r/  rÓ   r8  r§  r  rÍ   s                         r   Ú;test_partitioning_factory_hive_segment_encoding_key_encodedrT  ^  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ñ ,à!Ÿ/™/Ó+ˆ÷,ð ,÷u	ñ 	ú÷ñ ú÷v,ð ,ú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  rW  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_raisesrZ  µ  s•   € Ü�H‰HÒ+²/ÑBÓC€EÜ�?‰?Ü
�	‰	”2—8‘8˜C¤§¡£Ó-¬r¯x©x¸¼R¿Y¹Y»[Ó/IÐJÓKóM€Dä	�‰”r—‘Ó	'ñ JÜ
×Ñ˜ °ÀDÕI÷J÷ Jñ Jú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)NrV  rX  rZ   zbasename-{i}.arrow)r?   r   r  r  r  rÇ   r²  )r·  r   s     r   Útest_positional_keywords_raisesr\  ½  sJ   € Ü�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 )Né €  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_onlyrf  Ã  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_subdirsro  Þ  sE   € Ü�z‰z˜'Ó"€HÜÀ8ÖL¸R”—‘—‘œbŸg™gŸl™l¨7°BÓ7Õ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   )	rh  ri  rq   rÌ  rk  Ú	posixpathro  Ú_do_list_all_dirsr0   )rl  Úpath_so_farr9  rÙ  Útrue_nestedÚnorm_nesteds         r   rr  rr  ã  sn   € Ü�Z‰Z˜Ó ò +ˆÜ—g‘g—l‘l 7¨AÓ.ˆÜ�7‰7�=‰=˜Õ%Ü#Ÿ.™.¨°aÓ8ˆKÜ˜KÔ(Ü! +¨{¸FÕCà—‘˜kÕ*ñ+r   c                 ó$   — g }t        | d|«       |S )NrÁ  )rr  )rl  r9  s     r   Ú_list_all_dirsrw  î  s   € Ø€FÜ�g˜r 6Ô*Ø€Mr   c                 óL   — t        t        | «      «      }|t        |«      k(  sJ ‚y r   )r�   rw  )r·  Úexpected_directoriesÚactual_directoriess      r   Ú_check_dataset_directoriesr{  ô  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 )	NrX  rV  rZ   r[   r\   r¨  r©  )zx/xzy/yrÓ  )	r?   r   rÇ   rÍ   r=   r@   rD   r²  r{  rY  s      r   Ú(test_dictionary_partitioning_inner_nullsr}  ù  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Ó  rV  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²  r{  rY  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Ð)>Ô	?ñ 4Ü
�‰˜¨FÕ3÷4ô �?‰?˜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÷:ô 
�‰”zÓ	"ñ 6Ü
�‰˜ }Õ5÷6ð 6÷+ñ ú÷,ñ ,ú÷4ñ 4ú÷.ð .ú÷:ð :ú÷6ð 6ú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�  C	  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!  _	  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•  g	  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˜  q	  sc   € à�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ž  x	  s×   € ä�dœGŸL™LÔ)Ð)Ð)ð ”C˜“I ˜v¬¨D«	 {Ð3ò @ˆÜ—*‘*˜TÑ, VÑ,ˆÜ˜'¤2×#7Ñ#7Ô8Ð8Ð8Ü�w  ~°wÕ?ð@ô 
�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öØ89ˆ×Ñ˜M×/Ñ/°Ó2Õ3òñ €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ˆ\ò 7ˆØ ×&Ñ& }×':Ñ':¸1Ó'=Ó>ˆØ×&Ñ& xÓ0°BÓ6Ð6Ð6ñ7r   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;Ö<°�a—m‘m GÕ,Ð<€NÐ<Ü	�GÓ	ñ 0Ü�Z‰Z˜Ó'ˆØ×$Ñ$ RÓ(ˆÜ�2‹wœ#œc¤# vÓ.Ó/Ò/Ð/Ñ/÷0ô
 
�‰�N¬¸wÓ/GÔ	H€BØ	×	 Ñ	  Ó	$€BÜ	�‰�EÓ	€BØ	×	 Ñ	  Ó	$€BÜ	�‰�E¤b×&8Ñ&8Ó&:Ô	;€BØ	×	 Ñ	  Ó	$€Bà�Ô�rÔ˜RÒÐÑÐÑùò =÷0ð 0ú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È  
  sE   € ð 	%Ø+ð€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Ó  -
  sp   € Ü�J‰J�r %´·	±	Ø	Œb�h‰h‹jÐØ	Œb�i‰i‹kÐð;ó 1ô €Eô 
�‰”zÐ)IÔ	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)NrO  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>[
  s   øè ø€ Ò-˜q”FÑ-ùó   ƒ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Ý  6
  s©  ø€ Ü×(Ñ(ØÜ
�‰˜Ó!Ü×#Ñ#Ó%ô€Fô
 ×(Ñ(ØÜ
�‰˜	Ó"Ü×#Ñ#Ó%ô€Fô
 �^‰^×'Ñ'¬¯©´%¸³)Ó)<Ð(=ÀcÀUÐ'ÓK€FÜ�^‰^×'Ñ'¬¯©´%¸³)Ó)<Ð(=ÀcÀUÐ'ÓK€Fä	�‰”yÐ(LÔ	Mñ %Ü
�
‰
�F˜FÐ#Ô$÷%ð	ð ô
 
�‰”y¨Ô	1ñ Ü
�
‰
’9Ô÷ð	.ð ô 
�‰”y¨Ô	1ñ Ü
�
‰
�4Ô÷ð	/ð ô 
�‰”y¨Ô	1ñ /Ü
�
‰
Ó-¤E¨!£HÔ-Ô.÷/ð 	Pð ô 
�‰”z¨Ô	2ñ Ü
×Ñ˜2Ô÷ð	ð ô 
�‰”y¨Ô	1ñ %Ü
�
‰
�F˜FÐ#Ô$÷%ð	Jð ô 
�‰”y¨Ô	1ñ  Ü
�
‰
�F˜A�;Ô÷ ð 	Nð ô 
�‰”y¨Ô	1ñ (Ü
×Ñ˜F A˜;Ô'÷(ð (÷a%ñ %ú÷ñ ú÷ñ ú÷/ñ /ú÷ð ú÷%ð %ú÷ ð  ú÷(ð (ú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â  x
  sU  € Ü�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Ð:ò JˆÜ—*‘*˜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ñJ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   øè ø€ Ò. ”eÑ.ù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ñ 	Ø×ÑÔ÷	ð 	ñ÷	ð 	ú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Ì   )rl  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ò CˆØ˜˜a˜S�kÑ!ˆØ�
‰
ŒÜ
�‰�u—{‘{ 1 Q¡3¨Ó*¨D°>Ñ,AÕBðCð
 ×$Ñ$Ø”—‘˜!˜˜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Ó	ñ 8Ü—*‘*Ð3Ü*,¯/©/ÀÔ*HôJˆà�~‰~×$Ñ$ Z×%6Ñ%6Ô7Ð7Ñ7÷8ô �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à�=‰=˜Ô"Ð"Ñ"÷)8ñ 8ú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Ó	ñ OÜ—:‘:˜n¼×9KÑ9KÓ9MÔNˆ÷Oà�?‰?×!Ñ! %§,¡,Ô/Ð/Ð/ô 
�‰Ô(Ó	)ñ ?Ü
�
‰
”3�t“9¬×);Ñ);Ó)=Õ>÷?ð ?÷Oð Oú÷
?ð ?ú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÷  ê
  sD   € ä! 'Ó*�G€A€tÜ	�‰”zÐ)KÔ	Lñ ,Ü
�
‰
�D�6 (Õ+÷,÷ ,ñ ,ú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   Úunionr}  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)NrO  r§   rP  zcannot pass any additionalr   r  )rÇ   rS   r  r  rN  )rÀ   rÌ  s     r   Ú.test_open_union_dataset_with_additional_kwargsrü  ý
  sH   € Ü�J‰J�x¨MÀ)ÔL€EÜ	�‰”zÐ)EÔ	Fñ .Ü
�
‰
�E�7 9Õ-÷.÷ .ñ .ú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þ    sx   € ô 
�‰Ô(Ó	)ñ <Ü
�
‰
Ð,°UÕ;÷<ô 
�‰”r—‘Ð.BÔ	Cñ AÜ
�
‰
Ð1¸%Õ@÷Að A÷<ð <ú÷Að Aú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Úpart2r6  z{0}/{1})r2  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_typer2  s     €r   r9  z/test_partition_discovery.<locals>.expected_typeE  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“  r2  rÿ  r   Úhas_nullÚfmtÚ
null_valueÚbasepathÚ
part_keys1Ú
part_keys2r  r  rq   rS   r9  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�
Øò 9ˆØò 	9ˆEØØ—
‘
˜5Ò. J°Ò0C¸ÓDñEˆDà�J‰J˜tˆJÔ$Ü�N‰N˜5 $¨Ñ"7Õ8ñ		9ð9ô �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Ð   Tr6  r©  rž  )rž  r¾   r   rb   )r?   r   ra  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  S  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  r]  r^  r_  r`  r\  rc   rq   r   rr   s              r   r[  r[  r  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Ô"÷#ð �$˜˜C  t¨Z¸ÐCÐC÷#ð #ú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	  )r[  rõ   r   rq   rc   r\  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É   rW  rÇ   rS   rä   r	  )
r[  rõ   r   rq   rú   r\  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	  )r[  r   rq   rt  r]  r^  r_  r`  r)  r*  r‹   rc   rS   s                r   Ú$test_open_dataset_from_uri_s3_fsspecr0  Ÿ  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/nestedr7  )r2  z/nested/folder/data.parquet)r2  r3  rP  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/existr6  ÚNotFoundÚFile)r›   r  r   rf   r?   r   rg   rl   rm   rÇ   rS   rä   r	  rÐ   r  r  ra  rN  r_   r'   )r!  r  r]  r^  r_  r`  Úbucketrq   r\  rc   r   rr   rS   Útemplater‹  Úprefixr6  Ú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ð ò 0‰ˆ�Ø�o‰o˜fÓ%ˆÜ—*‘*˜T¨c¸)ÔDˆØ×ÑÓ!×(Ñ(¨Õ/Ð/Ð/ð0ô
 
�‰”r—‘Ð.CÔ	Dñ NØ�o‰o˜cÓ"ˆÜ
�
‰
Ð<ÈÕM÷Nð
	!ð 
ð &€DØ
�/‰/˜$Ó
€CÜ	�‰”zÓ	"ð 3 cÜ
�
‰
�>¨cÕ2÷3äˆs�y‰y‹>˜UŸ\™\¨*°d¸CÓ@Ò@Ð@Ð@à3€DØ
�/‰/˜$Ó
€CÜ	�‰”zÓ	"ð 3 cÜ
�
‰
�>¨cÕ2÷3äˆs�y‰y‹>˜UŸ\™\¨&°$¸Ó<Ò<Ð<Ñ<÷]#ñ #ú÷4Nñ Nú÷3ð 3ú÷3ð 3ú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_fsspecrB  ý  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Ï  r6  rA  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_fsspecrG    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Ë  rK  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_timestamprM  "  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_castrP  >  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_nullrR  I  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   rO  r   r9  s
             r   Útest_filter_compute_expressionrW  V  sg  € ä�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 )NrO  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>t  s   è ø€ ÒK¨AŒz˜!œRŸY™Y×'ÑKùs   ‚$&r   )rÇ   rÎ   rc   rÉ   rÈ   ÚUnionDatasetFactoryr±   rD  r¬  r	  rC  rM   rÏ   r*  )rÀ   rÌ  rÓ   s      r   Útest_dataset_unionr[  k  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)NrO  r§   rP  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_datasetsre  z  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%ð %ú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   )rO  rÕ  r_  rÏ  )r  r  ÚIsADirectoryErrorrÇ   rS   )rÀ   rc  s     r   Ú4test_dataset_from_a_list_of_local_directories_raisesrh  ¼  s>   € Ø
D€CÜ	�‰Ô(°Ô	4ñ MÜ
�
‰
Ò1¸mÕL÷M÷ Mñ Mú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 )NrO  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_datasetsrj  Â  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   r6  c                 ó  •— t        j                  t        ‰dz  «      | ¬«      }|�|j                  j	                  |«      sJ ‚|j                  j	                  | «      sJ ‚‰j                  |«      }|j	                  |«      sJ ‚y )Nr6  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_schemarp  â  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ñ )à×Ñ Ô(÷)÷ )ñ )ú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)Nr6  r[   rÏ  r  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_hangrs    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ñ à×"Ñ"Ó$ˆØ�‰Ô÷÷ ñ ú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   rl  rC   rZ   z
test.arrowr   r  )r¨  Úarrow)r?   r   r~   r_   Úoutput_streamÚRecordBatchFileWriterr=   Úwrite_batchrç   rF  rÇ   rS   r  rä   r	  rV   )	r·  rõ   r   rq   rK  rL  rS   r9  Ú
format_strs	            r   Útest_ipc_formatrz  .  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   rl  rC   rZ   útest.orcr  Tr@  r}  r\   r)   Úb2rv   )r  r  g333333ã?rY   r[   rý   r   )r¯   r}  r?   r   r~   r_   rm   rÇ   rS   r+  rh   rK   rM   ÚFileFragmenträ   rD  r	  rV   r¥  r@   rò   )r·  rõ   r}  r   rq   rS   r  r9  s           r   Útest_orc_formatr�  D  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   r|  rÏ  r   rw   rl  rC   rZ   r~  r}  r  r   rY   rv   )Ú
batch_size)r¯   r}  r?   r   r~   r_   rm   rÇ   rS   rh   rç   r±   rí   r	  r™  )r·  rõ   r}  r   rq   rS   r9  s          r   Útest_orc_scan_optionsr„  k  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>  r}  r  )rÄ  r+  r,  r  r  rN  rÇ   rS   r†  s    r   Útest_orc_format_not_supportedr‡  ‚  sP   € ð*Þ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ª   r}  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   rl  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   rl  rC   rZ   r“  Úgzz	test.csv.©r‘  FrŽ  ri  r  )r¯   ÚCodecÚis_availabler  Úskipr?   r   r~   rc   rŠ   r_   rg   rÅ  r�  Úwriterx  rÇ   rS   r%  rä   r	  )r·  r‘  rõ   r   rú   Úsuffixrq   rK  Ú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—>‘> 'Ó*Ô+÷,ô �j‰j˜¤b×&6Ñ&6Ó&8Ô9€GØ×$Ñ$ WÓ-€FØ�=‰=˜ÔÐÑ÷,ð ,ú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   rK  rS   r9  s         r   Útest_csv_format_optionsr¥  Í  s|  € Üˆw˜Ñ#Ó$€DÜ	ˆd�C‹ð 0˜DØ�
‰
Ð.Ô/÷0ä�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÷0ñ 0ú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   rK  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_valuesr1  r4  r5  )r3  rö  )Úfragment_scan_optionsr£  )rÇ  ÚspamNr2  )rÇ  r¯  r¬  )r_   rL   rœ  rÇ   rS   r¯   r&  r8  r7  r?   r(  rä   r	  r   r~   r%  )	r·  rõ   rq   rK  rS   r3  rÒ   r9  r|  s	            r   Útest_csv_fragment_optionsr°  ò  s‰  € Üˆw˜Ñ#Ó$€DÜ	ˆd�C‹ð 0˜DØ�
‰
Ð.Ô/÷0ä�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÷%0ñ 0ú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   rl  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   rl  rC   rZ   r²  r³  r´  r   rM  r¶  r·  r¡  ztry to increase block sizer   r{   r5  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¿    sL  € ä�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Ç   r9  r*  r(  rS   r)  rä   r	  )	r·  rõ   r   rq   rr   rÙ  rÒ   rS   r9  s	            r   Útest_json_fragment_optionsrÁ  4  sl  € ä�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ô
;ñ Fä×,Ñ,ÜŸ™×,Ñ,¸Ð,Ó:ô<ˆä—*‘*˜T¬"×*;Ñ*;¸GÓ*DÔEˆ÷	Fô ×(Ñ(Ü—W‘W×(Ñ(°BÐ(Ó7ô9€Gä�j‰j˜¤b×&7Ñ&7¸Ó&@ÔA€GØ×$Ñ$ WÓ-€FØ�=‰=˜ÔÐÑ÷ñ ú÷Fð 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_rowsrK  rF  rG  rö  r  Údataset_transcodeds              r   Útest_encodingrÌ  K  s  € Üˆw˜Ñ#Ó$€Dð!ó 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ñ%D÷	#ð 	#ú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¯   rY  ra  rä   r&  r(  r%  r	  )
r·  rõ   rq   rK  rF  rG  rS   rö  r  rË  s
             r   Útest_column_names_encodingrÏ  d  sJ  € Üˆw˜Ñ#Ó$€Dä	ˆd�DÓ	ð 1˜TØ�
‰
Ð/Ô0÷1ô —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ñ )Ø×Ñ Ô(÷)ô —6‘6×%Ñ%¨yÐ%Ó9€LÜ×"Ñ"°Ô=€KÜŸ™ D°Ô=ÐØ×$Ñ$×+Ñ+¨OÔ<Ð<Ð<Ø×&Ñ&Ó(×/Ñ/°Ô?Ð?Ñ?÷%1ñ 1ú÷)ð )ú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   rl  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   rl  rS   r9  s          r   Útest_feather_formatrÕ  |  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Ó	"ñ GØ×Ñ¤§
¡
¨7¸9Ô EÔF÷G÷ Gñ Gú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   rl  r  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   rl  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÷	)ô �]‰]œ:Ð-?Ô@ñ 	NÜ—H‘H˜[Ó)ˆEØ'×:Ñ:ÀuÐ:ÓMˆM÷	Nð 	à×2Ñ2¸{Ð2ÓK€MÜ×ÑØÜˆG�lÑ"Ó#ØØ"õ	ô �j‰j˜¬×)9Ñ)9Ó);Ô<€GØ×$Ñ$ WÓ-€FØ�=‰=˜ÔÐÐà Ñ,¨~Ñ=€OØ%×*Ñ*Ó,×4Ñ4€OØ,¨|Ñ;¸nÑLÐØ)×.Ñ.Ó0×8Ñ8ÐØÐ.Ò.Ð.Ñ.÷1	)ñ 	)ú÷	Nð 	ú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‘  rA  rÏ  r{   rñ  )r  r.  rï  rú   rc   r‹   r*  rÇ   rò  r=   r	  r±   r
  rä   rí   )	r·  r@  rí  rî  r   rF  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   ra  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   r  )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ˆÜ—‘Ø”4œ˜a ™d Q q¡S¨"¡HÓ-Ó.Ð/ó1ˆà !  H˜~Ñ-ˆ
Ü
�‰�u˜j¸YÕGØ�"‰×#Ñ# q c¨ NÕ3ð4ô ˜ +Ñ-Ó.€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  =  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  K  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/   ra  r   rù  r`  rG   rl   r”  r_   r  )rí  r   s     r   Ú#_create_parquet_dataset_partitionedr  ]  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  h  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  |  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  ‹  sb  € ð 'Ñ€Bˆð
 Ð?Ñ?€IÜ5°iÓ@Ñ€M�1ñ 
�}�oÓ	&ñ Ü×$Ñ$ØÜŸ™°Ô7Øôˆ÷ñ 
�bÓ	ñ 2Ü˜×.Ñ.Ó0Ó1ˆ	÷2ñ 
�bÓ	ñ 9ÜˆW×"Ñ"¤2§8¡8¨D£>°BÑ#6Ó7Ô8÷9ñ 
�bÓ	ñ =Ø�!‰×'Ñ'¬¯©°«¸Ñ(;Ô<÷=ñ 
�bÓ	ñ 3Ø  ‘|×6Ñ6Ó8ˆØ�Q‰×0Ñ0Ô2÷3ð 3÷'ð ú÷2ð 2ú÷9ð 9ú÷=ð =ú÷3ð 3ú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   r6  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   rE  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ž  rn  Úobject©Údtypez(test_dataset_project_null_column.parquetr¯   rû  r§   rÒ  )r3   r4   ra  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)  rj  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_columnsr3  ú  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°ÐÔ<÷=÷ =ñ =ú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>2  ó   è ø€ Ò4˜Qˆq�DŒyÑ4ùrŒ  c              3   ó$   K  — | ]  }|d u –— Œ
 y ­wr   r   rˆ  s     r   rŠ  z6test_dataset_preserved_partitioning.<locals>.<genexpr>9  r6  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_partitioningr8    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”  rc  r-  rh  r	  )r·  r=   r   rq   Úactual_tables        r   Ú+test_write_to_dataset_given_null_just_worksr;  Q  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_tablerF  f  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 )Nru  F©rÐ   rÍ   rÝ   Ú*r©  )	rÇ   r²  rh   r	  r�   rS   rF  rä   r	  )rS   r“  Úexpected_filesrD  Úbase_dir_pathrÍ   Ú
file_pathsr¯  s           r   Ú_check_dataset_roundtriprM  m  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   rM  r_   r
   r•  )r·  rp   rt  rS   ÚtargetrJ  s         r   Útest_write_datasetrP  €  s3  € ð ˜-Ñ'€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Ó	ñ KÜ ØÐ,¨n¸cÀ6ô	K÷Kð
 Ð,Ñ,€IØ‡O�OÔÜ" 9Ó-€AÜ�j‰j˜Ó#€GàÐ0Ñ0€FØ˜~Ñ-Ð.€NÜ˜W¤c¨&£k°>À3ÈÕO÷Kð Kú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   rM  r_   )r·  rp   rt  rÍ   rS   rO  Úexpected_pathsr¶  s           r   Útest_write_dataset_partitionedrW  ¤  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 )NrV  rX  rZ   r¨  r\   r©  >   r  rW  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_namesr\  Å  s¾   € Ü�H‰HÒ+²/ÑBÓC€Eä×Ñ�U˜G¨EØ#& %õ)ô —
‘
˜7¨5À¸uÔE€IØ�O‰O€EàBGöØ=>ŒŒ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 )
NrV  rX  rZ   r¨  r\   r¬   )rÐ   rÍ   Úpartitioning_flavorr©  >   úb=xúb=yúb=zrY  rZ  s          r   Ú(test_write_dataset_with_field_names_hiverc  Ö  sÀ   € Ü�H‰HÒ+²/ÑBÓC€Eä×Ñ�U˜G¨EØ#& %¸VõEô —
‘
˜7¨5¸vÔF€IØ�O‰O€EàBGöØ=>ŒŒG�L‰L˜‹O×'Ñ'¨Ó0×7Ñ7Õ8ðÐð ð Ò 5Ò5Ð5Ð5à×(Ñ(Ó*€OØ×!Ñ! %Ô(Ð(Ñ(ùòr]  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)NrV  rX  rÏ  rj  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_scannerrh  ç  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   )ro  s   €r   ÚGatingFsrk    s	   ø„ õ	Hr   rp  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   )rO  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   ÚThreadr|  rô  rt  r�   rÌ  )r·  rp  r=   Úmin_backpressurerx  Úwrite_threadr}  Ú
last_valueÚbackpressure_probably_hitrt   ru  ro  rv  rz  rw  rê   r|  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)NrX  rÏ  ©r\   r}   r¨  r\   r©  )
r?   r   rÇ   r²  rS   r°  r±  rä   rÂ  r2  rf  s         r   Útest_write_dataset_with_datasetrˆ  G  sË   € Ü�H‰Hš?²Ñ;Ó<€Eä×Ñ�U˜G¨EØ#& %õ)ô �j‰j˜¨¸c¸UÔC€Gä	×	$Ñ	$Ó	&ð F¨(Ü
×Ñ˜ (Ø %°S°Eõ	;ô —J‘J˜x°ÀSÀEÔJˆ	Ø#×,Ñ,Ó.ˆÜ�O×-Ñ-Ó/Ó0°E·O±OÓ4EÒEÐEÑE÷F÷ Fñ Fú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Ç   rX  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_order_  sZ   € Ø�l‰l‹n×(Ñ(¨Ó-×9Ñ9¸tÐ9ÓDˆØ�l‰l‹n×(Ñ(¨Ó-×9Ñ9¸tÐ9ÓDˆØ�z‰z˜#ŒÐ‰r   r¨  r  rj  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—  X  sÝ  € à˜$‘€IÜ�H‰Hš?²Ñ;Ó<€EÜ—?‘?¬"¯)©)Ü	�‰�#”r—x‘x“zÓ	"Ð#ó+%Ø-3ô5€Lòô ×Ñ�U˜I°LÈÕOä�H‰Hš?²Ñ;Ó<€Eô 
�‰”r—‘Ó	'ñ BÜ
×Ñ˜ 	Ø&2¸5õ	B÷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Bñ Bús   ÃHÈH)c                 óf   — t        | «      D �cg c]  }t        j                  ||«      ‘Œ c}S c c}w r   )r/   r   Úrandint)rX  r²  r³  rt  s       r   Ú_generate_random_int_arrayrš  ‰  s%   € Ü.3°D«kÖ:¨ŒF�N‰N˜3 Õ$Ò:Ð:ùÒ:s   Ž.c                 óÐ   — g }g }t        | «      D ]<  }|j                  t        |d|¬«      «       |j                  dt        |«      z   «       Œ> t	        j
                  ||¬«      }|S )Nr   )rX  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Ÿ  �  sn   € Ø€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²  rh  ri  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°  �  s1  ø€ à˜$‘€IØÐØÐØ€NØ€Nä-¨nØ.<ó>€Lô ×Ñ�\ 9°YØ'8Ø(:õ<ô —:‘:˜iÓ(€Lð )Ð,=Ñ=ÀÑAÐô ˆ|ÓÐ 3Ò3Ð3Ð3ð  ÐÜ˜|Ó,ò C‰	ˆˆ6ØœS ›[Ñ(ˆÜ—*‘*˜V¨IÔ6ˆØ×%Ñ% g×&6Ñ&6Ó&8×&>Ñ&>¸qÑ&AÕBðCð ¤#Ð&<Ó"=Ò=Ð=Ð=Øœ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²  rh  ri  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¹  Â  s9  € à˜$‘€IØÐØÐØ€Nâ1€Lð -9ö:à(ô 1°Ø1?õAð :€Nð :ð Ð.Ñ.€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  rl  )rŸ  rÇ   r²  rh  ri  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Øò 0ˆØœs 6›{Ñ*ˆÜ—*‘*˜V¨IÔ6ˆØ× Ñ Ó"ˆØ×"Ñ"Ó$ˆØò 	0ˆEØ×Ñ §¡Õ/ñ	0ð0ð ˜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ª   rm  rl  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 )NrR  Tr6  rð  rU  r[   rÝ  r\   r¾   r›  r  )r  rÇ   rS   rª  r-  rÍ   r?   r=   r@   r~   rM  r_   )r·  rp   rt  rS   rO  rV  rÍ   s          r   Ú#test_write_dataset_partitioned_dictrÔ  H  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 )NrR  r¬   rð  r¾   r   Úpartitioned1c                 ó<   •— ‰j                  | j                  «       y r   )r0   rq   )Úwritten_fileÚpaths_writtens    €r   Úfile_visitorz4test_write_dataset_use_threads.<locals>.file_visitoro  s   ø€ Ø×Ñ˜\×.Ñ.Õ/r   r  T©rÐ   rÍ   rÝ   rÚ  rS  úpart-0.featherrT  Úpartitioned2FrH  r©  )r  rÇ   rS   rÍ   r?   r=   rD   r²  r�   ri   rš  r›  rä   r	  )r·  rp   rt  rS   rÍ   Útarget1rÚ  rV  Úpaths_written_setÚtarget2Úresult1Úresult2rÙ  s               @r   Útest_write_dataset_use_threadsrã  b  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Ð   rI  zdat_0.arrowr¨  r  rR  rS  rT  c                 ór   •— ‰j                  | j                  «       ‰j                  | j                  «       y r   )r0   rq   rX  )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   rh  rq   Úgetsizer±   rš  r›  )r·  r   r“  rL  rV  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¨d”B—G‘G—O‘O DÕ)ÐD€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  rI  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
    s„  € Ü�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õ	@÷@÷ @ñ @ú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©  Tr6  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   rJ  zdatetime64[D]r)  zdatetime64[ns]r[   r\   rª   r¤  r¦  rò  r§   r  rI  ú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/   ra  rb  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“  rL  rV  r9  rÓ  rÐ   ÚoptsÚmetaÚexpected_versionr=   r|  s                r   Útest_write_dataset_parquetr  :  sA  € ô �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>i  r¢  r£  r[   rª   r\   )r  r¥  Úchr1r¦  Úcsv_datasetr&  r  rI  ú
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“  rL  rV  r9  rÐ   r  s           r   Útest_write_dataset_csvr"  g  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                  óX  — t        j                  t        j                  j	                  d¬«      «      } | j                  «       }|j                  j                  dk(  sJ ‚| j                  d ¬«      }|j                  j                  dk(  sJ ‚t        j                  t        j                  j	                  d¬«      «      } | j                  d¬«      }|j                  j                  dk(  sJ ‚t        j                  «       } | j                  «       }|j                  j                  dk(  sJ ‚y )Nú|©r  r  ú,)rÇ   r%  r?   r&  r'  r‰  rá  r  )r|  Ú
write_optss     r   Ú0test_csv_make_write_options_uses_parse_delimiterr(  �  s  € ô ×!Ñ!¤"§&¡&×"5Ñ"5ÀÐ"5Ó"DÓE€JØ×.Ñ.Ó0€JØ×#Ñ#×-Ñ-°Ò4Ð4Ð4ð ×.Ñ.¸Ð.Ó>€JØ×#Ñ#×-Ñ-°Ò4Ð4Ð4ô ×!Ñ!¤"§&¡&×"5Ñ"5ÀÐ"5Ó"DÓE€JØ×.Ñ.¸Ð.Ó=€JØ×#Ñ#×-Ñ-°Ò4Ð4Ð4ô ×!Ñ!Ó#€JØ×.Ñ.Ó0€JØ×#Ñ#×-Ñ-°Ò4Ð4Ñ4r   c                 ó¶  — t        j                  ddgddgdœ«      }t        j                  t         j                  j                  d¬«      «      }t        j                  || |¬«       t        | d	z  «      5 }|j                  «       }d d d «       d
k(  sJ ‚t        j                  | |¬«      j                  «       }|j                  |«      sJ ‚y # 1 sw Y   ŒIxY w)NÚB1ÚB2ÚC1ÚC2)r  r  r  r%  r  r  z"B">"C"
"B1">"C1"
"B2">"C2"
)r?   r   rÇ   r%  r&  r'  r²  rL   r‡  rS   rä   r	  )r·  r   r|  Úfhrz  r9  s         r   Ú+test_write_dataset_uses_csv_parse_delimiterr/  ˜  sÄ   € Ü�H‰HØ�Dˆ\Ø�Dˆ\ñó €Eô
 ×!Ñ!¤"§&¡&×"5Ñ"5ÀÐ"5Ó"DÓE€JÜ×Ñ�U˜G¨JÕ7ä	ˆg˜Ñ$Ó	%ð ¨Ø—'‘'“)ˆ÷àÐ7Ò7Ð7Ð7ô �Z‰Z˜¨
Ô3×<Ñ<Ó>€FØ�=‰=˜ÔÐÑ÷ð ús   Á6CÃC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“  r3  s       @r   Ú'test_write_dataset_parquet_file_visitorr4  ª  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¤  rR  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Û  rS  r  rT  rv   )r/   r?   r   rÇ   rÍ   r=   rD   r²  r�   ri   rš  r›  rV  )r·  r½   rê  Úf1_valsÚf2_valsr   rí  rÍ   rÚ  rV  rß  rÙ  r7  s              @@r   Ú+test_partition_dataset_parquet_file_visitorr:  À  s]  ù€ ä!& q£×C˜°u°gÀ±lÒC¨dŠtÐCˆtÐC€GÑCÜ$)¨!£H×F˜5¸%¸À2¹ÒF°ˆt�B‹wÐFˆwÐF€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[   rJ  zEurope/Brussels)Útzr§   r  r  )
r?   r   r3   rL  rx   r<  rÇ   r²  rl   rc  )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²  rc  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   rc  r=   rÉ  )r·  r   r=   s      r   Ú*test_write_dataset_schema_metadata_parquetrB  ý  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 )Nr5  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  r^  r¨  zmybucket/dataset2r©  r  ró  zmybucket/dataset3)rÐ   r?   r   r~   r/   rÇ   rÍ   r=   rD   r²  rS   rä   r	  )r[  rt  rc   r]  r^  r_  r`  Úuri_templater   r¾   r9  r\  s               r   Útest_write_dataset_s3rF    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>b  r¢  r£  r[   rª   r\   r¤  r¦  r¾   r¬   r   zexisting-bucketr  Fr�  )rú   rÐ   rf   rÍ   r�  r¨  r^  Tz&Bucket 'non-existing-bucket' not foundr   znon-existing-bucket)rú   rÐ   rf   r�  Úlimited)r_  r`  rK  rL  Ú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  rZ  )	r!  r/  r]  r^  rt  rc   r   r¾   r9  s	            r   Útest_write_dataset_s3_put_onlyrQ  K  s=  € õ (ð ! Ñ.Ñ€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õ	
÷
ñ 
ØØØ!˜F ! D 6Ð*ØØ"ô
€Bô 
�‰”wÐ&EÔ	Fñ 
Ü
×ÑØÐ(°RØ¨Ø#8õ	
÷
ð 
÷!
ð 
ú÷ 
ð 
ú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_castrT  ™  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¾  rY  r^  ©rÉ  r  N©rY  rÀ  r_  ú
full outer)Ú	join_type©r   rv   rÑ  r[  ©r[   r\   rÙ  N©rÉ  r  Nr]  ©r?   r   rÇ   r²  rS   rÌ  rä   r1  ©r·  r½  Úds1r¾  Úds2r9  s         r   Útest_dataset_joinrk  ¬  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 )NrV  rW  rX  r½  r¨  r  rZ  r\  )rY  r_  r¾  rY  r`  ra  rb  Ú_r©rc  Úright_suffixrd  re  rf  rg  rh  s         r   Útest_dataset_join_unique_keyrp  Ë  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 )NrV  ©rª   r�  é<   rW  )rY  r^  ÚcolValsr½  r¨  r  rZ  ©r[  r�  rª   r\  r¾  rY  rb  rm  rn  rd  )rª   r�  rs  Nre  )rª   r�  Nr[  rf  )rY  r^  rt  ÚcolB_rÚ	colVals_rr¦  rg  rh  s         r   Útest_dataset_join_collisionsrx  ê  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Ù  rX  r½  r¨  r  )rv   r‘  r  )r[   r\   Úg)r!  r)  g      @)r^  r_  ÚcolCr¾  rY  rÀ  r   r^  r_  ©ÚonÚbyÚ	toleranceÚright_onÚright_by)r!  NNNN)rY  rÀ  r{  )
r?   rE   Úfrom_pydictrÇ   r²  rS   Ú	join_asofrä   r1  r   rh  s         r   Útest_dataset_join_asofr„    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 )NrV  rr  rÏ  )rY  r^  r}  r½  r¨  r  ru  r\  rZ  rÐ  )r^  rt  rY  r}  r¾  r}  rY  r^  r   ©r}  r~  r  )Nr  N©rY  r^  r}  rt  )r?   r   rÇ   r²  rS   rƒ  rä   r1  rh  s         r   Ú"test_dataset_join_asof_multiple_byrˆ  "  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 )Nr}  rÏ  r½  r¨  r  r\  rÐ  )rt  r}  r¾  r   r†  )r]  r]  r  )r}  rt  )r?   r   rÇ   r²  rS   rƒ  rä   rh  s         r   Útest_dataset_join_asof_empty_byrŠ  @  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)NrV  rr  rÏ  rW  r‡  r½  r¨  r  ru  r\  )r  rr  rØ  rZ  rÐ  )r^  rt  ÚcolUniqrY  r}  r¾  zXColumns {'colVals'} present in both tables. AsofJoin does not support column collisions.r   r}  rY  r^  r   r|  )	r?   r   rÇ   r²  rS   r  r  rN  rƒ  )r·  r½  ri  r¾  rj  rc  s         r   Ú!test_dataset_join_asof_collisionsr�  X  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Ù  rz  rX  rc   r½  r¨  r  r�  rY  rY   rÀ  r[   r   r   rR  rÑ  rý   rv   r\   r!  rª   r�  ©r^  rÀ  zright outer©Úkeysrc  r^  )rY  r^  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½  ri  r9  r|  Úr2r!  ÚjoinedÚschema_without_col2Ú	newschemas              r   Útest_dataset_filterr›  x  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’  rX  )r‘  rª   rm  )Úhr:   Úlrc   r½  r¨  r  r¾  r�  rY  rY   r‘  )r   rv   r‘  )r[   r\   r�  rª   r�  r[   r\   r“  rÀ  z
left outerr”  )rª   r�  N)rY  rÀ  r^  zcurrently not supportedr   )r?   r   rÇ   r²  rS   r  rþ   rË  r@   rä   rÌ  r1  r  r  rN  )
r·  rŽ  r½  r¾  ri  rj  Ú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ñ 1Ü
�
‰
�L ,Ð/Ô0÷1÷ 1ñ 1ú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   ri  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ä   r7  r1  r-  rh  r3  r�   r   rh  ri  )ÚtmpdirrÇ   rq   Údt_tablerc  rÀ  Úencoded_pathsrL  s           r   Ú!test_dataset_partition_with_slashrÄ  =  sr  € Ý%àÐ$Ñ$€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¸D�[¤5¨°BÔ#7Ó7ÐM€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)ÚnullablerW  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Ì  b  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   barrm  rW  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Ô  z  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  rW  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“  ri  rA  rÉ  Úccs               r   Ú#test_write_dataset_write_page_indexrÜ  —  s_  € Ø)ó RÐØ -ó 	RÐÜ—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àŸ	™	ò R�ä×+Ñ+¨DÓ1�Ø×'Ñ'¨Ó*×1Ñ1°!Ó4�Ø×*Ñ*Ð.>Ñ>Ð>Ð>Ø×*Ñ*Ð.>ÐAQÑ.QÒQÐQÐQòRò-	RñR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  rZ  )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ü  ê  s7  € ô —‘˜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ØØ%ô
÷ ‰(‹*ð 	
÷÷ ñ ús   Ç,&HÈH$Úcdcr^  r4  )Úmin_chunk_sizeÚmax_chunk_sizec                 ó   — t        j                  dg d¢i«      }t        j                  «       }|j	                  |¬«      }t        j
                  || ||¬«       t        j                  | |¬«      j                  «       j                  |«      sJ ‚y )Nr[   rÏ  )Úuse_content_defined_chunkingrÛ  r  )	r?   r   rÇ   rÈ   r‰  r²  rS   rä   r	  )r·  rý  rG  r  r  s        r   Ú+test_write_dataset_content_defined_chunkingr  3  st   € ô —X‘X˜s¢IÐ.Ó/€NÜ
×
Ñ
Ó
 €CØ×!Ñ!¸sÐ!ÓC€DÜ×Ñ�^ W°SÀtÕLÜ�:‰:�g cÔ*×3Ñ3Ó5×<Ñ<¸^ÔLÐLÑLr   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Úpformatrc  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  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+   rh  rš  rq  r   Úsysr°  ru  r~  rô  Úshutilr   Úurllib.parser   Únumpyra  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/  r;  rÉ   rM  rT  Ús3rg  r~  r�  r�  r•  rœ  r¡  r®  r¶  r½  rÆ  rÍ  rÐ  rå  rö  rø  rþ  r  r  r
  r  r  r  r#  r1  r:  rM  rT  rZ  r\  rf  ro  rr  rw  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þ  r  r  r[  r$  r'  r0  r>  rB  rG  rM  rP  rR  rW  r[  re  rh  rj  rp  rs  rz  r}  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+  r3  r8  r;  rF  rM  rP  rW  r\  rc  rh  r…  rˆ  r—  rš  rŸ  r£  r°  r¹  r¾  rÒ  rÔ  rã  rì  rù  rý  r  r
  r  r  r"  r(  r/  r4  r:  r=  r@  rB  rF  rP  rQ  rT  rk  rp  rx  r„  rˆ  rŠ  r�  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 ‡�×Ññ$ó ð$ð" ‡�×Ññ;ó ð;ò|%TòP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5ò. ð$ ‡�×Ññó ðð* ‡�×Ññ ,ó ð ,ð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 ‡�×ÑØ‡�×Ñ™ØÙ ±IÒ>ð!ó òMó	ó ñ
Mô'ð& ‡�×Òò5ó ò5øðey ò Ø	ƒBðûð" ò Ø	ƒBðûð
 ò Ø	ƒBðûð
 ò Ø	ƒBðús[   ºAV. Á3AV< Á8AW
 Á?AW ÁV.AV9ÁV8AV9ÁV<AWÁWAWÁW
AWÁWAWÁWAW#ÁW"AW#