Ë
    ìmxiÕT ã                   ó®*  — 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ºd¹„ Z»ejZ                  jJ                  ejZ                  j�                  d®g dº¢«      d»„ «       «       Z¼d¼„ Z½ejZ                  jV                  ejZ                  jJ                  d½„ «       «       Z¾ejZ                  jV                  ejZ                  jJ                  ejZ                  �j                  e�j€                  d¾k(  d¿¬À«      dÁ„ «       «       «       ZÁejZ                  jV                  ejZ                  jJ                  dÂ„ «       «       ZÂejZ                  jV                  dÃ„ «       ZÃejZ                  jV                  ejZ                  jJ                  dÄ„ «       «       ZÄdÅ„ ZÅdÆ„ ZÆejZ                  jV                  ejZ                  jJ                  dÇ„ «       «       ZÇejZ                  jV                  ejZ                  jJ                  dÈ„ «       «       ZÈejZ                  jV                  ejZ                  jJ                  dÉ„ «       «       ZÉejZ                  jV                  ejZ                  jJ                  dÊ„ «       «       ZÊejZ                  jV                  dË„ «       ZËejZ                  jV                  ejZ                  jJ                  dÌ„ «       «       ZÌejZ                  jV                  ejZ                  jJ                  dÍ„ «       «       ZÍdÎ„ ZÎejZ                  jJ                  ejZ                  jV                  dÏ„ «       «       ZÏejZ                  jV                  ejZ                  jJ                  dÐ„ «       «       ZÐdÑ„ ZÑ	 �ddÒ„ZÒejZ                  jV                  dÓ„ «       ZÓejZ                  jV                  ejZ                  jJ                  dÔ„ «       «       ZÔdÕ„ ZÕdÖ„ ZÖd×„ Z×ejZ                  jV                  ejZ                  j                  dØ„ «       «       ZØdÙ„ ZÙejZ                  jJ                  dÚ„ «       ZÚ�ddÛ„ZÛdÜ„ ZÜdÝ„ ZÝejZ                  jV                  dÞ„ «       ZÞejZ                  jV                  dß„ «       ZßejZ                  jV                  dà„ «       ZàejZ                  jV                  dá„ «       ZáejZ                  jV                  ejZ                  jJ                  dâ„ «       «       ZâejZ                  jV                  ejZ                  jJ                  dã„ «       «       ZãejZ                  jV                  ejZ                  jJ                  dä„ «       «       Zädå„ Zådæ„ Zædç„ Zçdè„ Zèdé„ ZéejZ                  j                  ejZ                  jV                  dê„ «       «       Zêdë„ ZëejZ                  jV                  dì„ «       ZìejZ                  jV                  dí„ «       ZíejZ                  jV                  ejZ                  jJ                  dî„ «       «       Zîdï„ ZïejZ                  jV                  dð„ «       ZðejZ                  jV                  ejZ                  jª                  dñ„ «       «       ZñdòZòejZ                  jV                  ejZ                  jª                  dó„ «       «       ZóejZ                  jV                  dô„ «       ZôejZ                  jP                  dõ„ «       ZõejZ                  jP                  dö„ «       ZöejZ                  jP                  d÷„ «       Z÷ejZ                  jP                  dø„ «       ZøejZ                  jP                  dù„ «       ZùejZ                  jP                  dú„ «       ZúejZ                  jP                  dû„ «       ZûejZ                  j�                  düdýdþg«      dÿ„ «       ZüejZ                  j�                  düdýdþg«      �d „ «       Zý�d„ Zþ�d„ ZÿejZ                  j�                  �d�d«      �d„ «       �Z �d„ �ZejZ                  jV                  �d„ «       �Z�d„ �Z�d	„ �ZejZ                  j�                  düdýdþg«      �d
„ «       �Z�d„ �Z�d„ �Z�d„ �Zy# e$ r dZY �Œëw xY w# e$ r dZ&Y �ŒÀw xY w# e$ r dZ)Y �ŒÇw xY w# e$ r dZ,Y �ŒÎw xY w(  é    N)Úcopytree)Úquote)Úis_threading_enabled)ÚFSProtocolClassÚProxyHandlerÚ_configure_s3_limited_userÚ_filesystem_uriÚ
change_cwdc                   ó   — e Zd Zd„ Zdd„Zy)ÚTableStreamWrapperc                 ó   — || _         y ©N©Útable)Úselfr   s     úQ/home/htdocs/ttos/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                  óú  — t        j                  «       } t        j                  d¬«      }t        j                  dd¬«      }t        j                  dd¬«      }t        j                  dd	¬
«      }t        j                  d¬«      }t        j                  ddd¬«      }t        j                  d|¬«      }| j                  du sJ ‚| j
                  dk(  sJ ‚t        «       r| j                  du sJ ‚| j                  dk(  sJ ‚| j                  dk(  sJ ‚| j                  du sJ ‚|j                  du sJ ‚|j
                  dk(  sJ ‚t        «       r|j                  du sJ ‚|j                  du sJ ‚|j
                  dk(  sJ ‚t        «       r|j                  du sJ ‚|j                  du sJ ‚|j
                  dk(  sJ ‚t        «       r|j                  du sJ ‚|j                  dk(  sJ ‚|j                  d	k(  sJ ‚|j                  du sJ ‚t        «       r|j                  du sJ ‚|j                  |k(  sJ ‚|j                  | j                  k7  sJ ‚| | k(  sJ ‚| |k7  sJ ‚||k7  sJ ‚||k7  sJ ‚|| k7  sJ ‚|| k7  sJ ‚|| k7  sJ ‚y )Né   ©Úbuffer_sizei    T)r   Úuse_buffered_streamF)r   Ú
pre_bufferi@â i )Úthrift_string_size_limitÚthrift_container_size_limit©Úpage_checksum_verificationrx  )Úhole_size_limitÚrange_size_limitÚlazy)r  Úcache_optionsi áõé@B )rÇ   ÚParquetFragmentScanOptionsr?   ÚCacheOptionsr  r   r   r  r  r  r  r
  )rî  rï  rð  rñ  rò  Úopts6Ú
cache_optsÚopts7s           r   Útest_parquet_scan_optionsr  ò  s¶  € ä×)Ñ)Ó+€EÜ×)Ñ)°dÔ;€EÜ×)Ñ)Ø¨tô5€Eä×)Ñ)°eÈÔN€EÜ×)Ñ)Ø!'Ø$*ô-€Eô ×)Ñ)Ø#'ô)€Eä—‘Ø°¸dôD€Jä×)Ñ)°TÈÔT€Eà×$Ñ$¨Ñ-Ð-Ð-Ø×Ñ Ò%Ð%Ð%ÜÔØ×Ñ 4Ñ'Ð'Ð'Ø×)Ñ)¨[Ò8Ð8Ð8Ø×,Ñ,°	Ò9Ð9Ð9Ø×+Ñ+¨uÑ4Ð4Ð4à×$Ñ$¨Ñ-Ð-Ð-Ø×Ñ Ò%Ð%Ð%ÜÔØ×Ñ 4Ñ'Ð'Ð'à×$Ñ$¨Ñ,Ð,Ð,Ø×Ñ Ò%Ð%Ð%ÜÔØ×Ñ 4Ñ'Ð'Ð'à×$Ñ$¨Ñ-Ð-Ð-Ø×Ñ Ò%Ð%Ð%ÜÔØ×Ñ 5Ñ(Ð(Ð(à×)Ñ)¨VÒ3Ð3Ð3Ø×,Ñ,°Ò6Ð6Ð6à×+Ñ+¨tÑ3Ð3Ð3äÔØ×Ñ 4Ñ'Ð'Ð'Ø×Ñ *Ò,Ð,Ð,Ø×Ñ %×"5Ñ"5Ò5Ð5Ð5à�EŠ>Ðˆ>Ø�EŠ>Ðˆ>Ø�EŠ>Ðˆ>Ø�EŠ>Ðˆ>Ø�EŠ>Ðˆ>Ø�EŠ>Ðˆ>Ø�EŠ>Ð‰>r   c                 ó  — t        j                  «       t        j                  «       t        j                  t        j                  j                  dd¬«      «      t        j                  t        j                  j                  ddg¬«      ¬«      t        j                  t        j                  j                  dd¬	«      ¬«      t        j                  «       t        j                  t        j                  j                  dd
¬«      ¬«      t        j                  t        j                  j                  dd¬«      ¬«      g}	 |j                  t        j                  «       «       t        �g|j                  t        j                  «       t        j                  dh¬«      t        j                  d¬«      t        j                  dddd¬«      g«       |D ]'  }| j                  | j!                  |«      «      |k(  rŒ'J ‚ y # t        $ r Y Œ¥w xY w)Nú	T)Ú	delimiterÚignore_empty_linesrY   rÇ  )Ú	skip_rowsrg  ©rö  i   )r  Ú
block_sizeÚignore©Únewlines_in_valuesÚunexpected_field_behavior)Úparse_optionsFé   ©rÝ   r  r[   rÞ  )r  rþ  é{   iÈ  )r  r   r  r  )rÇ   r  ÚCsvFileFormatr?   ÚcsvÚParseOptionsÚReadOptionsÚJsonFileFormatÚjsonr0   ÚOrcFileFormatÚImportErrorrl   ÚextendrÈ   r¼  r½  )r¾  Úformatsr  s      r   Útest_file_format_picklingr+  ,  sÄ  € ä
×ÑÓÜ
×ÑÓÜ
×ÑœŸ™×,Ñ,°tØ@Dð -ó Fó 	Gä
×Ñ¤b§f¡f×&8Ñ&8Ø u gð '9ó '/ô 	0ä
×Ñ¤b§f¡f×&8Ñ&8Ø Eð '9ó '+ô 	,ä
×ÑÓÜ
×ÑÜŸ'™'×.Ñ.À$ØIQð /ó Sô	Tô 	×Ñ¤r§w¡w×':Ñ':Ø¨"ð (;ó (.ô 	/ð€Gð Ø�‰”r×'Ñ'Ó)Ô*ô 
€~Ø�‰Ü× Ñ Ó"Ü× Ñ °S°EÔ:Ü× Ñ °TÔ:Ü× Ñ Ø$(Ø Ø),Ø,/ô	ð	

ô 
	ð ò 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_picklingr7  S  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   r8  r  rÐ   rÒ   rÓ   Úinspected_schemarS   rê   r6  r7  Úexpected_strr:   Úexpected_structÚiteratorrt   rT   rÅ   rÆ   Úexpected_groupÚexpected_keyÚexpected_constr   s                          r   Útest_filesystem_factoryrI  l  sÂ  € ô ×!Ñ!Ü×*Ñ*¸u¸gÔFØô€Fô
 ×)Ñ)¨(Ó3€GÜ×3Ñ3Ü
�	‰	Ü�H‰H�WœbŸh™h›jÓ)Ü�H‰H�UœBŸI™I›KÓ(ð
ó 	ó€GÔð ×%Ñ%¨Ò1Ð1Ð1Ø×+Ñ+°°S¨zÒ9Ð9Ð9Ø×(Ñ(¨EÑ1Ð1Ð1ä×)Ñ)ØÐ! 6¨7ó€Gð —‘Ó(Ðà�?‰?Ó×#Ñ#¤B§I¡IÜ
�‰�œŸ™›
Ó#Ü
�‰�œŸ
™
›Ó%Ü
�‰�œŸ™¤b§h¡h£j´"·)±)³+Ó>Ó?Ü
�‰�œ"Ÿ(™(›*Ó%Ü
�‰�œ2Ÿ9™9¬2¯8©8«:Ü+-¯9©9«;ñ&8ó 9ó 	:ä
�‰�œ"Ÿ(™(›*Ó%Ü
�‰�œŸ	™	›Ó$ð	/ó 	%ð ð $ô 	ð 	ð 	ô �g×-Ñ-Ó/´Ô6Ð6Ð6Ü�g—n‘nÐ%5Ó6Ü×*Ñ*ô,ð ,ð ,à×!Ñ!×(Ñ(¬¯©°4«Ô9Ð9Ð9à�n‰nÓ€GÜ�gœr×3Ñ3Ô4Ð4Ð4à�o‰oÓ€GÜ—8‘8šO´"·(±(³*Ô=€LÜ—8‘8šO´"·*±*³,Ô?€LÜ×%Ñ%×1Ñ1Ü
�‰’¤r§x¡x£zÔ2Ü
�‰�×"Ñ"Ó$¬2¯9©9«;Ô7ó€Lô —h‘hÜ).¨q«ö 3Ø$%ð '(¨!¡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_fragmentrP  ½  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_truerT  Úfragments_with_sizeÚdataset_with_sizeÚsizes_toosmallÚsizes_toolarges                        r   Útest_make_fragment_with_sizerc  Ð  sÓ  € ð @QÑ<€Eˆ4��S˜$  j°*ä×&Ñ&Ó(€KØˆF€Eð #ö$Øð ×*Ñ*¨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_bufferrz  
  sì   € Ü�o‰oð ó 	€Gô �\‰\˜'Ÿ.™.¨Ó1Ó2€Fä×!Ñ!Ó#€JØ×'Ñ'¨Ó/€Hô �h—m‘m“o¤r§¡Ô7Ð7Ð7ä�x‰xšÚ%Ú1ð3ò 9ô:€Hð ×"Ñ" 8Ó,×3Ñ3°HÔ=Ð=Ð=à×!Ñ! -×"5Ñ"5°hÓ"?Ó@€GØ×"Ñ" 7Ó+×2Ñ2°8×3DÑ3DÓ3FÔGÐGÑGr   c                 ó  — d}t        j                  |j                  d«      «      }t        j                  «       }|j                  |«      }t        |j                  «       t         j                  «      sJ ‚t        j                  g d¢g d¢g d¢gg d¢¬«      }| j                  |«      j                  |«      sJ ‚|j                  |j                  |«      «      }| j                  |«      j                  |j                  «       «      sJ ‚y )NzŠ{"alpha" : "a", "num": 12, "animal" : "dog"}
{"alpha" : "b", "num": 11, "animal" : "cat"}
{"alpha" : "c", "num": 10, "animal" : "rabbit"}
re  rf  rg  rj  rn  r¦  )r?   rs  rt  rÇ   r%  r  rM   rL   ru  r   rä   r	  r¼  r½  )rõ   r¾  rv  rw  Újson_formatrT   r|  ry  s           r   Ú#test_make_json_fragment_from_bufferr}  #  sà   € ð<€Gô �\‰\˜'Ÿ.™.¨Ó1Ó2€Fä×#Ñ#Ó%€KØ×(Ñ(¨Ó0€Hô �h—m‘m“o¤r§¡Ô7Ð7Ð7ä�x‰xšÚ%Ú1ð3ò 9ô:€Hð ×"Ñ" 8Ó,×3Ñ3°HÔ=Ð=Ð=à×!Ñ! -×"5Ñ"5°hÓ"?Ó@€GØ×"Ñ" 7Ó+×2Ñ2°8×3DÑ3DÓ3FÔGÐGÑGr   c                 ó\  — t        j                  g d¢«      t        j                  g d¢«      t        j                  g d¢«      g}|d   j                  «       |d   |d   j                  «       g}t        j                  t        j
                  ddg¬	«      d
d¬«      }|t        j                  «       f||fg}|D �]p  \  }}t        j                  |g d¢¬«      }t        j                  «       }t        j                  ||«       |j                  «       }	|j                  |	«      }
| j                  |
«      j                  |«      sJ ‚|j                  |j                  |
«      «      }| j                  |«      j                  |«      sJ ‚t        j                   |	«      }|j                  |«      }
|
j#                  «       }t%        |t         j&                  «      sJ ‚|j(                  sJ ‚t        j*                  |
j#                  «       «      j-                  «       j                  |«      r�ŒqJ ‚ y )Nrf  rg  rj  r   r   rv   r�  rp  rÞ  Trþ  )rö  r  r   rn  r¦  )r?   r~   Údictionary_encoderÇ   rÈ   rè  r   ÚBufferOutputStreamrl   rm   Úgetvaluer  rä   r	  r¼  r½  ru  rL   rM   rN   rQ   ÚParquetFileÚread)rõ   r¾  ÚarraysÚdictionary_arraysÚdictionary_formatÚcasesÚformat_r   rr   rw  rT   ry  Ú	file_likeÚopened_files                 r   Ú&test_make_parquet_fragment_from_bufferr‹  9  sç  € ô 	�‰’Ó!Ü
�‰’ÓÜ
�‰Ò)Ó*ð€Fð 	ˆq‰	×#Ñ#Ó%Øˆq‰	Øˆq‰	×#Ñ#Ó%ðÐô
 ×,Ñ,Ü×*Ñ*Ø '¨Ð2ô
ð !ØôÐð 
”×%Ñ%Ó'Ð(Ø	Ð-Ð.ð€Eð !ó 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‘  g  s‡   € ä�H‰HÜ	ˆq‹�A�3˜‘7˜S˜E A™I¨¨°©	Ñ1Ð2Ú"ô€Eô
 ˆwÐ/Ñ/Ó0€Dä×Ñ˜˜tØ(. x¸JõHä�j‰jØ�Y¨VÀ
ô€Gð �'ˆ>Ðr   c                 óÎ  — t        | «      \  }}t        |j                  «       «      }t        |«      dk(  sJ ‚|d   }ddg}|j                  j
                  |k(  sJ ‚|j                  j                  |j                  |j                  «      |j                  k(  sJ ‚|j                  j                  t        j                  d«      dk(  «      sJ ‚|j                  |«      }|j                  |k(  sJ ‚|j                  |j!                  d«      j#                  dd«      «      sJ ‚|j                  ||j$                  ¬«      }|j                  g d	¢k(  sJ ‚|j                  |j#                  dd«      «      sJ ‚|j                  |j$                  j'                  d«      k(  sJ ‚|j                  ||j$                  t        j                  d«      dk  ¬
«      }|j                  g d	¢k(  sJ ‚y )Nrv   r   r  r¥  r¾   r[   r{   rb   r¤  )r=   rþ   )r‘  rh   rK   r±   Úphysical_schemar§  rÐ   rC  rq   rú   r  r	  rÇ   r@   rä   rg  Úremove_columnÚslicer=   Úremove)r·  rõ   r   rS   r  rÙ  Úphysical_namesr9  s           r   Útest_fragmentsr˜  y  s¼  € ä2°7Ó;�N€Eˆ7ô �W×*Ñ*Ó,Ó-€IÜˆy‹>˜QÒÐÐØ�!‰€Aà˜D�\€Nà×Ñ×"Ñ" nÒ4Ð4Ð4Ø�8‰8×Ñ˜AŸF™F A§L¡LÓ1°Q×5FÑ5FÒFÐFÐFØ×!Ñ!×(Ñ(¬¯©°&Ó)9¸SÑ)@ÔAÐAÐAð ×$Ñ$ QÓ'€FØ×Ñ .Ò0Ð0Ð0Ø�=‰=˜×,Ñ,¨QÓ/×5Ñ5°a¸Ó;Ô<Ð<Ð<ð ×$Ñ$ Q¨w¯~©~Ð$Ó>€FØ×ÑÒ"6Ò6Ð6Ð6Ø�=‰=˜Ÿ™ Q¨Ó*Ô+Ð+Ð+Ø×Ñ §¡× 4Ñ 4°QÓ 7Ò7Ð7Ð7ð ×$Ñ$Ø	�'—.‘.¬¯©°$«¸!Ñ);ð %ó =€Fà×ÑÒ"6Ò6Ð6Ñ6r   c                 ó¸  — t        j                  t        d«      dgdz  dgdz  z   gddg¬«      }t        | dz  «      }t	        j
                  ||dg¬	«       t        j                  t        j                  d
g«      d¬«      }t        j                  |d|¬«      }|j                  t        j                  d«      dk\  ¬«      }t        t        |«      «      dk(  sJ ‚y )NrR  r   r{   rv   Úcolr¾   r¦  r�  ©rŽ  )r¾   r   r¬   ©rÃ  r§   r©  rý   )r?   r   r/   r_   rl   r�  rÇ   rÍ   r=   rS   rK   r@   r±   rh   )r·  r   rq   r¾   rS   r  s         r   Útest_fragments_implicit_castr�  š  s½   € ô �H‰H”e˜A“h   a¡¨1¨#°©'Ñ 1Ð2¸5À&¸/ÔJ€EÜˆwÐ/Ñ/Ó0€DÜ×Ñ˜˜t°V°HÕ=ä�?‰?œ2Ÿ9™9Ð&6Ð%7Ó8ÀÔH€DÜ�j‰j˜ i¸dÔC€GØ×%Ñ%¬R¯X©X°fÓ-=ÀÑ-BÐ%ÓC€IÜŒt�I‹Ó 1Ò$Ð$Ñ$r   c                 ó.  ‡
— t        | «      \  Š
}	 dˆ
fd„	}t        |j                  «       «      d   }|j                  }|j	                  |j                  |«      «      }|j                  |«      |j                  |«      k(  sJ ‚|j                  |j                  |j                  |j                  ¬«      }|j                  |«      j                  |j                  |«      «      sJ ‚ ||d«       |j                  |j                  |j                  |j                  ¬«      } ||dt        j                  d«      dk  ¬«       |j                  |j                  |j                  |j                  ¬«      } ||ddgt        j                  d«      d	k  ¬
«       |j                  |j                  |j                  |j                  ¬«      } ||dt        j                  d«      dk(  ¬«       d|j                  j                  ddd«      z   }	t!        j"                  t$        |	¬«      5  |j                  |j                  |j                  |j                  ¬«      }|j                  |t        j                  d«      dk(  ¬«       d d d «       y # 1 sw Y   y xY w)Nc                 óæ   •— | j                  ‰j                  ||¬«      }|r|n‰j                  }|j                  |k(  sJ ‚ ‰j                  |Ž j	                  |«      }|j                  |«      sJ ‚y )N©r=   r*   rþ   )rä   r=   rg  r•  Úselectr	  )rT   Ú	row_slicer*   rþ   Úactualrg  r|  r   s          €r   Úassert_yields_projectedz;test_fragments_reconstruct.<locals>.assert_yields_projected¬  st   ø€ à×"Ñ"Ø—<‘<¨¸ð #ó Aˆá")‘w¨u×/AÑ/AˆØ×"Ñ" lÒ2Ð2Ð2à�5—;‘; 	Ð*×1Ñ1°,Ó?ˆØ�}‰}˜XÔ&Ð&Ñ&r   r   )r  )r   r{   )r   rv   r  rv   rý   r(  rw  r¾   r[   z&No match for FieldRef.Name\(part\) in Fr   ©NN)r‘  rh   rK   rÐ   r¼  r½  rä   r  rq   rú   r  r	  rÇ   r@   r“  Ú	to_stringr  r  rN  )r·  rõ   r¾  rS   r¤  rT   rN  Úpickled_fragmentÚnew_fragmentÚpatternr   s             @r   Útest_fragments_reconstructrª  ¨  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   rM  )r?   r   r/   rl   rm   rÇ   rS   rh   rK   rÐ   r  rq   rú   r  Úensure_complete_metadatar±   r  )r·  r   rS   Úoriginal_fragmentrT   s        r   Ú%test_fragments_parquet_num_row_groupsr¹    sà   € ä�H‰H�cœ5 ›8�_Ó%€EÜ‡N�N�5˜' NÑ2À1ÕEÜ�j‰j˜ >Ñ1¸)ÔD€GÜ˜W×2Ñ2Ó4Ó5°aÑ8Ðð !×'Ñ'×5Ñ5Ø×ÑÐ 1× <Ñ <Ø�q�6ð 6ó €Hð ×"Ñ" aÒ'Ð'Ð'à×%Ñ%Ô'Ø×"Ñ" aÒ'Ð'Ð'Üˆx×"Ñ"Ó# qÒ(Ð(Ñ(r   c                 óÐ  — t        j                  t        ddgddg¬«      «      }|d   j                  d«      |d<   t	        j
                  t        j                  |«      | dz  «       d	d lm	}  |j                  | dz  «      }|j                  | |j                  d«      dk(  ¬
«      }|j                  d	   |j                  «       k(  j                  «       j                  «       sJ ‚y )Nr[   r\   r   rv   )Úcol1Úcol2r»  Úcategoryztest_filter_dictionary.parquetr   rý   )r3   r4   ÚdictÚastyperl   rm   r?   r   Úpyarrow.datasetrS   rä   r@   r²   Ú	to_pandasr¬  )r·  rõ   rH   rÇ   rS   r9  s         r   Ú,test_fragments_parquet_row_groups_dictionaryrÂ    sÄ   € ô 
�‰”d  c 
°!°Q°Ô8Ó	9€BØ�F‘×"Ñ" :Ó.€B€v�Jä‡N�N”2—8‘8˜B“< Ð+KÑ!KÔLå Øˆb�j‰j˜Ð#CÑCÓD€GØ×$Ñ$ W°X°R·X±X¸fÓ5EÈÑ5LÐ$ÓM€Fà�G‰G�A‰J˜&×*Ñ*Ó,Ñ,×1Ñ1Ó3×7Ñ7Ô9Ð9Ñ9r   c                 óø  — |\  }}t        | d|¬«      \  }}t        |j                  «       «      d   } ||j                  g«      5  |j	                  «        d d d «       |j
                  ddgk(  sJ ‚ |g «      5  |j	                  «        d d d «       t        |j                  t        j                  «      sJ ‚|j                  j                  |j                  |j                  ddg¬«      }|j
                  |j
                  k(  sJ ‚|j	                  «        |j
                  d   }	|	j                  dk(  sJ ‚|	j                  dk(  sJ ‚|	j                  €J ‚|j!                  |j#                  |«      «      }
 ||j                  g«      5  |
j
                  ddgk(  sJ ‚|
j
                  d   }	|	j                  dk(  sJ ‚|	j                  €J ‚	 d d d «       y # 1 sw Y   �Œ�xY w# 1 sw Y   �ŒZxY w# 1 sw Y   y xY w)Nrv   ©r�  rú   r   r   rM  )r‘  rh   rK   rq   r·  r  rM   Úmetadatarl   ÚFileMetaDatarÐ   r  rú   Úidrí   r±  r¼  r½  )r·  r¢   r¾  rc   rš   rt  rS   rT   r¨  Ú	row_groupr§  s              r   Ú&test_fragments_parquet_ensure_metadatarÉ  $  sÿ  € à&Ñ€BˆÜ.Ø˜A¨"ô�J€A€wô �G×)Ñ)Ó+Ó,¨QÑ/€Hñ 
�x—}‘}�oÓ	&ñ ,Ø×)Ñ)Ô+÷,à×Ñ 1 a &Ò(Ð(Ð(ñ 
�bÓ	ñ ,Ø×)Ñ)Ô+÷,ô �h×'Ñ'¬¯©Ô9Ð9Ð9ð —?‘?×0Ñ0Ø�‰�x×*Ñ*¸¸1°vð 1ó €Lð ×"Ñ" h×&9Ñ&9Ò9Ð9Ð9ð ×)Ñ)Ô+Ø×'Ñ'¨Ñ*€IØ�<‰<˜1ÒÐÐØ×Ñ Ò"Ð"Ð"Ø×ÑÐ+Ð+Ð+ð %×*Ñ*¨=×+>Ñ+>¸|Ó+LÓMÐÙ	�x—}‘}�oÓ	&ñ 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Ì  M  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!  g      $@ç      E@)r[   NÚzrõ  rà  Úus)r   rª   l    j­t )Úbooleanr   Úuint8rƒ   r‚   rÌ   Úuint32rB   Úuint64r1   ÚdoubleÚutf8rë  úts[s]úts[ms]úts[us]rA   Údate64Útime32Útime64r¦  Útest_parquet_dataset_all_typesr¬  r§   r¬   r©  )r?   r   r~   Úbool_r   rÓ  rƒ   r‚   rÌ   rÔ  rB   rÕ  Úfloat32rC   r×  rë  Ú	timestamprA   rÛ  rÜ  rÝ  r_   rl   r�  rÇ   rS   )r·  r�  r   rq   s       r   Ú_create_dataset_all_typesrâ  _  sü  € Ü�H‰Hä�H‰HÒ(¬"¯(©(«*Ó5Ü�H‰H’[¤"§'¡'£)Ó,Ü�H‰H’[¤"§(¡(£*Ó-Ü�H‰H’[¤"§(¡(£*Ó-Ü�H‰H’[¤"§)¡)£+Ó.Ü�H‰H’[¤"§(¡(£*Ó-Ü�H‰H’[¤"§)¡)£+Ó.Ü�H‰H’[¤"§(¡(£*Ó-Ü�H‰H’[¤"§)¡)£+Ó.Ü�H‰HÒ&¬¯
©
«Ó5Ü�H‰HÒ&¬¯
©
«Ó5Ü�H‰HÒ%¤r§w¡w£yÓ1Ü�H‰HÒ%¤r§y¡y£{Ó3Ü�H‰H’[¤"§,¡,¨sÓ"3Ó4Ü�H‰H’[¤"§,¡,¨tÓ"4Ó5Ü�H‰H’[¤"§,¡,¨tÓ"4Ó5Ü�H‰H’[¤"§)¡)£+Ó.Ü�H‰HÒ(¬"¯)©)«+Ó6Ü�H‰H’[¤"§)¡)¨C£.Ó1Ü�H‰H’[¤"§)¡)¨D£/Ó2ð)	
ò,
ô/-€Eô^ ˆwÐ9Ñ9Ó:€Dô ×Ñ˜˜t°
Õ;à”"—*‘*˜T¨)À&ÔIÐIÐIr   c                 óD  ‡— t        | «      \  }}t        |j                  «       «      d   }dd lŠˆfd„}ˆfd„}ˆfd„}‰j                  }‰j
                  }t        |j                  «       «      }	|	d   j                  €J ‚|	d   j                  d   }
|
j                  dk(  sJ ‚|
j                  dkD  sJ ‚|
j                  i ddd	d
œ“dddd
œ“dddd
œ“dddd
œ“dddd
œ“dddd
œ“dddd
œ“dddd
œ“dddd
œ“dddd
œ“dddd
œ“dddd
œ“dddd
œ“d |d«       |d«      d
œ“d  |d«       |d«      d
œ“d! |d«       |d«      d
œ“d" |d#dd$«       |d#d$d%«      d
œ“ |d#dd«       |d#d$d&«      d
œ |ddd«       |ddd«      d
œ |dddd«       |dddd«      d
œd'œ¥k(  sJ ‚y )(Nr   c                 ó2   •—  ‰j                   ddddd| «      S ©Né²  r   r   ©r+   ©r  r+   s    €r   Údt_sz.test_parquet_fragment_statistics.<locals>.dt_sŸ  s    ø€ Ð)˜×)Ñ)¨$°°1°a¸¸AÓ>Ð>r   c           
      ó:   •—  ‰j                   dddddd| dz  «      S )Nræ  r   r   r¨   rç  rè  s    €r   Údt_msz/test_parquet_fragment_statistics.<locals>.dt_ms   s&   ø€ Ð*˜×*Ñ*¨4°°A°q¸!¸QÀÀ$ÁÓGÐGr   c           	      ó4   •—  ‰j                   dddddd| «      S rå  rç  rè  s    €r   Údt_usz/test_parquet_fragment_statistics.<locals>.dt_us¡  s"   ø€ Ð*˜×*Ñ*¨4°°A°q¸!¸QÀÓBÐBr   rY   r¨   rÒ  FTr­  r   r   rÎ  rÓ  rƒ   r‚   rÌ   rÔ  rB   rÕ  r1   r!  rÏ  rÖ  r×  r[   rÐ  rë  ó   aó   zrØ  rÙ  rÚ  rA   ræ  rv   rh  é   )rÛ  rÜ  rÝ  )râ  rh   rK   r+   r%   Útimer  r  rí   Útotal_byte_sizer±  )r·  r   rS   rT   ré  rë  rí  r%   rñ  r  rÈ  r+   s              @r   Ú test_parquet_fragment_statisticsró  —  sn  ø€ ô /¨wÓ7�N€Eˆ7ä�G×)Ñ)Ó+Ó,¨QÑ/€HãÜ>ÜGÜBØ�=‰=€DØ�=‰=€Dô ˜x×:Ñ:Ó<Ó=ÐØ˜qÑ!×,Ñ,Ð8Ð8Ð8Ø# AÑ&×1Ñ1°!Ñ4€IØ×Ñ Ò"Ð"Ð"Ø×$Ñ$ tÒ+Ð+Ð+Ø×Ñð $Ø˜5¨Ñ.ð$à˜ "Ñ%ð$ð 	˜ 2Ñ&ð$ð 	˜ 2Ñ&ð	$ð
 	˜! BÑ'ð$ð 	˜ 2Ñ&ð$ð 	˜! BÑ'ð$ð 	˜ 2Ñ&ð$ð 	˜! BÑ'ð$ð 	˜ TÑ*ð$ð 	˜# dÑ+ð$ð 	˜ CÑ(ð$ð 	˜$ tÑ,ð$ð 	™˜a›©¨b«Ñ2ð$ð 	™% ›(©5°«9Ñ5ð$ð  	™% ›(©5°«9Ñ5ð!$ð" 	™$˜t Q¨Ó*±4¸¸aÀÓ3DÑEð#$ñ$ ˜t Q¨Ó*±4¸¸aÀÓ3DÑEÙ˜q ! Q›-±°Q¸¸2³Ñ?Ù˜q ! Q¨Ó*±4¸¸1¸aÀÓ3DÑEò)$ò ð ñ r   c                 ó<  — t        j                  g d¢g d¢dœ«      }t        j                  || dz  d¬«       t	        j
                  | dz  d¬«      }t        |j                  «       «      d	   j                  «       }|d
   j                  d	   j                  i k(  sJ ‚y )N)r   r   NN)r[   r\   NNrZ   r´  rv   rµ  r§   r  r   r   )r?   r   rl   rm   rÇ   rS   rh   rK   r  r  r±  )r·  r   rS   r  s       r   Ú&test_parquet_fragment_statistics_nullsrõ  Ã  s…   € ä�H‰HÒ-Ò4JÑKÓL€EÜ‡N�N�5˜' NÑ2À1ÕEä�j‰j˜ >Ñ1¸)ÔD€GÜ�W×*Ñ*Ó,Ó-¨aÑ0×CÑCÓE€Ià�Q‰<×"Ñ" 1Ñ%×0Ñ0°BÒ6Ð6Ñ6r   c                 ó8  — t        j                  g d¢g d¢dœ«      d d }|j                  | dz  d¬«       t        j                  | dz  d¬	«      }t        |j                  «       «      d   j                  «       }|d   j                  d   j                  i k(  sJ ‚y )
N)r[   r\   r\   ©r{   r   rÑ  rZ   r   r´  r¯   ©Úenginer§   r  )
r3   r4   Ú
to_parquetrÇ   rS   rh   rK   r  r  r±  )r·  rH   rS   r  s       r   Ú'test_parquet_empty_row_group_statisticsrû  Î  sŒ   € ô 
�‰šO²)Ñ<Ó	=¸b¸qÐ	A€BØ‡M�M�'˜NÑ*°9€MÔ=ä�j‰j˜ >Ñ1¸)ÔD€GÜ�W×*Ñ*Ó,Ó-¨aÑ0×CÑCÓE€Ià�Q‰<×"Ñ" 1Ñ%×0Ñ0°BÒ6Ð6Ñ6r   c                 óò  — t        | d¬«      \  }}t        |j                  «       «      d   }|j                  j	                  t        j                  d«      dk(  «      sJ ‚t        |j                  t        j                  d«      dk(  |j                  ¬«      «      }t        |«      dk(  sJ ‚t        |j                  t        j                  d«      dk(  |j                  ¬«      «      }t        |«      dk(  sJ ‚y )Nrv   r¬  r   r¾   r[   ©rþ   r=   r\   )
r‘  rh   rK   r  r	  rÇ   r@   r  r=   r±   )r·  r   rS   rT   r  s        r   Ú+test_fragments_parquet_row_groups_predicaterþ  Ú  sì   € ä2°7ÀqÔI�N€Eˆ7ä�G×)Ñ)Ó+Ó,¨QÑ/€HØ×(Ñ(×/Ñ/´·±¸Ó0@ÀCÑ0GÔHÐHÐHô Ø×#Ñ#¬2¯8©8°FÓ+;¸sÑ+BØ+2¯>©>ð 	$ó 	;ó<Ðô Ð"Ó# qÒ(Ð(Ð(ô Ø×#Ñ#¬2¯8©8°FÓ+;¸sÑ+BØ+2¯>©>ð 	$ó 	;ó<Ðô Ð"Ó# qÒ(Ð(Ñ(r   c                 ó
  — t        | d¬«      \  }}t        |j                  «       «      d   }|j                  }t        |j	                  «       «      }|j                  |j                  |«      «      }|j                  |«      |j                  |«      k(  sJ ‚|j                  |j                  |j                  |j                  dg¬«      }	|j                  |	«      }
|
j                  |j                  |d   «      «      sJ ‚|j                  |j                  |j                  |j                  dh¬«      }	|j                  |	|j                  ddgt        j                  d«      dk  ¬	«      }
|
j                   ddgk(  sJ ‚t#        |
«      dk(  sJ ‚|j                  |j                  |j                  |j                  dh¬«      }	t%        j&                  t(        d
¬«      5  |j                  |	«       d d d «       y # 1 sw Y   y xY w)Nrv   r¬  r   )r  r  r   r  r¾   rY   r   zreferences row group 2r   )r‘  rh   rK   rÐ   r  r¼  r½  rä   r  rq   rú   r  r	  r=   rÇ   r@   rg  r±   r  r  r{  )r·  rõ   r¾  r   rS   rT   rN  r  r§  r¨  r9  s              r   Ú-test_fragments_parquet_row_groups_reconstructr   ñ  sü  € ô 3°7ÀqÔI�N€Eˆ7ä�G×)Ñ)Ó+Ó,¨QÑ/€HØ—_‘_€NÜ˜x×:Ñ:Ó<Ó=Ðð %×*Ñ*¨=×+>Ñ+>¸xÓ+HÓIÐØ×"Ñ"ØóØ+×4Ñ4°XÓ>ò?ð ?ð ?ð "×/Ñ/Ø�‰�x×*Ñ*Ø%×:Ñ:Ø�3ð 0ó €Lð ×$Ñ$ \Ó2€FØ�=‰=˜×0Ñ0Ð1DÀQÑ1GÓHÔIÐIÐIð "×/Ñ/Ø�‰�x×*Ñ*Ø%×:Ñ:Ø�3ð 0ó €Lð ×$Ñ$Ø˜UŸ\™\°D¸&°>Ü�x‰x˜‹~ Ñ!ð %ó %€Fð ×Ñ 4¨ .Ò0Ð0Ð0Üˆv‹;˜!ÒÐÐð "×/Ñ/Ø�‰�x×*Ñ*Ø%×:Ñ:Ø�3ð 0ó €Lô 
�‰”zÐ)AÔ	Bñ .Ø×Ñ Ô-÷.÷ .ñ .ú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	  7  s°  € ð 'Ñ€BˆÜ2°7ÀqØ>@ôB�N€Eˆ7ä�G×)Ñ)Ó+Ó,¨QÑ/€Hð �o‰oœbŸh™h t›n°Ñ1Ó2€GÙ	�bÓ	ñ <Ø×%Ñ%¨Ò*Ð*Ð*Ü�7×%Ñ%Ó&¨!Ò+Ð+Ð+Ø×!Ñ! !Ñ$×/Ñ/Ð;Ð;Ñ;÷<ð ×$Ñ$ WÓ-€FØ×ÑÓª	ºÑ!CÒCÐCÐCð �o‰oœbŸh™h t›n¨qÑ0Ó1€GØ×!Ñ! QÒ&Ð&Ð&Ø×Ñ Ò#Ð#Ð#Ø×$Ñ$ W°W·^±^Ð$ÓD€FØ�?‰?˜aÒÐÐØ�=‰=˜˜r ˜Ô#Ð#Ð#ð �o‰oœbŸh™h vÓ.°#Ñ5¸g¿n¹nˆoÓM€GØ×!Ñ! QÒ&Ð&Ñ&÷'<ñ <ús   Á"AF1Æ1F;c                 óŠ  — t        | d¬«      \  }}t        |j                  «       «      d   }t        j                  t
        «      5  |j                  t        j                  d«      dk\  ddg¬«       d d d «       t        j                  t
        «      5  |j                  «        d d d «       y # 1 sw Y   Œ<xY w# 1 sw Y   y xY w)Nr   r¬  r   r  rv   r  )	r‘  rh   rK   r  r  rN  r  rÇ   r@   )r·  rt  rS   rT   s       r   Ú%test_fragments_parquet_subset_invalidr  W  s¤   € ä.¨wÀ1ÔE�J€A€wÜ�G×)Ñ)Ó+Ó,¨QÑ/€Hô 
�‰”zÓ	"ñ 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  d  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   ry  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   ry  r¾  r8  rÐ   rÒ   r,  rÓ   rB  rF  Úhive_partitioning_factorys              r   Útest_partitioning_factoryr.  ­  sp  € ô Ÿ™¨¸DÔAÐÜ×!Ñ!Ó#€Fä×)Ñ)¨(Ó3€GÜ×3Ñ3×<Ñ<¸gÀuÐ=MÓNÐÙ"Ð#7¸ÓGÐÜÐ*¬B×,BÑ,BÔCÐCÐCØ#7€GÔ ä×)Ñ)ØÐ! 6¨7ó€Gð —‘Ó(Ðä—i‘iØ	”—‘“
ÐØ	”—
‘
“ÐØ	”—	‘	“ÐØ	”"—(‘(“*ÐØ	”2—9‘9¤2§8¡8£:´B·I±I³KÑ@ÓAÐBØ	”"—(‘(“*ÐØ	”—	‘	“Ðð!ó €Oð ×"Ñ" ?Ô3Ð3Ð3ä "× 3Ñ 3× <Ñ <Ó >ÐÜÐ/´×1GÑ1GÔHÐHÑHr   Úinfer_dictionaryc                 ó   — | S r   r   r"  s     r   r$  r$  Ñ  r%  r   c                 óB   — |j                  |j                  | «      «      S r   r'  r"  s     r   r$  r$  Ñ  r(  r   c                 óf  — t        j                  dd¬«      }t        j                  «       }t        j                  d«      }t        j
                  j                  ddg|¬«      } |||«      |_        t        j                  | |||«      }|j                  «       }	|�rct        j                  t        j                  «       t        j                  «       «      }
|	j                  d«      j                  |
k(  sJ ‚|j!                  «       j#                  «       j%                  «       }|j'                  d«      j)                  d«      }t        j*                  dgd	z  d
gd	z  z   «      j-                  «       }|j/                  |«      sJ ‚|j!                  «       j#                  t        j                  d«      dk(  ¬«      }|j'                  d«      j)                  d«      }|j1                  dd	«      }|j/                  |«      sJ ‚y |	j                  d«      j                  t        j                  «       k(  sJ ‚y )NrÂ   TrÃ   rÅ   rÆ   ©r/  r   r"  r   r#  rý   )rc   rÉ   rÇ   rÈ   rÊ   rË   r*  r,  rÎ   rC  r?   rz   rÌ   rD   r@   rx   rÏ   rä   Úcombine_chunksr-  r½   r~   r  r	  r•  )rn   r/  ry  r¾  r8  rÐ   rÒ   r,  rÓ   Úinferred_schemaÚexpected_typer   r£  r|  s                 r   Ú$test_partitioning_factory_dictionaryr7  Î  sÊ  € ô Ÿ™¨¸DÔAÐÜ×!Ñ!Ó#€FÜ×)Ñ)¨(Ó3€Gä×3Ñ3×<Ñ<Ø	�%ÐÐ+;ð =ó =Ðá#*Ð+?ÀÓ#O€GÔ ä×)Ñ)ØÐ! 6¨7ó4€Gð —o‘oÓ'€OÚÜŸ™¤b§h¡h£j´"·)±)³+Ó>ˆØ×$Ñ$ UÓ+×0Ñ0°MÒAÐAÐAà—‘Ó ×)Ñ)Ó+×:Ñ:Ó<ˆØ—‘˜eÓ$×*Ñ*¨1Ó-ˆÜ—8‘8˜U˜G a™K¨5¨'°A©+Ñ5Ó6×HÑHÓJˆØ�}‰}˜XÔ&Ð&Ð&ð —‘Ó ×)Ñ)´·±¸%³ÀEÑ1IÐ)ÓJˆØ—‘˜eÓ$×*Ñ*¨1Ó-ˆØ—>‘> ! QÓ'ˆØ�}‰}˜XÔ&Ð&Ñ&à×$Ñ$ UÓ+×0Ñ0´B·I±I³KÒ?Ð?Ñ?r   c                 ó   — | S r   r   r"  s     r   r$  r$  ó  r%  r   c                 óB   — |j                  |j                  | «      «      S r   r'  r"  s     r   r$  r$  ó  r(  r   c                 ór  — t        j                  «       }t        j                  «       }t	        j
                  dt	        j                  «       fg«      }t	        j                  t	        j                  t        d«      «      g|¬«      }t	        j
                  dt	        j                  d«      fdt	        j                  «       fg«      }t	        j
                  dt	        j                  «       fdt	        j                  «       fg«      }t	        j
                  t        |«      t        |«      z   «      }dD ]z  }	|j                  |	«       |j                  |	dz   «      5 }
t        j                  j!                  |
|«      5 }|j#                  |«       |j%                  «        d d d «       d d d «       Œ| t        j&                  d	d
¬«      }t        j(                  d	«      }t        j*                  j-                  |¬«      } | ||«      |_        t        j0                  ||||«      }|j3                  «       }||k(  sJ ‚|j5                  «       j7                  dt        j8                  d«      j;                  t	        j                  «       «      i¬«      }|d   d   j=                  «       dk(  sJ ‚t        j*                  j-                  ddgd¬«      } | ||«      |_        t        j0                  ||||«      }t        |j5                  «       j?                  «       «      }|d   j@                  jC                  t        j8                  d«      dk(  t        j8                  d«      dk(  z  «      sJ ‚t        j*                  |d¬«      } | ||«      |_"        t        j0                  ||||«      }t        |j5                  «       j?                  «       «      }|d   j@                  jC                  t        j8                  d«      dk(  t        j8                  d«      dk(  z  «      sJ ‚t        j*                  j-                  |d¬«      } | ||«      |_        t        j0                  ||||«      }tG        jH                  t        jJ                  d¬«      5  |j3                  «       }d d d «       t        j&                  dd
¬«      }t        j(                  d«      }t        jL                  j-                  |¬«      } | ||«      |_        t        j0                  ||||«      }|j3                  «       }||k(  sJ ‚|j5                  «       j7                  dt        j8                  d«      j;                  t	        j                  «       «      i¬«      }|d   d   j=                  «       dk(  sJ ‚t        jL                  j-                  d¬«      } | ||«      |_        t        j0                  ||||«      }t        |j5                  «       j?                  «       «      }|d   j@                  jC                  t        j8                  d«      dk(  t        j8                  d«      dk(  z  «      sJ ‚t        jL                  |d¬«      |_"        t        j0                  ||||«      }t        |j5                  «       j?                  «       «      }|d   j@                  jC                  t        j8                  d«      dk(  t        j8                  d«      dk(  z  «      sJ ‚t        jL                  j-                  |d¬«      } | ||«      |_        t        j0                  ||||«      }tG        jH                  t        jJ                  d¬«      5  |j3                  «       }d d d «       y # 1 sw Y   �ŒëxY w# 1 sw Y   �ŒkxY w# 1 sw Y   �Œ
xY w# 1 sw Y   y xY w)Nr]   rª   rb   r%   rõ  rD   )z%directory/2021-05-04 00%3A00%3A00/%24z,hive/date=2021-05-04 00%3A00%3A00/string=%24ú
/0.featherrp   TrÃ   Údate_intr)   r   é€Ž�`r�  rŽ  ú2021-05-04 00%3A00%3A00ú%24©r=   r�  ú+Could not cast segments for partition fieldr   r¬   )'rc   rd   rÇ   r  r?   r=   rB   r   r~   r/   rá  rD   rh   rf   rg   r¨  Únew_filerm   ÚcloserÉ   rÊ   rË   r*  r,  rÎ   rC  rÏ   rä   r@   rÓ  Úas_pyrK   r  r	  rÍ   r  r  ra  rª  )ry  r¾  rn   rÐ   r=   r   Úpartition_schemaÚstring_partition_schemaÚfull_schemarp   ÚsinkÚwriterrÑ   rÒ   r,  rÓ   r5  r£  r  rÍ   s                       r   Ú*test_partitioning_factory_segment_encodingrJ  ò  s¼  € ô ×ÑÓ!€FÜ×ÑÓ€FÜ�Y‰Y˜¤§¡£
Ð+Ð,Ó-€FÜ�H‰H”b—h‘hœu R›yÓ)Ð*°6Ô:€EÜ—y‘yØ
”"—,‘,˜sÓ#Ð	$ x´·±³Ð&=Ð>ó@Ðä Ÿi™iØ
”"—)‘)“+Ð	 ¬2¯9©9«;Ð 7Ð8ó:Ðä—)‘)œD ›L¬4Ð0@Ó+AÑAÓB€Kðò ˆ	ð 	×Ñ˜)Ô$Ø×&Ñ& y°<Ñ'?Ó@ð 	ÀDÜ—‘—‘  vÓ.ð °&Ø×"Ñ" 5Ô)Ø—‘”÷÷	ð 	ðô �‰˜{°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$  Y  r%  r   c                 óB   — |j                  |j                  | «      «      S r   r'  r"  s     r   r$  r$  Y  r(  r   c                 óZ  — t        j                  «       }t        j                  «       }t	        j
                  dt	        j                  «       fg«      }t	        j                  t	        j                  t        d«      «      g|¬«      }t	        j
                  dt	        j                  d«      fdt	        j                  «       fg«      }t	        j
                  dt	        j                  «       fdt	        j                  «       fg«      }t	        j
                  t        |«      t        |«      z   «      }t	        j
                  dt	        j                  d«      fdt	        j                  «       fg«      }	t	        j
                  dt	        j                  «       fdt	        j                  «       fg«      }
d	}|j                  |«       |j                  |d
z   «      5 }t        j                  j!                  ||«      5 }|j#                  |«       |j%                  «        d d d «       d d d «       t        j&                  dd¬«      }t        j(                  d«      }t        j*                  j-                  |¬«      } | ||«      |_        t        j0                  ||||«      }|j3                  «       }||k(  sJ ‚|j5                  «       j7                  dt        j8                  d«      j;                  t	        j                  «       «      i¬«      }|d   d   j=                  «       dk(  sJ ‚t        j*                  j-                  d¬«      } | ||«      |_        t        j0                  ||||«      }t        |j5                  «       j?                  «       «      }|d   j@                  jC                  t        j8                  d«      dk(  t        j8                  d«      dk(  z  «      sJ ‚t        j*                  |d¬«      } | ||«      |_"        t        j0                  ||||«      }t        |j5                  «       j?                  «       «      }|d   j@                  jC                  t        j8                  d«      dk(  t        j8                  d«      dk(  z  «      sJ ‚t        j*                  j-                  d¬«      } | ||«      |_        t        j0                  ||||«      }t        |j5                  «       j?                  «       «      }|d   j@                  jC                  t        j8                  d«      dk(  t        j8                  d«      dk(  z  «      sJ ‚t        j*                  |
d¬«      } | ||«      |_"        t        j0                  ||||«      }t        |j5                  «       j?                  «       «      }|d   j@                  jC                  t        j8                  d«      dk(  t        j8                  d«      dk(  z  «      sJ ‚t        j*                  j-                  |	d¬«      } | ||«      |_        t        j0                  ||||«      }tG        jH                  t        jJ                  d¬«      5  |j3                  «       }d d d «       y # 1 sw Y   �ŒpxY w# 1 sw Y   �ŒuxY w# 1 sw Y   y xY w)Nr]   rª   rb   ztest'; daterõ  ztest';[ string'ztest%27%3B%20dateztest%27%3B%5B%20string%27zLhive/test%27%3B%20date=2021-05-04 00%3A00%3A00/test%27%3B%5B%20string%27=%24r;  r¬   TrÃ   r<  r)   r   r=  rX  rŽ  z2021-05-04 00:00:00ú$r�  r>  r?  r@  rA  r   )&rc   rd   rÇ   r  r?   r=   rB   r   r~   r/   rá  rD   rh   rf   rg   r¨  rB  rm   rC  rÉ   rÊ   rª  r*  r,  rÎ   rC  rÏ   rä   r@   rÓ  rD  rK   r  r	  rÍ   r  r  ra  )ry  r¾  rn   rÐ   r=   r   rE  rF  rG  Úpartition_schema_enÚstring_partition_schema_enrp   rH  rI  rÑ   rÒ   r,  rÓ   r5  r£  r  rÍ   s                         r   Ú;test_partitioning_factory_hive_segment_encoding_key_encodedrQ  X  s¿  € ô ×ÑÓ!€FÜ×ÑÓ€FÜ�Y‰Y˜¤§¡£
Ð+Ð,Ó-€FÜ�H‰H”b—h‘hœu R›yÓ)Ð*°6Ô:€EÜ—y‘yØ
œŸ™ cÓ*Ð	+Ð.?ÄÇÁÃÐ-MÐNóPÐä Ÿi™iØ
œŸ™›Ð	%Ð(9¼2¿9¹9»;Ð'GÐHóJÐä—)‘)œD ›L¬4Ð0@Ó+AÑAÓB€KäŸ)™)Ø
œrŸ|™|¨CÓ0Ð	1Ø
%¤r§y¡y£{Ð	3ð	5ó6Ðô "$§¡Ø
œrŸy™y›{Ð	+Ø
%¤r§y¡y£{Ð	3ð	5ó"6Ðð1€Ià
×Ñ�iÔ Ø	×	"Ñ	" 9¨|Ñ#;Ó	<ð ÀÜ�V‰V�_‰_˜T 6Ó*ð 	¨fØ×Ñ˜uÔ%Ø�L‰LŒN÷	÷ô �‰˜v°Ô6€HÜ×)Ñ)¨&Ó1€GÜ×.Ñ.×7Ñ7Øð 8ó !Ðá#*Ð+?ÀÓ#O€GÔ Ü×)Ñ)¨&°(¸FÀGÓL€GØ—o‘oÓ'€OØ˜kÒ)Ð)Ð)Ø�^‰^Ó×&Ñ&Ø”B—H‘H˜]Ó+×0Ñ0´·±³Ó<ð0Ð&ó €Fð �!‰9�Q‰<×ÑÓ :Ò-Ð-Ð-ä×.Ñ.×7Ñ7Øð 8ó  Ðá#*Ð+?ÀÓ#O€GÔ Ü×)Ñ)¨&°(¸FÀGÓL€GÜ�W—^‘^Ó%×3Ñ3Ó5Ó6€IØ�Q‰<×,Ñ,×3Ñ3Ü	�‰�-Ó	 Ð$9Ñ	9Ü	�‰Ð#Ó	$¨Ñ	+ñ	-ô.ð .ð .ô ×&Ñ&Ø°%ô9€Lá" <°Ó?€GÔÜ×)Ñ)¨&°(¸FÀGÓL€GÜ�W—^‘^Ó%×3Ñ3Ó5Ó6€IØ�Q‰<×,Ñ,×3Ñ3Ü	�‰�-Ó	 Ð$9Ñ	9Ü	�‰Ð#Ó	$¨Ñ	+ñ	-ô.ð .ð .ô ×.Ñ.×7Ñ7Øð 8ó !Ðá#*Ð+?ÀÓ#O€GÔ Ü×)Ñ)¨&°(¸FÀGÓL€GÜ�W—^‘^Ó%×3Ñ3Ó5Ó6€IØ�Q‰<×,Ñ,×3Ñ3Ü	�‰Ð%Ó	&Ð*CÑ	CÜ	�‰Ð-Ó	.°%Ñ	7ñ	9ô:ð :ð :ô ×&Ñ&Ø"°Vô=€Lá" <°Ó?€GÔÜ×)Ñ)¨&°(¸FÀGÓL€GÜ�W—^‘^Ó%×3Ñ3Ó5Ó6€IØ�Q‰<×,Ñ,×3Ñ3Ü	�‰Ð%Ó	&Ð*CÑ	CÜ	�‰Ð-Ó	.°%Ñ	7ñ	9ô:ð :ð :ô ×.Ñ.×7Ñ7Ø"°Vð 8ó =Ðá#*Ð+?ÀÓ#O€GÔ Ü×)Ñ)¨&°(¸FÀGÓL€GÜ	�‰”r—‘ØJô
Lñ ,à!Ÿ/™/Ó+ˆ÷,ð ,÷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  rT  rÐ  rZ   r[   r\   r¨  r©  )r?   r   rÇ   rÍ   r=   r@   rD   r  r  ra  r²  ©r·  r   r¾   s      r   Ú/test_dictionary_partitioning_outer_nulls_raisesrW  ¯  s•   € Ü�H‰HÒ+²/ÑBÓC€EÜ�?‰?Ü
�	‰	”2—8‘8˜C¤§¡£Ó-¬r¯x©x¸¼R¿Y¹Y»[Ó/IÐJÓKóM€Dä	�‰”r—‘Ó	'ñ 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)NrS  rU  rZ   zbasename-{i}.arrow)r?   r   r  r  r  rÇ   r²  )r·  r   s     r   Útest_positional_keywords_raisesrY  ·  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 )Ni €  r   r   )rÆ   r'   rL  rÆ   r›  Útwor)   r'   rv   )	r?   r   ÚrepeatÚnpÚarangerl   r�  Ú
read_tableÚ
num_chunks)r·  Ú
BATCH_SIZEr   s      r   Útest_read_partition_keys_onlyrb  ½  s  € ð €Jô �H‰HÜ�y‰y˜˜J¨™NÓ+Ü—‘˜:¨™>Ó*ñ,ó -€Eô ×ÑØˆkˆzÐØ�%‰¨¨õ1ô ×ÑØˆoˆz˜A‰~ÐØ�%‰¨¨õ1ô �M‰M˜' E™/°E°7Ô;€EØ�‰<×"Ñ" aÒ'Ð'Ð'ä�M‰M˜' E™/°E¸7Ð3CÔD€EØ�‰<×"Ñ" aÒ'Ð'Ð'ä�M‰M˜' E™/°E°7Ô;€EØ�‰<×"Ñ" aÒ'Ð'Ñ'r   c                 óÞ   — t        j                  | «      }t        |D �cg c]?  }t         j                  j	                  t         j                  j                  | |«      «      ‘ŒA c}«      S c c}w r   )ÚosÚlistdirÚanyrq   ÚisdirrÌ  )ÚbasedirÚelementsÚels      r   Ú_has_subdirsrk  Ø  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   )	rd  re  rq   rÌ  rg  Ú	posixpathrk  Ú_do_list_all_dirsr0   )rh  Úpath_so_farr9  rÙ  Útrue_nestedÚnorm_nesteds         r   rn  rn  Ý  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Á  )rn  )rh  r9  s     r   Ú_list_all_dirsrs  è  s   € Ø€FÜ�g˜r 6Ô*Ø€Mr   c                 óL   — t        t        | «      «      }|t        |«      k(  sJ ‚y r   )r�   rs  )r·  Úexpected_directoriesÚactual_directoriess      r   Ú_check_dataset_directoriesrw  î  s&   € Üœ^¨GÓ4Ó5ÐØ¤Ð%9Ó!:Ò:Ð:Ñ:r   c           
      óv  — t        j                  g d¢g d¢dœ«      }t        j                  t        j                  t        j
                  dt        j                  «       «      t        j
                  dt        j                  «       «      g«      «      }t        j                  || d|¬«       t        | g d¢«       y )	NrU  rS  rZ   r[   r\   r¨  r©  )zx/xzy/yrÐ  )	r?   r   rÇ   rÍ   r=   r@   rD   r²  rw  rV  s      r   Ú(test_dictionary_partitioning_inner_nullsry  ó  sw   € Ü�H‰Hš?Ò1AÑBÓC€EÜ�?‰?Ü
�	‰	”2—8‘8˜C¤§¡£Ó-¬r¯x©x¸¼R¿Y¹Y»[Ó/IÐJÓKóM€Dä×Ñ�U˜G¨EÀÕEÜ˜wÒ(;Õ<r   c           
      óz  — t        j                  g d¢g d¢dœ«      }t        j                  t        j                  t        j
                  dt        j                  «       «      t        j
                  dt        j                  «       «      g«      d d«      }t        j                  || d|¬«       t        | g d	¢«       y )
N)r  NrÐ  rS  rZ   r[   r\   r’  r¨  r©  )za=x/b=xz	a=xyz/b=yz	a=z/b=xyz)	r?   r   rÇ   rª  r=   r@   rD   r²  rw  rV  s      r   Útest_hive_partitioning_nullsr{  û  s‚   € Ü�H‰HÒ+Ò2BÑCÓD€EÜ×ÑœrŸy™yÜ	�‰�#”r—y‘y“{Ó	#¤R§X¡X¨c´2·9±9³;Ó%?Ð@ó BØCGÈóP€Dä×Ñ�U˜G¨EÀÕEÜ˜wÒ(MÕNr   c                  ó.  — t        j                  dt        j                  «       fdt        j                  «       fg«      } ddg}t	        j
                  | «      }t        |t        j                  «      sJ ‚t	        j
                  | d¬«      }t        |t        j                  «      sJ ‚t	        j
                  |¬«      }t        |t        j                  «      sJ ‚t        j                  t        «      5  t	        j
                  «        d d d «       t        j                  t        d¬«      5  t	        j
                  | ¬«       d d d «       t        j                  t        d¬«      5  t	        j
                  | | ¬«       d d d «       t	        j
                  | d	¬
«      }t        |t        j                  «      sJ ‚t	        j
                  | dd	¬«      }t        |t        j                  «      sJ ‚t	        j
                  d	¬
«      }t        |t        j                  «      sJ ‚t        j                  t        «      5  t	        j
                  |d	¬
«       d d d «       t        j                  t        d¬«      5  t	        j
                  |d	¬«       d d d «       t        j                  t        «      5  t	        j
                  | d¬
«       d d d «       y # 1 sw Y   �ŒÆxY w# 1 sw Y   �Œ™xY w# 1 sw Y   �ŒkxY w# 1 sw Y   Œ¥xY w# 1 sw Y   ŒvxY w# 1 sw Y   y xY w)Nr¶   r·   Úinferr›  )Úfield_nameszExpected listr   zCannot specify bothr¬   rœ  )rœ  rÃ  zCannot specify 'field_names')r~  rÃ  Úunsupported)r?   r=   rƒ   r   rÇ   rÍ   rM   rË   r+  r  r  rN  rª  )r=   r§  r¾   s      r   Útest_partitioning_functionr€  	  s<  € Ü�Y‰Y˜¤§¡£Ð,¨w¼¿¹»	Ð.BÐCÓD€FØ�WÐ€Eô �?‰?˜6Ó"€DÜ�dœB×4Ñ4Ô5Ð5Ð5Ü�?‰?˜6°Ô8€DÜ�dœB×2Ñ2Ô3Ð3Ð3Ü�?‰? uÔ-€DÜ�dœB×2Ñ2Ô3Ð3Ð3ä	�‰”zÓ	"ñ Ü
�‰Ô÷ä	�‰”z¨Ô	9ñ ,Ü
�‰ FÕ+÷,ä	�‰”zÐ)>Ô	?ñ 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‹  =	  sÈ  € ä�Y‰YÜ
�‰�œŸ™¤r§w¡w£y´"·(±(³*Ó=Ó>Ü
�‰�œ"Ÿ-™-¬¯©«	´2·8±8³:Ó>Ó?ðó €Fô ×Ñ×'Ñ'¨vÐ'Ó6€Dä�j‰jØ�y¨]Èô€Gð ×Ñ×&Ñ&¨&Ò0Ð0Ð0Ø×ÑÓ€Eäœ5  tÓ,Ó-€OÜœE ! R›LÓ)ÐØ�<‰<˜Ó×$Ñ$×+Ñ+¨F¯L©L¸©OÔ<Ð<Ð<Ø—‘˜fÓ%×,Ñ,ò )ˆØ×!Ñ!×+Ñ+Ó-ˆØ�‰ŒØ˜Ó(Ð(Ð(ð)ð �<‰<˜Ó ×%Ñ%×,Ñ,¨V¯\©\¸!©_Ô=Ð=Ð=Ø—‘˜gÓ&×-Ñ-ò *ˆØ×!Ñ!×+Ñ+Ó-ˆØ�‰ŒØÐ)Ó)Ð)Ð)ñ*r   c                 ó    — |€,t        j                  t        d«      dgdz  dgdz  z   dœ«      }| dz  }t        j                  |||¬«       ||fS )	Né	   r'  r{   r!  r   rZ   r´  rµ  ©r?   r   r/   rl   rm   )Úbase_dirr   r¶  rq   s       r   r  r  Y	  sS   € Ø€}Ü—‘œu Q›x¨r¨d°Q©h¸"¸À¹Ñ.AÑBÓCˆØ�nÑ$€DÜ‡N�N�5˜$¨~Õ>Ø�$ˆ;Ðr   c                 ó0  — t        j                  t        d«      dgdz  dgdz  z   dœ«      }| dz  }t        j                  ||«       t        j                  t        dd«      dgdz  dgdz  z   dœ«      }| d	z  }t        j                  ||«       ||f||ffS )
Nr�  r'  r{   r!  r   rZ   ztest1.parquetrð  ztest2.parquetrŽ  )r�  r„   r†   r…   r‡   s        r   Ú_create_directory_of_filesr‘  a	  s˜   € Ü�X‰XœE !›H¨B¨4°!©8°r°d¸Q±hÑ+>Ñ?Ó@€FØ�Ñ&€EÜ‡N�N�6˜5Ô!Ü�X‰XœE ! R›L°¨t°a©x¸2¸$À¹(Ñ/BÑCÓD€FØ�Ñ&€EÜ‡N�N�6˜5Ô!Ø�FÐ˜e U˜^Ð+Ð+r   c                 óä   — | |j                  |j                  | «      «      fD ]K  }| j                  j                  |j                  «      sJ ‚|j	                  | «      j                  |«      rŒKJ ‚ y r   )r¼  r½  r=   r	  rä   )rS   r   rõ   Úpicklerr|   s        r   Ú_check_datasetr”  k	  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š  r	  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)NrK  r  ú/schemarª   r[   r¦  r\   z"Expected.*FileSystemDatasetFactoryr   z�Expected a list of path-like or dataset objects, or a list of batches or tables. The given list contains the following types: intrÏ  zbExpected a path-like, list of path-likes or a list of Datasets instead of the given type: NoneTypezcExpected a path-like, list of path-likes or a list of Datasets instead of the given type: generatorc              3   ó"   •K  — | ]  }‰–— Œ y ­wr   r   )r‰  rt  Úbatch1s     €r   rŠ  z<test_construct_from_invalid_sources_raise.<locals>.<genexpr>U
  s   øè ø€ Ò-˜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Ù  0
  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Þ  r
  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Ì   )rh  r   rq   r:   r¾   Ú
full_tables         r   Ú_create_partitioned_datasetrê  —
  sà   € Ü�H‰Hœ5 ›8¨2¨$°©(°b°T¸A±XÑ*=Ñ>Ó?€EàÐ*Ñ*€DØ‡J�J„Lä�1‹Xò 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   Úunionry  s           r   Útest_open_union_datasetrö  ë
  s„   € ä! 'Ó*�G€A€tÜ�j‰j˜Ó€Gä�J‰J˜ Ð)Ó*€EÜ�eœRŸ_™_Ô-Ð-Ð-à×!Ñ! -×"5Ñ"5°eÓ"<Ó=€GØ×"Ñ" 7Ó+¨~×/FÑ/FÀuÓ/MÒMÐMÑMr   c                 óÄ   — t        j                  d| d¬«      }t        j                  t        d¬«      5  t        j                  |gd¬«       d d d «       y # 1 sw Y   y xY w)NrK  r§   rL  zcannot pass any additionalr   r  )rÇ   rS   r  r  rN  )rÀ   rÈ  s     r   Ú.test_open_union_dataset_with_additional_kwargsrø  ÷
  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Úpart2r3  z{0}/{1})r/  r“  zpart1={0}/part2={1}Ú__HIVE_DEFAULT_PARTITION__rS   T)Úparentsr´  rì  c                 ó8  •— ‰r`t        | t        «      rt        j                  «       nt        j                  «       }t        j
                  t        j                  «       |«      S t        | t        «      rt        j                  «       S t        j                  «       S r   )rM   r_   r?   rD   rÌ   rz   )rÆ   Ú
value_typer/  s     €r   r6  z/test_partition_discovery.<locals>.expected_type?  sY   ø€ ÙÜ(2°3¼Ô(<œŸ™œÄ"Ç(Á(Ã*ˆJÜ—=‘=¤§¡£¨ZÓ8Ð8ä",¨S´#Ô"6”2—9‘9“;ÐF¼B¿H¹H»JÐFr   )r?   r   r/   rÇ   rË   r*  rª  r¯  rÐ   rl   rm   rS   r_   r=   r0   r@   r	  )r·  rÍ   r“  r/  rû  r   Úhas_nullÚfmtÚ
null_valueÚbasepathÚ
part_keys1Ú
part_keys2r  r  rq   rS   r6  rF  s      `              r   Útest_partition_discoveryr    sí  ø€ ô" �H‰Hœ5 ›8¨3¨%°!©)°s°e¸a±iÑ*?Ñ@ÓA€Eà�~ aÑ(Ð(ÒE¨D°NÀ1Ñ4EÐ,E€HØ�{Ò"¡xàà�{Ò"Ü×/Ñ/×8Ñ8Ø�gÐÐ1Að 9ó CˆàˆØ‰
áÜ×.Ñ.×7Ñ7Ø!1Àð 8ó ‰Lô ×.Ñ.×7Ñ7Ø!1ð 8ó 3ˆLà#ˆÙØ&‰Jà5ˆJà˜Ñ"€HØ‡N�NÔà+Ñ€J�
Øò 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Ð   Tr3  r©  rš  )rš  r¾   r   rb   )r?   r   r]  r\  r/   rÇ   rÍ   r¡  r=   r²  rS   rª  r*  r  rä   r	  rh   rK   r  r¼  r½  rÁ  )	r·  r¾  r   r¾   rS   r|  rT   Ú	part_exprr¼  s	            r   Ú4test_dataset_partitioned_dictionary_type_reconstructr  M  s   € ô �H‰HœbŸi™i¨¨c¨
°AÓ6¼uÀR»yÑIÓJ€EÜ�?‰?˜5Ÿ<™<¨¨Ó1×8Ñ8ÀÔH€DÜ×Ñ�U˜G°$¸yÕIä�j‰jØ˜	Ü×(Ñ(×1Ñ1À4Ð1ÓHô€Gô �x‰xØ�e‘ e¨F¡m×&EÑ&EÓ&GÑHó€Hð ×ÑÓ×$Ñ$ XÔ.Ð.Ð.Ü�G×)Ñ)Ó+Ó,¨QÑ/€HØ×Ñ G§N¡NÐÓ3×:Ñ:¸8ÀBÀQ¸<ÔHÐHÐHØ×-Ñ-€Ià×"Ñ" =×#6Ñ#6°wÓ#?Ó@€HØ×ÑÓ×%Ñ% hÔ/Ð/Ð/à×"Ñ" =×#6Ñ#6°xÓ#@ÓA€HØ×Ñ G§N¡NÐÓ3×:Ñ:¸8ÀBÀQ¸<ÔHÐHÐHà×Ñ G§N¡NÐÓ3×=Ñ=Ó?×FÑFØ��!ˆ×ÑÓ ôð ð ð ×(Ñ(×/Ñ/°	Ô:Ð:Ñ:r   c           	      óL  — ddl m} | d   \  }}}}d|› d|› d|› d|› d�	}|j                  |«      \  }} |j                  d«       t	        j
                  d	g d
¢i«      }	 |j                  d«      5 }
t        j                  |	|
«       d d d «       |	|||||||fS # 1 sw Y   ŒxY w)Nr   ©Ú
FileSystemÚ
connectionús3://ú:z5@mybucket/data.parquet?scheme=http&endpoint_override=z&allow_bucket_creation=TrueÚmybucketr[   rÏ  zmybucket/data.parquet)	r›   r  Úfrom_urirf   r?   r   rg   rl   rm   )Ú	s3_serverr  rY  rZ  r[  r\  rX  rc   rq   r   rr   s              r   rW  rW  l  sÉ   € å%à)2°<Ñ)@Ñ&€Dˆ$�
˜Jà
�
ˆ|˜1˜Z˜Lð )Ø"˜V 1 T FÐ*Eð	Gð ð
 ×"Ñ" 3Ó'�H€Bˆà€B‡M�M�*ÔÜ�H‰H�cš9Ð%Ó&€EØ	ˆ×	Ñ	Ð6Ó	7ð #¸3Ü
�‰�u˜cÔ"÷#ð �$˜˜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	  )rW  rõ   r   rq   rc   rX  rt  rS   s           r   Útest_open_dataset_from_uri_s3r   €  s~   € ð (9Ñ$€Eˆ4��S˜!˜Q  1ô �j‰j˜ YÔ/€GØ×"Ñ" 7Ó+×2Ñ2°5Ô9Ð9Ð9ô �j‰j˜ i¸BÔ?€GØ×"Ñ" 7Ó+×2Ñ2°5Ô9Ð9Ñ9r   c                 óÚ   — | \  }}}}}}}}t        j                  d«      }|j                  |«      }t        j                  |d|¬«      }	|j                  |	«      j                  |«      sJ ‚y )Nr  r§   r  )rc   rÉ   rS  rÇ   rS   rä   r	  )
rW  rõ   r   rq   rú   rX  rt  rÑ   ÚfinfosrS   s
             r   Ú test_open_dataset_from_fileinfosr#  �  sj   € ð 0AÑ,€Eˆ4�˜S ! Q¨¨1Ü�‰˜zÓ*€HØ×%Ñ% hÓ/€FÜ�j‰j˜¨	¸jÔI€GØ×"Ñ" 7Ó+×2Ñ2°5Ô9Ð9Ñ9r   c           	      óŒ  — | \  }}}}}}}}t        j                  d«      }ddlm}	m}
 |j                  ||dd|› d|› �i¬«      }t        j                  |d|¬	«      }|j                  «       j                  |«      sJ ‚ |
 |	|«      «      }t        j                  |d|¬	«      }|j                  «       j                  |«      sJ ‚y )
NÚs3fsr   )ÚFSSpecHandlerr‹   Úendpoint_urlzhttp://r  )rÆ   ÚsecretÚclient_kwargsr§   r  )
r  Úimportorskipr›   r&  r‹   ÚS3FileSystemrÇ   rS   rä   r	  )rW  r   rq   rt  rY  rZ  r[  r\  r%  r&  r‹   rc   rS   s                r   Ú$test_open_dataset_from_uri_s3_fsspecr,  ™  sÑ   € ð =NÑ9€Eˆ4��A�t˜T :¨zÜ×Ñ˜vÓ&€Dç6à	×	Ñ	ØØà˜g d V¨1¨T¨FÐ3ð
ð 
ó 
€Bô �j‰j˜ i¸BÔ?€GØ×ÑÓ×$Ñ$ UÔ+Ð+Ð+ñ 
‘m BÓ'Ó	(€BÜ�j‰j˜ i¸BÔ?€GØ×ÑÓ×$Ñ$ UÔ+Ð+Ñ+r   c                 ó|  — ddl m} | d   \  }}}}d}d}d|› d|› d|› d	|› d
|› d|› d�}|j                  |«      \  }	}|dk(  sJ ‚ |	j                  |«       t	        j
                  dg d¢i«      }
 |	j                  |«      5 }t        j                  |
|«       d d d «       t        j                  |d¬«      }|j                  «       j                  |
«      sJ ‚dj                  ||||«      }g d¢}|D ]O  \  }}|j                  |«      }t        j                  ||d¬«      }|j                  «       j                  |
«      rŒOJ ‚ t        j                  t        j                   d¬«      5  |j                  d	«      }t        j                  d|¬«       d d d «       d}d}|j                  |«      }t        j                  t"        «      5 }t        j                  d|¬«       d d d «       t%        j&                  «      |j                  d||«      k(  sJ ‚d}|j                  |«      }t        j                  t"        «      5 }t        j                  d|¬«       d d d «       t%        |j&                  «      |j                  d||«      k(  sJ ‚y # 1 sw Y   �ŒõxY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒÆxY w# 1 sw Y   Œ[xY w)Nr   r  r  Útheirbucketúnested/folder/data.parquetr  r  ú@r«   z?scheme=http&endpoint_override=z&allow_bucket_creation=truez&theirbucket/nested/folder/data.parquetr[   rÏ  r§   r  ú3s3://{}:{}@{{}}?scheme=http&endpoint_override={}:{}))ztheirbucket/nested/folder/z/data.parquet)ztheirbucket/nested/folderúdata.parquet)ztheirbucket/nested/úfolder/data.parquet)ztheirbucket/nestedr3  )r.  z/nested/folder/data.parquet)r.  r/  rL  zMissing bucket namer   z'/theirbucket/nested/folder/data.parquetrË  z›The path component of the filesystem URI must point to a directory but it has a type: `{}`. The path component is `{}` and the given filesystem URI is `{}`ztheirbucket/doesnt/existr2  ÚNotFoundÚFile)r›   r  r  rf   r?   r   rg   rl   rm   rÇ   rS   rä   r	  rÐ   r  r  ra  rN  r_   r'   )r  r  rY  rZ  r[  r\  Úbucketrq   rX  rc   r   rr   rS   Útemplater‡  Úprefixr2  Úexcs                     r   Ú-test_open_dataset_from_s3_with_filesystem_urir:  ³  s¢  € õ &à)2°<Ñ)@Ñ&€Dˆ$�
˜JØ€FØ'€Dà
�
ˆ|˜1˜Z˜L¨¨&¨°°4°&ð 9Ø"˜V 1 T FÐ*Eð	Gð ð
 ×"Ñ" 3Ó'�H€BˆØÐ;Ò;Ð;Ð;à€B‡M�M�&Ôä�H‰H�cš9Ð%Ó&€EØ	ˆ×	Ñ	˜tÓ	$ð #¨Ü
�‰�u˜cÔ"÷#ô �j‰j˜ YÔ/€GØ×ÑÓ×$Ñ$ UÔ+Ð+Ð+ð 	>×DÑDØ˜
 D¨$ó	
ð ò
€Eð ò 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_fsspecr>  ÷  s\   € ä% gÓ.�K€Eˆ4ä× Ñ  Ó*€Fà×Ñ Ó'€GÜ�j‰j˜¨'Ô2€GØ�>‰>× Ñ  §¡Ô.Ð.Ñ.r   c                 óJ  — t        j                  d«      }t        j                  dg d¢i«      }| dz  }t	        j
                  ||«       |j                  d«      }|j                  | «      d   j                  d«      sJ ‚t        j                  «       }t        j                  t        j                  |«      «      }|j                  ||«      }|j                  |j                   «      sJ ‚|j#                  ||«      }|j$                  j                  |j                   «      sJ ‚y )Nr<  r[   rÏ  r2  r=  r   )r  r*  r?   r   rl   rm   rú   ÚlsÚendswithrÇ   rÈ   rc   r‹   r&  rC  r	  r=   r  r“  )	r·  r<  r   rq   Ú	fsspec_fsrÐ   rú   r=   rT   s	            r   Útest_file_format_inspect_fsspecrC    sö   € ô × Ñ  Ó*€Fô �H‰H�cš9Ð%Ó&€EØ�^Ñ#€DÜ‡N�N�5˜$Ôð ×!Ñ! &Ó)€IØ�<‰<˜Ó  Ñ#×,Ñ,¨^Ô<Ð<Ð<ô ×!Ñ!Ó#€Fô —‘¤×!1Ñ!1°)Ó!<Ó=€JØ�^‰^˜D *Ó-€FØ�=‰=˜Ÿ™Ô&Ð&Ð&à×#Ñ# D¨*Ó5€HØ×#Ñ#×*Ñ*¨5¯<©<Ô8Ð8Ñ8r   c                 ó4  — | dz  }t        j                  ddgdz  t        d«      dœ«      }t        j                  |j                  dg«      j                  d¬	«      }t        j                  |||d
¬«       t        j                  t        j                  dt        j                  d«      fg«      d¬	«      }t        j                  |d
|¬«      }t        j                  d«      t        j                  d«      kD  }|j                  ||¬«      }|j                  d«      j                  «       g d¢k(  sJ ‚dd l}t        j                  d«       |j                   ddd«      kD  }|j                  ||¬«      }|j                  d«      j                  «       g d¢k(  sJ ‚y )NÚtest_partition_timestampsú
2012-01-01z
2012-01-02r   rª   )ÚdatesrÇ  rG  r¬   rœ  r  r  rõ  r©  rý   rÇ  )r   rY   r   rU  r�  r   iÜ  r   )r?   r   r/   rÇ   rÍ   r¡  r=   r²  rá  rS   r@   r3   Ú	Timestamprä   r-  rh  r+   )r·  rõ   rq   r   r¾   rS   r8  r+   s           r   Útest_filter_timestamprI    s\  € ð Ð0Ñ0€Dä�H‰HØ Ð-°Ñ1Ü�B‹iñó €Eô
 �?‰?˜5Ÿ<™<¨¨	Ó2×9Ñ9À&ÔI€DÜ×Ñ�U˜D¨t¸IÕFô �?‰?œ2Ÿ9™9 w´·±¸SÓ0AÐ&BÐ%CÓDØ"(ô*€Dä�j‰j˜ i¸dÔC€Gä—‘˜Ó!¤B§L¡L°Ó$>Ñ>€IØ×#Ñ# G°IÐ#Ó>€EØ�<‰<˜Ó×'Ñ'Ó)ª_Ò<Ð<Ð<ãÜ—‘˜Ó!Ð$5 H×$5Ñ$5°d¸A¸qÓ$AÑA€IØ×#Ñ# G°IÐ#Ó>€EØ�<‰<˜Ó×'Ñ'Ó)ª_Ò<Ð<Ñ<r   c                 óP  — t        j                  dt        j                  g d¢t        j                  «       ¬«      i«      }t	        | |«      \  }}t        j                  t        |«      «      }t        j                  d«      dkD  }t        |j                  ||¬«      «      dk(  sJ ‚y )Nr[   )r   r   rv   rY   r{   r   rw   rv   rý   rY   )r?   r   r~   r   r  rÇ   rS   r_   r@   r±   rä   )r·  rõ   r   rt  rq   rS   Úfilter_s          r   Útest_filter_implicit_castrL  8  s€   € ô �H‰H�cœ2Ÿ8™8Ò$6¼R¿W¹W»YÔGÐHÓI€EÜ! '¨5Ó1�G€A€tÜ�j‰jœ˜T›Ó#€Gä�h‰h�s‹m˜aÑ€GÜˆ~×&Ñ& w°wÐ&Ó?Ó@ÀAÒEÐEÑEr   c                 ó*  — t        j                  dg d¢i«      }t        | |«      \  }}t        j                  t        |«      «      }|j                  |t        j                  d«      t        j                  d «      k(  ¬«      }|j                  dk(  sJ ‚y )NrÉ  )r[   r\   Nrý   r   )
r?   r   r  rÇ   rS   r_   rä   r@   r  rí   )r·  rõ   r   rt  rq   rS   s         r   Útest_filter_equal_nullrN  C  s}   € ô �H‰H�cÒ+Ð,Ó-€EÜ! '¨5Ó1�G€A€tÜ�j‰jœ˜T›Ó#€Gà×#Ñ#ØœŸ™ ›¬¯©°4«Ñ8ð $ó €Eð �>‰>˜QÒÐÑr   c                 óŒ  — t        j                  g d¢t        d«      D �cg c]  }t        j                  ddd|«      ‘Œ c}t        dd«      D �cg c]  }t        j                  dd|«      ‘Œ c}dœ«      }t	        | |«      \  }}t        j                  t        |«      «      }t        j                  t        j                  d«      t        j                  dd	g«      «      }|j                  ||¬
«      j                  dk(  sJ ‚t        j                  t        j                  d«      «      dk\  }|j                  ||¬
«      j                  dk(  sJ ‚t        j                  t        j                  d«      t        j                  d«      «      }|j                  |d|i¬«      }	|	d   j!                  «       g d¢k(  sJ ‚y c c}w c c}w )N)r[   r\   Nr[   r}   r   iæ  r   rÑ  rü  rÉ  r[   r\   rý   rY   rý  rv   rþ  r   r)   r   )r?   r   r/   r+   r  rÇ   rS   r_   rË  Úis_inr@   r~   rä   rí   ÚhourÚdays_betweenrh  )
r·  rõ   r:   r   rt  rq   rS   rK  r   r9  s
             r   Útest_filter_compute_expressionrS  P  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 )NrK  r  r   c              3   óP   K  — | ]  }t        |t        j                  «      –— Œ  y ­wr   )rM   r?   r+  )r‰  rõ  s     r   rŠ  z%test_dataset_union.<locals>.<genexpr>n  s   è ø€ ÒK¨AŒz˜!œRŸY™Y×'ÑKùs   ‚$&r   )rÇ   rÎ   rc   rÉ   rÈ   ÚUnionDatasetFactoryr±   r@  r¬  r	  rC  rM   rÏ   r*  )rÀ   rÈ  rÓ   s      r   Útest_dataset_unionrW  e  sß   € Ü×'Ñ'Ø”r—‘ xÓ0Ü×#Ñ#Ó%ô€Eô ×$Ñ$ e WÓ-€Gô ˆw×&Ñ&Ó(Ó)¨QÒ.Ð.Ð.ÜÑK°×1HÑ1HÓ1JÔKÔKÐKÐKØ×"Ñ"Ó$ QÑ'×.Ñ.¨u¯}©}«Ô?Ð?Ð?Ø�?‰?Ó×#Ñ# E§M¡M£OÔ4Ð4Ð4Ü�g—n‘nÓ&¬¯
©
Ô3Ð3Ñ3r   c                 óh	  — t        j                  d|d¬«      }t        j                  d|dddg¬«      }t        j                  d|dd	¬«      }|j                  |j                  cxk7  r|j                  k7  sJ ‚ J ‚t        j                  |||g«      }t        |t         j                  «      sJ ‚d
}t        j                  t        |¬«      5  t        j                  ||g|¬«       d d d «       t        j                  dt        j                  «       fdt        j                  «       fdt        j                  «       fdt        j                  «       fdt        j                  «       fdt        j                  «       fdt        j                  «       fg«      }|j                  j                  |«      sJ ‚|j                  «       j                  j                  |«      sJ ‚t        j                  ||g«      }t        j                  dt        j                  «       fdt        j                  «       fdt        j                  «       fdt        j                  «       fdt        j                  «       fdt        j                  «       fg«      }|j                  j                  |«      sJ ‚|j                  «       j                  j                  |«      sJ ‚t        j                  dt        j                  «       fdt        j                  «       fdt        j                  «       fg«      }t        j                  ||g|¬«      }|j                  «       j                  j                  |«      sJ ‚t        j                  dt        j                  «       fdt        j                  «       fdt        j                  «       fg«      }t        j                  ||g|¬«      }|j                  «       j                  j                  |«      sJ ‚t        j                   t#        d«      dgdz  dgdz  z   dgg d¢¬«      }t%        | |¬«      \  }	}
t        j                  |
«      }t        j                  t        j&                  d¬«      5  t        j                  ||g«       d d d «       y # 1 sw Y   �Œ·xY w# 1 sw Y   y xY w)NrK  r§   rL  rÑ  Úweekr(   ©rú   rÐ   rÍ   ú/hiver¬   z$cannot pass any additional argumentsr   rË  r%   r&   r'   r¶   r·   rb   rZ  r�  r'  r{   r!  r   Ú	abcdefghj)r%   r'   r&   r¦  r   zUnable to merge)rÇ   rS   r=   rM   rÆ  r  r  rN  r?   rA   rB   rC   rD   rÌ   r	  rä   r   r/   r  rB  )r·  rÀ   rÖ  r×  Úchild3Ú	assembledÚmsgrF  r   rt  rq   Úchild4s               r   Ú&test_union_dataset_from_other_datasetsra  t  sÀ  € Ü�Z‰Z˜¨]À9ÔM€FÜ�Z‰Z˜	¨mÀIØ&,¨gÐ%6ô8€Fä�Z‰Z˜¨MÀ)Ø%+ô-€Fð �=‰=˜FŸM™MÔ:¨V¯]©]Ò:Ð:Ñ:Ð:Ð:ä—
‘
˜F F¨FÐ3Ó4€IÜ�i¤§¡Ô1Ð1Ð1à
0€CÜ	�‰”z¨Ô	-ñ ?Ü
�
‰
�F˜FÐ#°Õ>÷?ô —i‘iØ	”—‘“ÐØ	”"—(‘(“*ÐØ	”"—*‘*“,ÐØ	”"—)‘)“+ÐØ	”—‘“ÐØ	”—‘“ÐØ	”"—(‘(“*Ðð!ó €Oð ×Ñ×"Ñ" ?Ô3Ð3Ð3Ø×ÑÓ×&Ñ&×-Ñ-¨oÔ>Ð>Ð>ä—
‘
˜F FÐ+Ó,€IÜ—i‘iØ	”—‘“ÐØ	”"—(‘(“*ÐØ	”"—*‘*“,ÐØ	”"—)‘)“+ÐØ	”—‘“ÐØ	”"—(‘(“*Ðð!ó €Oð ×Ñ×"Ñ" ?Ô3Ð3Ð3Ø×ÑÓ×&Ñ&×-Ñ-¨oÔ>Ð>Ð>ä—i‘iØ	”"—(‘(“*ÐØ	”"—)‘)“+ÐØ	”—‘“Ðð!ó €Oô
 —
‘
˜F FÐ+°OÔD€IØ×ÑÓ×&Ñ&×-Ñ-¨oÔ>Ð>Ð>ä—i‘iØ	”"—(‘(“*ÐØ	”"—)‘)“+ÐØ	”B—I‘I“KÐ ð!ó €Oô
 —
‘
˜F FÐ+°OÔD€IØ×ÑÓ×&Ñ&×-Ñ-¨oÔ>Ð>Ð>ô �H‰H”e˜A“h   q¡¨B¨4°!©8Ñ 3°[ÐAÚ5ô7€Eä! '°Ô7�G€A€tÜ�Z‰Z˜Ó€Fä	�‰”r×(Ñ(Ð0AÔ	Bñ %Ü
�
‰
�F˜FÐ#Ô$÷%ð %÷c?ñ ?ú÷b%ð %ús   ÃRÑ:R(ÒR%Ò(R1c                 óš   — d}t        j                  t        |¬«      5  t        j                  g d¢| ¬«       d d d «       y # 1 sw Y   y xY w)Nz8points to a directory, but only file paths are supportedr   )rK  rÑ  r[  rË  )r  r  ÚIsADirectoryErrorrÇ   rS   )rÀ   r_  s     r   Ú4test_dataset_from_a_list_of_local_directories_raisesrd  ¶  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 )NrK  rË  rÑ  r[  r%   r&   r'   r(   r¬   )rú   rÍ   r¶   r·   )
rÇ   rS   r?   r=   rA   rB   rC   rD   r	  rÌ   )rÀ   rS   rF  s      r   Ú&test_union_dataset_filesystem_datasetsrf  ¼  sj  € ä�j‰jÜ
�
‰
�8¨Ô6Ü
�
‰
�9¨Ô7Ü
�
‰
�7 }Ô5ðó €Gô
 —i‘iØ	”—‘“ÐØ	”"—(‘(“*ÐØ	”"—*‘*“,ÐØ	”"—)‘)“+Ðð	!ó €Oð �>‰>× Ñ  Ô1Ð1Ð1ô �j‰jÜ
�
‰
�8¨Ô6Ü
�
‰
�9¨Ô7Ü
�
‰
�7 }À6ÔJðó €Gô
 —i‘iØ	”—‘“ÐØ	”"—(‘(“*ÐØ	”"—*‘*“,ÐØ	”"—)‘)“+ÐØ	”—‘“ÐØ	”"—(‘(“*Ðð!ó €Oð �>‰>× Ñ  Ô1Ð1Ñ1r   c                 óÞ  ‡ ‡— t        j                  g d¢g d¢dœ«      }t        j                  |‰ dz  «       dˆˆ fd„	}d }|} ||||j                  ¬«       |j                  }|} |||«       t        j                  ddg«      }t        j                  g d¢g d¢gd	d
g¬«      } |||«       t        j                  dg«      }t        j                  g d¢gd
g¬«      } |||«       t        j                  ddg«      }t        j                  g d¢t        j
                  g d¢d¬«      gd
dg¬«      } |||«       t        j                  ddg«      }t        j                  t        ‰ dz  «      |¬«      }t        j                  |d
   j                  d«      |d	   gd
d	g¬«      } |||«       t        j                  d
t        j                  t        j                  «       «      fdg«      }t        j                  t        ‰ dz  «      |¬«      }|j                  j                  |«      sJ ‚t        j                  t        d¬«      5  ‰j!                  |«       d d d «       y # 1 sw Y   y xY w)NrÏ  ©r  r  r  rZ   r2  c                 ó  •— t        j                  t        ‰dz  «      | ¬«      }|�|j                  j	                  |«      sJ ‚|j                  j	                  | «      sJ ‚‰j                  |«      }|j	                  |«      sJ ‚y )Nr2  rb   )rÇ   rS   r_   r=   r	  rä   )r=   r|  rF  rS   r9  rõ   r·  s        €€r   r”  z-test_specified_schema.<locals>._check_datasetá  su   ø€ Ü—*‘*œS ¨>Ñ!9Ó:À6ÔJˆØÐ&Ø—>‘>×(Ñ(¨Ô9Ð9Ð9à—>‘>×(Ñ(¨Ô0Ð0Ð0Ø×(Ñ(¨Ó1ˆØ�}‰}˜XÔ&Ð&Ñ&r   )rF  )r\   rC   )r[   rB   r\   r[   r¦  )r}   rÌ   ©NNNrÌ   rw   r}   )r[   rÌ   rb   z#Unsupported cast from int64 to listr   r   )r?   r   rl   rm   r=   r~   rÇ   rS   r_   rÓ  Úlist_rÌ   r	  r  r  r  rä   )r·  rõ   r   r”  r=   r|  rS   s   ``     r   Útest_specified_schemarl  Ü  s  ù€ ä�H‰Hš9ª<Ñ8Ó9€EÜ‡N�N�5˜' NÑ2Ô3ö'ð €FØ€HÙ�6˜8°U·\±\ÕBð �\‰\€FØ€HÙ�6˜8Ô$ô �Y‰YÐ(¨.Ð9Ó:€FÜ�x‰xš¢yÐ1¸#¸s¸ÔD€HÙ�6˜8Ô$ô �Y‰Y˜Ð'Ó(€FÜ�x‰xš˜¨C¨5Ô1€HÙ�6˜8Ô$ô �Y‰Y˜¨Ð7Ó8€FÜ�x‰xšÜŸ™Ò"4¸7ÔCðEà" C˜jô*€Hñ �6˜8Ô$ô �Y‰Y˜Ð(8Ð9Ó:€FÜ�j‰jœ˜W ~Ñ5Ó6¸vÔF€GÜ�x‰x˜˜s™Ÿ™¨Ó1Ø˜s™ð%à" C˜jô*€Hñ �6˜8Ô$ô �Y‰Y˜œbŸh™h¤r§x¡x£zÓ2Ð3Ð5EÐFÓG€FÜ�j‰jœ˜W ~Ñ5Ó6¸vÔF€GØ�>‰>× Ñ  Ô(Ð(Ð(Ü	�‰Ô*ØBô
Dñ )à×Ñ Ô(÷)÷ )ñ )ús   ÉI#É#I,c                 ó  — | dz  }t        j                  dg d¢i«      }t        j                  ||«       t        j                  dt        j
                  «       fg«      }t        j                  t        |«      gdz  |¬«      }|j                  j                  |«      sJ ‚|j                  |«      }t        j                  t        d¬«      5  |j                  «       }|j                  «        d d d «       y # 1 sw Y   y xY w)Nr2  r[   rÏ  éd   rb   z#Unsupported cast from int64 to nullr   )r?   r   rl   rm   r=   rÛ  rÇ   rS   r_   r	  rê   r  r  r  rd  re  )r·  rõ   Úfnr   r=   rS   rê   ró   s           r   Útest_incompatible_schema_hangrp    sÍ   € ð 
�>Ñ	!€BÜ�H‰H�cš9Ð%Ó&€EÜ‡N�N�5˜"Ôä�Y‰Y˜œbŸg™g›iÐ(Ð)Ó*€FÜ�j‰jœ#˜b›'˜ S™°Ô8€GØ�>‰>× Ñ  Ô(Ð(Ð(Ø×$Ñ$ WÓ-€GÜ	�‰Ô*ØBô
Dñ à×"Ñ"Ó$ˆØ�‰Ô÷÷ ñ ús   Ã!C6Ã6C?c                 óØ  — t        j                  t        j                  g d¢d¬«      t        j                  g d¢d¬«      dœ«      }t        | dz  «      }t        j                  |«      5 }t        j
                  ||j                  «      }|j                  |j                  «       d   «       |j                  «        d d d «       t        j                  |t        j                  «       ¬	«      }|j                  |«      }|j                  |«      sJ ‚t        |«       d
D ]=  }t        j                  ||¬	«      }|j                  |«      }|j                  |«      rŒ=J ‚ y # 1 sw Y   Œ¤xY w)NrÏ  r   rw   rh  rC   rZ   z
test.arrowr   r  )r¨  Úarrow)r?   r   r~   r_   Úoutput_streamÚRecordBatchFileWriterr=   Úwrite_batchrç   rC  rÇ   rS   r  rä   r	  rV   )	r·  rõ   r   rq   rH  rI  rS   r9  Ú
format_strs	            r   Útest_ipc_formatrw  (  s)  € Ü�H‰Hœ2Ÿ8™8¢I°FÔ;ÜŸ8™8¢L°yÔAñCó D€Eô ˆw˜Ñ%Ó&€DÜ	×	Ñ	˜$Ó	ð  4Ü×)Ñ)¨$°·±Ó=ˆØ×Ñ˜5×+Ñ+Ó-¨aÑ0Ô1Ø�‰Œ÷ô
 �j‰j˜¤b×&6Ñ&6Ó&8Ô9€GØ×$Ñ$ WÓ-€FØ�=‰=˜ÔÐÐä/°Ô8à&ò $ˆ
Ü—*‘*˜T¨*Ô5ˆØ×(Ñ(¨Ó1ˆØ�}‰}˜UÕ#Ð#Ð#ñ$÷ð ús   Á*AE Å E)c           	      óÌ  — ddl m} t        j                  t        j                  g d¢d¬«      t        j                  g d¢d¬«      dœ«      }t        | d	z  «      }|j                  ||«       t        j                  |t        j                  «       ¬
«      }t        |j                  «       «      }t        |d   t        j                  «      sJ ‚|j                  |«      }|j                  d¬«       |j!                  |«      sJ ‚t#        |«       t        j                  |d¬
«      }|j                  |«      }|j                  d¬«       |j!                  |«      sJ ‚|j                  |dg¬«      }|j                  d¬«       |j!                  |j%                  dg«      «      sJ ‚|j                  |dt        j&                  d«      dz  i¬«      }|j                  d¬«       |j!                  t        j                  dt        j                  g d¢d¬«      i«      «      sJ ‚|j)                  |«      dk(  sJ ‚|j)                  |t        j&                  d«      dkD  ¬«      dk(  sJ ‚y )Nr   ©ÚorcrÏ  r   rw   rh  rC   rZ   útest.orcr  Tr@  rz  r\   r)   Úb2rv   )r  r  g333333ã?rY   r[   rý   r   )r¯   rz  r?   r   r~   r_   rm   rÇ   rS   r'  rh   rK   rM   ÚFileFragmenträ   rD  r	  rV   r¡  r@   rò   )r·  rõ   rz  r   rq   rS   r  r9  s           r   Útest_orc_formatr~  >  s  € åÜ�H‰Hœ2Ÿ8™8¢I°FÔ;ÜŸ8™8¢L°yÔAñCó D€Eô ˆw˜Ñ#Ó$€DØ‡O�O�E˜4Ô ä�j‰j˜¤b×&6Ñ&6Ó&8Ô9€GÜ�W×*Ñ*Ó,Ó-€IÜ�i ‘l¤B§O¡OÔ4Ð4Ð4Ø×$Ñ$ WÓ-€FØ
‡O�O˜€OÔØ�=‰=˜ÔÐÐä/°Ô8ä�j‰j˜ eÔ,€GØ×$Ñ$ WÓ-€FØ
‡O�O˜€OÔØ�=‰=˜ÔÐÐà×$Ñ$ W°s°eÐ$Ó<€FØ
‡O�O˜€OÔØ�=‰=˜Ÿ™ s eÓ,Ô-Ð-Ð-à×$Ñ$Ø˜$¤§¡¨£°Ñ 1Ð2ð %ó €Fð ‡O�O˜€OÔØ�=‰=Ü
�‰�$œŸ™¢°IÔ>Ð?Ó@ôð ð ð ×$Ñ$ WÓ-°Ò2Ð2Ð2Ø×$Ñ$ W´R·X±X¸c³]ÀQÑ5FÐ$ÓGÈ1ÒLÐLÑLr   c                 óX  — ddl m} t        j                  t        j                  g d¢d¬«      t        j                  g d¢d¬«      dœ«      }t        | d	z  «      }|j                  ||«       t        j                  |d
¬«      }t        |j                  |«      «      }t        |«      dk(  sJ ‚|d   j                  dk(  sJ ‚|d   j                  |j                  «       d   «      sJ ‚t        |j                  |d¬«      «      }t        |«      dk(  sJ ‚|d   j                  dk(  sJ ‚|d   j                  |j                  dd«      j                  «       d   «      sJ ‚|d   j                  dk(  sJ ‚|d   j                  |j                  dd«      j                  «       d   «      sJ ‚y )Nr   ry  rÏ  r   rw   rh  rC   rZ   r{  rz  r  r   rY   rv   )Ú
batch_size)r¯   rz  r?   r   r~   r_   rm   rÇ   rS   rh   rç   r±   rí   r	  r•  )r·  rõ   rz  r   rq   rS   r9  s          r   Útest_orc_scan_optionsr�  e  s‡  € åÜ�H‰Hœ2Ÿ8™8¢I°FÔ;ÜŸ8™8¢L°yÔAñCó D€Eô ˆw˜Ñ#Ó$€DØ‡O�O�E˜4Ô ä�j‰j˜ eÔ,€GÜ�.×+Ñ+¨GÓ4Ó5€FÜˆv‹;˜!ÒÐÐØ�!‰9×Ñ Ò"Ð"Ð"Ø�!‰9×Ñ˜E×,Ñ,Ó.¨qÑ1Ô2Ð2Ð2ä�.×+Ñ+¨GÀÐ+ÓBÓC€FÜˆv‹;˜!ÒÐÐØ�!‰9×Ñ Ò"Ð"Ð"Ø�!‰9×Ñ˜EŸK™K¨¨1Ó-×8Ñ8Ó:¸1Ñ=Ô>Ð>Ð>Ø�!‰9×Ñ Ò"Ð"Ð"Ø�!‰9×Ñ˜EŸK™K¨¨1Ó-×8Ñ8Ó:¸1Ñ=Ô>Ð>Ñ>r   c                  óÀ   — 	 ddl m}  y # t        $ rK t        j                  t
        d¬«      5  t        j                  dd¬«       d d d «       Y y # 1 sw Y   Y y xY ww xY w)Nr   ©r'  z'not built with support for the ORC filer   r:  rz  r  )rÀ  r'  r(  r  r  rN  rÇ   rS   rƒ  s    r   Útest_orc_format_not_supportedr„  |  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ª   rz  z/tmp)rÐ   r�  )
r  r  r  rÇ   r²  r?   r   r/   r'  Úmake_write_options)Úofs    r   Ú+test_orc_writer_not_implemented_for_datasetrˆ  ‡  sœ   € ä	�‰ÜØIô
ñ 
ô 	×ÑÜ�H‰H�cœ5 ›9Ð%Ó&¨u¸võ	
÷	
ô 
×	Ñ	Ó	€BÜ	�‰ÜØIô
ñ  ð 	×ÑÔ÷	 ð  ÷
ð 
ú÷ ð  ús   œ7B$Â
B0Â$B-Â0B9c                 ó  — t        j                  t        j                  g d¢d¬«      t        j                  g d¢d¬«      dœ«      }t        | dz  «      }|j	                  «       j                  |d¬	«       t        j                  |t        j                  «       ¬
«      }|j                  |«      }|j                  |«      sJ ‚t        |«       t        j                  |d¬
«      }|j                  |«      }|j                  |«      sJ ‚y )NrÏ  rB   rw   rh  rC   rZ   útest.csvF©r&   r  r"  )r?   r   r~   r_   rÁ  Úto_csvrÇ   rS   r!  rä   r	  rV   )r·  rõ   r   rq   rS   r9  s         r   Útest_csv_formatr�  ™  sÒ   € ä�H‰Hœ2Ÿ8™8¢I°GÔ<ÜŸ8™8¢L°yÔAñCó D€Eô ˆw˜Ñ#Ó$€DØ	‡O�OÓ×Ñ˜T¨ÐÔ/ä�j‰j˜¤b×&6Ñ&6Ó&8Ô9€GØ×$Ñ$ WÓ-€FØ�=‰=˜ÔÐÐä/°Ô8ä�j‰j˜ eÔ,€GØ×$Ñ$ WÓ-€FØ�=‰=˜ÔÐÑr   Úcompression)Úbz2ÚgzipÚlz4Úzstdc                 óÄ  — t         j                  j                  |«      st        j                  |› d�«       t        j                  t        j                  g d¢d¬«      t        j                  g d¢d¬«      dœ«      }t        j                  «       }|dk7  r|nd	}t        | d
|› �z  «      }|j                  ||¬«      5 }|j                  «       j                  d¬«      }|j                  |j                  d«      «       d d d «       t!        j"                  |t!        j$                  «       ¬«      }	|j'                  |	«      }
|
j)                  |«      sJ ‚y # 1 sw Y   ŒWxY w)Nz support is not builtrÏ  rB   rw   rh  rC   rZ   r�  Úgzz	test.csv.©rŽ  Fr‹  re  r  )r¯   ÚCodecÚis_availabler  Úskipr?   r   r~   rc   rŠ   r_   rg   rÁ  rŒ  Úwritert  rÇ   rS   r!  rä   r	  )r·  rŽ  rõ   r   rú   Úsuffixrq   rH  Úcsv_strrS   r9  s              r   Útest_csv_format_compressedrœ  ¬  s$  € ô �=‰=×%Ñ% kÔ2Ü�‰�{�mÐ#8Ð9Ô:Ü�H‰Hœ2Ÿ8™8¢I°GÔ<ÜŸ8™8¢L°yÔAñCó D€Eä×#Ñ#Ó%€JØ'¨6Ò1‰[°t€FÜˆw˜9 V HÐ-Ñ-Ó.€DØ	×	&Ñ	& t¸Ð	&Ó	Eð ,Èð —/‘/Ó#×*Ñ*°Ð*Ó7ˆØ�
‰
�7—>‘> 'Ó*Ô+÷,ô �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   rH  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   rH  rS   r9  Úexpected_column_namess          r   Ú(test_csv_format_options_generate_columnsr§  Ü  sø   € Üˆw˜Ñ#Ó$€DÜ	ˆd�C‹ð #˜DØ�
‰
�>Ô"÷#ô �j‰j˜¤b×&6Ñ&6Ü—V‘V×'Ñ'À$Ð'ÓGô'Iô J€Gà×$Ñ$ WÓ-€FÚ4ÐØ×ÑÐ"7Ò7Ð7Ð7Ø�=‰=œŸ™¬¯©°1°#«Ü)+¯©°3°%«Ü)+¯©°4°&Ó)9Ü)+¯©°1°#«ñ#8ó 9ô :ð :ñ :÷#ð #ús   ›D Ä D)c           	      óÀ  — t        | dz  «      }t        |d«      5 }|j                  d«       d d d «       t        j                  |d¬«      }t
        j                  j                  dgd¬«      }t        j                  |t        j                  j                  d	¬
«      ¬«      }|j                  ||¬«      }|j                  t        j                  dt        j                  g d¢«      i«      «      sJ ‚t        j                  |¬«      }t        j                  ||¬«      }|j                  |«      }|j                  t        j                  dt        j                  g d¢«      i«      «      sJ ‚t        j                  «       }|j                  ||¬«      }|j                  t        j                  dt        j                  g d¢«      i«      «      sJ ‚y # 1 sw Y   �Œ¨xY w)NrŠ  rž  zcol0
foo
spam
MYNULL
r"  r  ÚMYNULLT)Únull_valuesr-  r0  r1  )r/  rö  )Úfragment_scan_optionsr   )rÇ  ÚspamNr.  )rÇ  r¬  r©  )r_   rL   r™  rÇ   rS   r¯   r"  r4  r3  r?   r$  rä   r	  r   r~   r!  )	r·  rõ   rq   rH  rS   r/  rÒ   r9  rx  s	            r   Útest_csv_fragment_optionsr­  ì  s‰  € Üˆw˜Ñ#Ó$€DÜ	ˆd�C‹ð 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   rh  rC   rZ   ú	test.jsonÚrecords©Úorientr   rM  ú},{ú}
{rž  r  r&  )r?   r   r~   r_   rÁ  Úto_jsonÚreplacerL   r™  rÇ   rS   r%  rä   r	  rV   ©r·  rõ   r   rq   rr   rÙ  rS   r9  s           r   Útest_json_formatr¸    s  € ä�H‰Hœ2Ÿ8™8¢I°GÔ<ÜŸ8™8¢L°yÔAñCó D€Eô ˆw˜Ñ$Ó%€DØ
�/‰/Ó
×
#Ñ
#¨9Ð
#Ó
5°a¸Ð
;×
CÑ
CÀEÈ6Ó
R€CÜ	ˆd�C‹ð ˜AØ	�‰�Œ÷ô �j‰j˜¤b×&7Ñ&7Ó&9Ô:€GØ×$Ñ$ WÓ-€FØ�=‰=˜ÔÐÐä/°Ô8ä�j‰j˜ fÔ-€GØ×$Ñ$ WÓ-€FØ�=‰=˜ÔÐÑ÷ð ús   ÂEÅEc           	      óB  — t        j                  t        j                  g d¢d¬«      t        j                  g d¢d¬«      dœ«      }t        | dz  «      }|j	                  «       j                  d¬	«      d
d j                  dd«      }t        |d«      5 }|j                  |«       d d d «       t        j                  t        d¬«      5  t        j                  |t        j                  t         j                  j!                  d¬«      ¬«      ¬«      }d d d «       t        j                  |t        j                  t         j                  j!                  d¬«      ¬«      ¬«      }|j#                  |«      }|j%                  |«      sJ ‚y # 1 sw Y   ŒäxY w# 1 sw Y   ŒƒxY w©NrÏ  rB   rw   rh  rC   rZ   r¯  r°  r±  r   rM  r³  r´  rž  ztry to increase block sizer   r{   r1  r  r  é@   )r?   r   r~   r_   rÁ  rµ  r¶  rL   r™  r  r  rN  rÇ   rS   r%  r&  r$  rä   r	  r·  s           r   Útest_json_format_optionsr¼    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Ç   r5  r&  r$  rS   r%  rä   r	  )	r·  rõ   r   rq   rr   rÙ  rÒ   rS   r9  s	            r   Útest_json_fragment_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ô
;ñ 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_rowsrH  rF  rG  rö  r  Údataset_transcodeds              r   Útest_encodingrÉ  E  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¯   rU  ra  rä   r"  r$  r!  r	  )
r·  rõ   rq   rH  rF  rG  rS   rö  r  rÈ  s
             r   Útest_column_names_encodingrÌ  ^  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c                 óŒ  — ddl m} t        j                  t        j                  g d¢d¬«      t        j                  g d¢d¬«      dœ«      }| d	z  }|j                  «         ||t        |d
z  «      «       t        j                  |t        j                  «       ¬«      }|j                  |«      }|j                  |«      sJ ‚t        |«       t        j                  |d¬«      }|j                  |«      }|j                  |«      sJ ‚|j                  |ddg¬«      }|j                  ddgk(  sJ ‚|j                  |ddg¬«      }|j                  ddgk(  sJ ‚ ||t        |dz  «      d¬«       t        j                  t         «      5  |j                  t        j                  |d¬«      «       d d d «       y # 1 sw Y   y xY w)Nr   )r  rÏ  r   rw   rh  rC   rZ   Úfeather_datasetr  r  r  r\   r[   r)   zdata1.featherr   ©Úversion)Úpyarrow.featherr  r?   r   r~   r¯  r_   rÇ   rS   r  rä   r	  rV   rg  r  r  rN  )r·  rõ   r  r   rh  rS   r9  s          r   Útest_feather_formatrÒ  v  sŽ  € Ý-ä�H‰Hœ2Ÿ8™8¢I°FÔ;ÜŸ8™8¢L°yÔAñCó D€Eð Ð)Ñ)€GØ‡M�M„OÙ�%œ˜W ~Ñ5Ó6Ô7ä�j‰j˜¬×)9Ñ)9Ó);Ô<€GØ×$Ñ$ WÓ-€FØ�=‰=˜ÔÐÐä/°Ô8ä�j‰j˜¨Ô3€GØ×$Ñ$ WÓ-€FØ�=‰=˜ÔÐÐð ×$Ñ$ W°s¸C°jÐ$ÓA€FØ×Ñ 3¨ *Ò,Ð,Ð,Ø×$Ñ$ W°s¸C°jÐ$ÓA€FØ×Ñ 3¨ *Ò,Ð,Ð,ñ �%œ˜W Ñ6Ó7ÀÕCÜ	�‰”zÓ	"ñ 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   rh  rn  rC   rZ   Úfeather_dataset_compressedÚfeather_dataset_uncompressedz
data.arrowr•  ©rÐ   Úfile_optionsrÓ  zCompression typer   r  úpart-0.arrow)r?   r   r~   r–  r—  r  r˜  r¯  rÇ   r  r²  r_   r†  r  rN  rS   rä   r	  ÚstatÚst_size)r·  rŽ  rõ   r   rh  r  Úuncompressed_basedirÚwrite_optionsÚcodecrS   r9  Úcompressed_fileÚcompressed_sizeÚuncompressed_fileÚuncompressed_sizes                  r   Útest_feather_format_compressedrä  –  s'  € ô �H‰Hœ2Ÿ8™8 Q C¨¡G°&Ô9ÜŸ8™8¢L°Ñ$4¸9ÔEñGó H€Eä�8‰8× Ñ  Ô-Ü�‰ŒàÐ4Ñ4€GØ‡M�M„OÜ×"Ñ"Ó$€Kà"Ð%CÑCÐØ×ÑÔ Ü×ÑØÜÐ  <Ñ/Ó0ØØ ×3Ñ3ÀÐ3ÓEõ	ð �hÒÜ�]‰]œ:Ð-?Ô@ñ 	)Ø'×:Ñ:Ø'ð ;ó )ˆM÷	)ô �]‰]œ:Ð-?Ô@ñ 	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�  r=  rË  r{   rî  )r  r*  rì  rú   rc   r‹   r&  rÇ   rï  r=   r	  r±   r
  rä   rí   )	r·  r<  rê  rë  r   rB  rú   rS   r9  s	            r   Ú#test_parquet_dataset_factory_fsspecrô  í  sÂ   € ô × Ñ  Ó*€Fð Ð0Ñ0€IÜ9¸)ÓDÑ€M�5ð ×!Ñ! &Ó)€Iô —‘¤×!1Ñ!1°)Ó!<Ó=€JÜ× Ñ  ¸:ÔF€GØ�>‰>× Ñ  §¡Ô.Ð.Ð.Üˆw�}‰}Ó Ò"Ð"Ð"Ø×ÑÓ€FØ�?‰?˜bÒ Ð Ñ r   c                 óà  — | dz  }t        j                  dgdz  t        j                  j	                  d«      dœ«      }g }t        j                  |t        |«      |¬«       t        |dz  «      }t        j                  |j                  ||¬«       t        j                  |«      }|j                  j                  |j                  «      sJ ‚|j                  «       }|j                  dk(  sJ ‚y )Nr�  r   rª   r°  ræ  rè  )r?   r   r]  r   Úrandnrl   r�  r_   ré  r=   rÇ   rï  r	  rä   rí   )r·  rê  r   rç  rë  rS   r9  s          r   Ú&test_parquet_dataset_factory_roundtripr÷    sÎ   € ð Ð0Ñ0€IÜ�H‰H˜Q˜C "™H¬B¯I©I¯O©O¸BÓ,?Ñ@ÓA€EØÐÜ×ÑØŒs�9‹~Ð2Dõô ˜	 KÑ/Ó0€Mä×ÑØ�‰�mØ-õô × Ñ  Ó/€GØ�>‰>× Ñ  §¡Ô.Ð.Ð.Ø×ÑÓ€FØ�?‰?˜bÒ Ð Ñ r   c                 ó  — g }t        d«      D ]l  }t        j                  dt        t        |dz  |dz   dz  «      «      i«      }| |› d�z  }t	        j
                  |||¬«       |d   j                  |› d�«       Œn t        | dz  «      }t	        j                  j                  ||«       t        j                  |«      }|j                  «       }|j                  d«      j                  «       }|t        t        dd	«      «      k(  sJ ‚y )
Nrª   r  r   rX   ræ  rM  rè  r   rn  )r/   r?   r   rh   rl   rm   Úset_file_pathr_   ré  r=   rÇ   rï  rä   r-  rh  )	r·  Ú	metadatasr:   r   Ú
table_pathrë  rS   Úscanned_tableÚscanned_cols	            r   Ú"test_parquet_dataset_factory_orderrþ     sû   € ð €Iô �2‹Yò 4ˆÜ—‘Ø”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  6  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	  D  s»   € äœ 	§¡°Ó <Ó=Ó>€MÜ�^‰^˜M¨!Ñ,Ó-×4Ñ4×DÑDÓF€FàÐØò ,ˆÜ—>‘> $Ó'×0Ñ0ˆØ×Ñœs 4×#3Ñ#3°IÓ#>Ó?Ô@Ø×!Ñ! (Õ+ð,ð
  Ñ+€MÜ×ÑØ�Ð2Dõð Ðr   c           
      ó¨  — t        j                  t        j                  t        d«      «      t        j                  t        j
                  j                  d«      «      t        j                  t	        j                  ddgd«      «      gg d¢¬«      }|j                  ddi«      }t        j                  |t        | «      d	g¬
«       t        | «      |fS )Nr�  r[   r\   rª   r¤  r¦  rÆ   r'   r¾   r›  )r?   r   r~   r/   r]  r   rö  r\  rG   rl   r�  r_   r	  )rê  r   s     r   Ú#_create_parquet_dataset_partitionedr  V  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  a  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  u  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   r2  r§   rÎ  rv   rý   rB   r   rý  )r?   r   r~   rl   rm   r_   r=   rB   rÇ   rS   rä   r@   r	  rÓ  r•  rh   rK   )r·  rõ   r   r=   rS   ÚfilteredrT   s          r   Útest_filter_mismatching_schemar  ¿  s<  € ô �H‰H�eœRŸX™X¢l¸ÔAÐBÓC€EÜ‡N�N�5œ#˜g¨Ñ6Ó7Ô8ô �Y‰Y˜¤§¡£
Ð+Ð,Ó-€FÜ�j‰jØ�.Ñ ¨¸6ôC€Gð
 ×&Ñ& w´r·x±xÀ³ÈÑ7JÐ&ÓK€HØ�E‰?×!Ñ! %¨¡,×"3Ñ"3°GÓ"<×"BÑ"BÀ1Ó"EÔFÐFÐFä�G×)Ñ)Ó+Ó,¨QÑ/€HØ×&Ñ&ØœŸ™ %›¨1Ñ,°Vð 'ó =€Hà�E‰?×!Ñ! %¨¡,×"3Ñ"3°GÓ"<×"BÑ"BÀ1Ó"EÔFÐFÑFr   c                 óœ  — t        j                  dj                  «       t        t	        d«      «      dœ«      }t        | dz  «      }t        j                  ||dg¬«       t        j                  |d¬«      }|j                  |«      }|j                  |dg¬	«      }|j                  d«      j                  |j                  d«      «      sJ ‚y )
Nza a b br{   r  r;  r¾   r›  r¬   rì  r)   )r?   r   rA  rh   r/   r_   rl   r�  rÇ   rS   rä   r-  r	  )r·  rõ   r   rq   rS   Úall_colsÚ	part_onlys          r   Ú+test_dataset_project_only_partition_columnsr#  Õ  s¨   € ô �H‰H˜iŸo™oÓ/¼¼UÀ1»X»ÑGÓH€Eäˆw˜Ñ'Ó(€DÜ×Ñ˜˜t°V°HÕ=Ü�j‰j˜¨FÔ3€Gà×&Ñ& wÓ/€HØ×'Ñ'¨¸&¸Ð'ÓB€Ià�?‰?˜6Ó"×)Ñ)¨)×*:Ñ*:¸6Ó*BÔCÐCÑCr   c           	      óÒ  — t        j                  dt        j                  g d¢d¬«      i«      }| dz  }|j	                  |d¬«       t        j                  |dt        j                  dt        j                  «       fg«      ¬	«      }t        j                  dt        j                  g d¢t        j                  «       «      i«      }|j                  |«      j                  |«      sJ ‚y )
Nrš  rj  Úobject©Údtypez(test_dataset_project_null_column.parquetr¯   rø  r§   rÎ  )r3   r4   r]  r~   rú  rÇ   rS   r?   r=   rB   r   rä   r	  )r·  rõ   rH   rÙ  rS   r|  s         r   Ú test_dataset_project_null_columnr(  å  s¯   € ô 
�‰�uœbŸh™hÒ'9ÀÔJÐKÓ	L€BàÐ<Ñ<€AØ‡M�M�!˜I€MÔ&ä�j‰j˜ 9Ü "§	¡	¨E´2·8±8³:Ð+>Ð*?Ó @ôB€Gä�x‰x˜¤§¡Ò);¼R¿X¹X»ZÓ HÐIÓJ€HØ×"Ñ" 7Ó+×2Ñ2°8Ô<Ð<Ñ<r   c                 óŒ  — ddl m} t        j                  g d¢g d¢g d¢dœ«      }|j	                  || dz  «       t        j                  | dz  d¬	«      }|j                  |t        j                  d
«      t        j                  d«      j                  dd¬«      t        j                  d«      dk(  dœ¬«      }t        j                  g d¢t        j                  g d¢d¬«      g d¢dœ«      }|j                  |«      sJ ‚t        j                  t        d¬«      5  |j                  |d
d
i¬«       d d d «       y # 1 sw Y   y xY w)Nr   ©r  rÏ  )r!  r(  r)  rf  rü  r  r  r  rÉ  rý  rÌ   F©Úsaferþ  r[   )Ú	A_renamedÚB_as_intÚC_is_ar)   rw   )TFFzExpected an Expressionr   )r¯   r  r?   r   r  rÇ   rS   rä   r@   rÓ  r~   r	  r  r  r  )r·  rõ   r  r   rS   r9  r|  s          r   Útest_dataset_project_columnsr0  ó  s  € åÜ�H‰Hš9ª<ºoÑNÓO€EØ×Ñ˜% ¨>Ñ!9Ô:ä�j‰j˜ >Ñ1¸)ÔD€GØ×$Ñ$ WÜ—X‘X˜c“]Ü—H‘H˜S“M×&Ñ& w°UÐ&Ó;Ü—(‘(˜3“- 3Ñ&ñ7Ð$ó €Fô
 �x‰xÚÜ—H‘HšY¨WÔ5Ú&ñó €Hð
 �=‰=˜Ô"Ð"Ð"ô 
�‰”yÐ(@Ô	Añ =Ø×Ñ °#°s°ÐÔ<÷=÷ =ñ =ús   ÄD:Ä:Ec                 óä  — t        | «      \  }}t        j                  |«      }t        |j                  t        j
                  «      sJ ‚t        | «      \  }}t        j                  |«      }t        |j                  t        j
                  «      sJ ‚t        j                  |d¬«      }|j                  }|€J ‚t        |t        j                  «      sJ ‚|j                  t        j                  dt        j                  «       fg«      k(  sJ ‚t        |j                  «      dk(  sJ ‚|j                  d   t        j                  g d¢t        j                  «       «      k(  sJ ‚t        j                  t        j                  dt        j                  «       fg«      d¬«      }t        |t        j                  «      sJ ‚t        |j                  «      dk(  sJ ‚t        d„ |j                  D «       «      sJ ‚t        j                  ||¬«      }|j                  }t        |t        j                  «      sJ ‚|j                  t        j                  dt        j                  «       fg«      k(  sJ ‚t        |j                  «      dk(  sJ ‚t        d	„ |j                  D «       «      sJ ‚t        j                  |d¬«      }t        j                  t!        |j#                  «       «      |j                  |j$                  |j&                  ¬
«      }|j                  �J ‚| dz  }t)        |«      \  }}t        j*                  |d¬«      }|j                  }|€J ‚t        |t        j                  «      sJ ‚|j                  t        j                  dt        j,                  «       fg«      k(  sJ ‚t        |j                  «      dk(  sJ ‚t/        |j                  d   j1                  «       «      ddhk(  sJ ‚y )Nr¬   rì  r¾   r   r   )r   r   rv   rœ  c              3   ó$   K  — | ]  }|d u –— Œ
 y ­wr   r   rˆ  s     r   rŠ  z6test_dataset_preserved_partitioning.<locals>.<genexpr>+  ó   è ø€ Ò4˜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>2  r3  rŒ  rÿ   zdata-partitioned-metadatar[   r\   )r  rÇ   rS   rM   rÍ   rË   rê  rª  r=   r?   rÌ   r±   rœ  r~   r¬  r  rh   rK   rÐ   rú   r  rï  rD   r�   rh  )	r·  rt  rq   rS   ré  r¾   r«  rê  rë  s	            r   Ú#test_dataset_preserved_partitioningr5    sG  € ô " 'Ó*�G€A€tÜ�j‰j˜Ó€GÜ�g×*Ñ*¬B×,DÑ,DÔEÐEÐEô 3°7Ó;Ñ€J�Ü�j‰j˜Ó€GÜ�g×*Ñ*¬B×,DÑ,DÔEÐEÐEô �j‰j˜¨FÔ3€GØ×Ñ€DØÐÐÐÜ�dœB×/Ñ/Ô0Ð0Ð0Ø�;‰;œ"Ÿ)™) f¬b¯h©h«jÐ%9Ð$:Ó;Ò;Ð;Ð;Üˆt× Ñ Ó! QÒ&Ð&Ð&Ø×Ñ˜QÑ¤2§8¡8ªI´r·x±x³zÓ#BÒBÐBÐBô �?‰?œ2Ÿ9™9 v¬r¯x©x«zÐ&:Ð%;Ó<ÀVÔL€DÜ�dœB×/Ñ/Ô0Ð0Ð0Üˆt× Ñ Ó! QÒ&Ð&Ð&ÜÑ4 $×"3Ñ"3Ô4Ô4Ð4Ð4Ü�j‰j˜¨DÔ1€GØ×Ñ€DÜ�dœB×/Ñ/Ô0Ð0Ð0Ø�;‰;œ"Ÿ)™) f¬b¯h©h«jÐ%9Ð$:Ó;Ò;Ð;Ð;äˆt× Ñ Ó! QÒ&Ð&Ð&ÜÑ4 $×"3Ñ"3Ô4Ô4Ð4Ð4ô �j‰j˜¨FÔ3€GÜ×#Ñ#ÜˆW×"Ñ"Ó$Ó%¨g¯n©nØ�~‰~¨'×*<Ñ*<ô€Hð × Ñ Ð(Ð(Ð(ð Ð5Ñ5€IÜ:¸9ÓEÑ€M�1Ü× Ñ  ¸VÔD€GØ×Ñ€DØÐÐÐÜ�dœB×/Ñ/Ô0Ð0Ð0Ø�;‰;œ"Ÿ)™) f¬b¯i©i«kÐ%:Ð$;Ó<Ò<Ð<Ð<Üˆt× Ñ Ó! QÒ&Ð&Ð&ô ˆt× Ñ  Ñ#×-Ñ-Ó/Ó0°S¸#°JÒ>Ð>Ñ>r   c                 óÔ  — t        j                  t        j                  dt        j                  «       «      t        j                  dt        j                  t        j
                  «       t        j                  «       «      «      g«      }t        j                  g d¢t        t        d«      «      dœ|¬«      }t        | dz  «      }t        j                  ||dg¬«       t        j                  | dz  «      }|j                  d«      j                  «       |j                  d«      j                  «       k(  sJ ‚|j                  d«      j!                  |j                  d«      «      sJ ‚y )	Nrš  r¾   )NNr[   r[   r{   r  rb   r;  r›  )r?   r=   r@   rB   rz   rÌ   rD   r   rh   r/   r_   rl   r�  r_  r-  rh  r	  )r·  r=   r   rq   Úactual_tables        r   Ú+test_write_to_dataset_given_null_just_worksr8  J  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fg«      ¬«      } |j                  | |«      S )Nr   Ú	ascending)rÒ   )Úpyarrow.computeÚcomputeÚsort_indicesÚSortOptionsrï   )ÚtabÚsort_colrË  Úsorted_indicess       r   Ú_sort_tablerB  _  sA   € Ý Ø$�R—_‘_Ø�^�R—^‘^ h°Ð%<Ð$=Ó>ô@€Nàˆ2�7‰7�3˜Ó'Ð'r   c                 ó`  — |xs |}t        j                  | |d|d¬«       t        |j                  d«      «      }t	        |«      t	        |«      k(  sJ ‚t        j
                  |d|¬«      }t        |j                  «       |«      j                  t        | j                  «       |«      «      sJ ‚y )Nrr  F©rÐ   rÍ   rÝ   Ú*r©  )	rÇ   r²  rh   r  r�   rS   rB  rä   r	  )rS   r�  Úexpected_filesr@  Úbase_dir_pathrÍ   Ú
file_pathsr«  s           r   Ú_check_dataset_roundtriprI  f  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   rI  r_   r
   r‘  )r·  rp   rt  rS   ÚtargetrF  s         r   Útest_write_datasetrL  y  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   rI  r_   )r·  rp   rt  rÍ   rS   rK  Úexpected_pathsr¶  s           r   Útest_write_dataset_partitionedrS  �  s6  € ð ˜-Ñ'€IÜ+¨IÓ6€AÜ—?‘?¨&Ô1€LÜ�j‰j˜°Ô>€Gð Ð0Ñ0€Fà�Ñ˜6 HÑ,¨~Ñ=Ø�Ñ˜6 HÑ,¨~Ñ=ð€Nô Ÿ/™/Ü
�	‰	�FœBŸI™I›KÐ(Ð)Ó*°6ô;ÐäØ”�V“˜n¨d°FØ(õ*ð
 Ð/Ñ/€Fà�‰�f˜s‘l ^Ñ3Ø�‰�f˜s‘l ^Ñ3ð€Nô Ÿ/™/Ü
�	‰	�FœBŸI™I›KÐ(Ð)Ó*ó,ÐäØ”�V“˜n¨d°FØ(ö*r   c                 ó¤  — t        j                  g d¢g d¢dœ«      }t        j                  || ddg¬«       t        j                  | ddg¬«      }|j
                  }|D �ch c]9  }t        t        j                  |«      j                  | «      j                  «      ’Œ; }}|h d£k(  sJ ‚|j                  «       }|j                  |«      sJ ‚y c c}w )NrS  rU  rZ   r¨  r\   r©  >   r  rT  rÐ  ©r?   r   rÇ   r²  rS   r
  r_   r–  r—  r°  r˜  rä   r	  ©r·  r   r¸  r
  rÙ  Úpartitioning_dirsr¹  s          r   Ú#test_write_dataset_with_field_namesrX  ¾  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 )
NrS  rU  rZ   r¨  r\   r¬   )rÐ   rÍ   Úpartitioning_flavorr©  >   úb=xúb=yúb=zrU  rV  s          r   Ú(test_write_dataset_with_field_names_hiver_  Ï  sÀ   € Ü�H‰HÒ+²/ÑBÓC€Eä×Ñ�U˜G¨EØ#& %¸VõEô —
‘
˜7¨5¸vÔF€IØ�O‰O€EàBGöØ=>ŒŒG�L‰L˜‹O×'Ñ'¨Ó0×7Ñ7Õ8ðÐð ð Ò 5Ò5Ð5Ð5à×(Ñ(Ó*€OØ×!Ñ! %Ô(Ð(Ñ(ùòrY  c                 ó  — t        j                  g d¢g d¢g d¢dœ«      }t        j                  || ddg¬«       t        j                  | ddg¬«      }t        j                  «       5 }t        j                  |j                  ddg¬	«      |ddg¬«       t        j                  |ddg¬«      }|j                  «       }t        |j                  «       «      |j                  d
«      j                  «       k(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)NrS  rU  rÏ  rf  r¨  r\   r©  r}   r)   r[   )r?   r   rÇ   r²  rS   r°  r±  rê   rä   r¾  r2  Údrop_columns©r·  r   rS   Útempdir2r¸  r¹  s         r   Útest_write_dataset_with_scannerrd  à  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   )rk  s   €r   ÚGatingFsrg  û  s	   ø„ õ	Hr   rl  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   )rK  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   ÚThreadrx  rñ  rp  r�   rÌ  )r·  rl  r=   Úmin_backpressurert  Úwrite_threadry  Ú
last_valueÚbackpressure_probably_hitrt   rq  rk  rr  rv  rs  rê   rx  s   `        @@@@@@@@r   Ú$test_write_dataset_with_backpressurer�  ó  s™  ÿø€ ô —O‘OÓ%€Mö
H”<ô Hô
 —‘¡¬×);Ñ);Ó)=Ó >Ó?€Iä�Y‰YœŸ™ ¬¯©«Ó4Ð5Ó6€Fô �O‰OœRŸX™X¤d¬5°Ó+;Ó&<Ó=Ð>ÀvÔN€EØ€LØÐØ
€CØ€J÷ô �j‰j×%Ñ%ÙÓ V¸ð &ó ?€Gô ×#Ñ#õKôL€Lð ×ÑÔð!Ü—	‘	“ˆô	'ð ˆ
Ø$)Ð!Ù‹j˜2ŠoØÐ.Ò.Ø :Ò-Ø04Ð-ØØ)�
Ü�J‰J�sŒOñ ‹j˜2‹oñ )Ð(Ñ(ð
 ˆ
Ø×ÑÔØ×ÑÕøð ˆ
Ø×ÑÔØ×ÑÕús   Ä8AF6 ÆF6 Æ6$Gc                 óÔ  — t        j                  g d¢g d¢dœ«      }t        j                  || ddg¬«       t        j                  | ddg¬«      }t        j                  «       5 }t        j                  ||ddg¬«       t        j                  |ddg¬«      }|j                  «       }t        |j                  «       «      |j                  «       k(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)NrU  rÏ  ©r\   r}   r¨  r\   r©  )
r?   r   rÇ   r²  rS   r°  r±  rä   r¾  r2  rb  s         r   Útest_write_dataset_with_datasetr„  @  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Ç   rU  rÏ  rƒ  r}   r¬   )r=   rÃ  c                 óæ   — | j                  «       j                  d«      j                  d¬«      }|j                  «       j                  d«      j                  d¬«      }|j                  |«      sJ ‚y )Nr\   Tr  )rÁ  r  r  r	  )r¹  rº  Údf1Údf2s       r   Úcompare_tables_ignoring_orderzGtest_write_dataset_existing_data.<locals>.compare_tables_ignoring_orderX  sZ   € Ø�l‰l‹n×(Ñ(¨Ó-×9Ñ9¸tÐ9ÓDˆØ�l‰l‹n×(Ñ(¨Ó-×9Ñ9¸tÐ9ÓDˆØ�z‰z˜#ŒÐ‰r   r¨  r  rf  rÐ  r\   Úezc=2z	foo.arrowÚoverwrite_or_ignore)rÍ   rÐ   Úexisting_data_behavior)rŠ  r  r[   r\   r}   )rv   r   rv   rY   r{   r©  Údelete_matching)r  r[   r\   r}   r  )r?   r   rÇ   rÍ   r=   r@   rB   r²  r  r  ra  r¯   r  r  rS   rä   Úexists)	r·  rp   r   rÍ   r‰  Úextra_tableÚ
extra_fileÚoverwrittenÚreadbacks	            r   Ú test_write_dataset_existing_datar“  Q  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)rT  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   )rT  r®  r¯  r}   ©r9   r§  )r/   r0   r–  r_   r?   rj   )Únum_of_columnsÚnum_of_recordsr9   rg  r:   rj   s         r   Ú_generate_data_and_columnsr›  †  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²  rd  re  r±   re   r_   rS   r0   rä   Úshaper¿  r¬  )r·  rp   r£  r™  rš  rj   Úfiles_in_dirÚexpected_partitionsÚresult_row_combinationrt  Úf_fileÚf_pathrS   r¢  s                @r   Ú$test_write_dataset_max_rows_per_filer¬  –  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²  rd  re  re   r_   rS   rä   rç   rí   r±   )r·  rp   r¯  r£  r™  Úrecord_sizesrš  Úrecord_batchesÚdata_sourcer§  rt  rª  r«  rS   r   ÚbatchesrÇ  rt   Úrows_per_batchs                      r   Ú%test_write_dataset_min_rows_per_grouprµ  »  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  rh  )r›  rÇ   r²  rd  re  r_   rS   rä   rç   r0   rí   )r·  rp   r£  r™  rš  rj   r²  r§  Úbatched_datarª  r«  rS   r   r³  rt   s                  r   Ú%test_write_dataset_max_rows_per_grouprº  ß  sâ   € à˜$‘€IØÐØ€NØ€Nä-¨nØ.<ó>€Lð Ð.Ñ.€Kä×Ñ˜,°Ø(:Ø%õ'ô —:‘:˜kÓ*€LØ€LØò 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ª   ri  rh  r   r   )r[   r\   r}   r|   rŠ  r|   )r†  r  r  rQ  r   r   )r[   r\   r}   r|   rŠ  r\   r¬   rœ  Údefault)r9   r�  rÍ   rÐ   c                 óz   — t        | |¬«      }t        t        j                  j	                  ||   «      «      }||fS )Nr�  )rŸ  r±   r?   r<  Úunique)r²  rj   r  Úcol_idÚnum_of_files_generatedÚnumber_of_partitionss         r   Ú_get_compare_pairz<test_write_dataset_max_open_files.<locals>._get_compare_pair  s>   € Ü!<Ø&°Kô"AÐä"¤2§:¡:×#4Ñ#4°\À&Ñ5IÓ#JÓKÐØ%Ð';Ð;Ð;r   Úmax_1rY   F)r9   r�  rÍ   rÐ   Úmax_open_filesrÝ   )	r?   rj   rE   rk   rÇ   rÍ   r=   rD   r²  )r·  rp   r  Úpartition_column_idrg  Úrecord_batch_1Úrecord_batch_2Úrecord_batch_3Úrecord_batch_4r   rÍ   Údata_source_1rÄ  rÂ  rÃ  Údata_source_2rÆ  s                    r   Ú!test_write_dataset_max_open_filesrÎ  ü  s§  € à˜$‘€IØ€KØÐØ˜$�<€LÜ—_‘_Ò+>Ú+Ið+Kà+7ô9€Nô —_‘_Ò+=Ú+Ið+Kà+7ô9€Nô —_‘_Ò+@Ú+Ið+Kà+7ô9€Nô —_‘_Ò+AÚ+Ið+Kà+7ô9€Nô �H‰H×!Ñ! >°>Ø#1°>ð#Có D€Eô —?‘?Ü
�	‰	�LÐ!4Ñ5´r·y±y³{ÐCÐDÓEØô€Lð  	Ñ)€Mä×Ñ˜%¨-Ø".°{õDò<ñ ˜M¨>¸;Ø/ó1ñ 1ÐÐ0ð "Ð%9Ò9Ð9Ð9ð  Ñ'€Mà€Nä×Ñ˜%¨-Ø".°{Ø$2ÀõGñ
 ˜M¨>¸;Ø/ó1ñ 1ÐÐ0ð "Ð$8Ò8Ð8Ñ8r   c                 ó²  — | dz  }t        |«      }t        j                  |t        j                  j	                  d¬«      ¬«      }| dz  }|dz  |dz  dz  |dz  |dz  dz  g}t        j
                  t        j                  |j                  j                  d	«      g«      d	t        j                  ddg«      i¬
«      }t        |t        |«      |d||¬«       y )NrN  Tr3  rì  rQ  r[   rÚ  r\   r¾   r›  r  )r  rÇ   rS   rª  r*  rÍ   r?   r=   r@   r~   rI  r_   )r·  rp   rt  rS   rK  rR  rÍ   s          r   Ú#test_write_dataset_partitioned_dictrÐ  A  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 )NrN  r¬   rì  r¾   rœ  Úpartitioned1c                 ó<   •— ‰j                  | j                  «       y r   )r0   rq   )Úwritten_fileÚpaths_writtens    €r   Úfile_visitorz4test_write_dataset_use_threads.<locals>.file_visitorh  s   ø€ Ø×Ñ˜\×.Ñ.Õ/r   r  T©rÐ   rÍ   rÝ   rÖ  rO  úpart-0.featherrP  Úpartitioned2FrD  r©  )r  rÇ   rS   rÍ   r?   r=   rD   r²  r�   ri   r–  r—  rä   r	  )r·  rp   rt  rS   rÍ   Útarget1rÖ  rR  Úpaths_written_setÚtarget2Úresult1Úresult2rÕ  s               @r   Útest_write_dataset_use_threadsrß  [  sB  ø€ ð ˜-Ñ'€IÜ+¨IÓ6€AÜ�j‰j˜°Ô8€Gä—?‘?Ü
�	‰	�FœBŸI™I›KÐ(Ð)Ó*°6ô;€Lð ˜Ñ&€GØ€Mô0ô ×ÑØ� ¸Ø |õð 	�(ÑÐ-Ñ-Ø�(ÑÐ-Ñ-ð€Nô œC¤§¡¨mÓ<Ó=ÐØ Ò.Ð.Ð.à˜Ñ&€GÜ×ÑØ� ¸Øõô �j‰j˜¨ÀÔN€GÜ�j‰j˜¨ÀÔN€GØ×ÑÓ×$Ñ$ W×%5Ñ%5Ó%7Ô8Ð8Ñ8r   c                 óR  — t        j                  dt        d«      i«      }|j                  d¬«      }t	        j
                  || ddd¬«       t	        j                  | «      j                  d¬	«      d   j                  «       }d
}|D ]  }t        |«      }||kD  s
J d|› �«       ‚|}Œ  y )Nr[   rx  rv   )Úmax_chunksizer§   T)rÐ   rÝ   Úpreserve_orderFrÜ   rM  z!Sequence expected to be ordered: )
r?   r   r/   rç   rÇ   r²  rS   rä   Úto_numpyr³  )r·  r   r³  ÚseqÚprevÚitemÚcurrs          r   Ú-test_write_dataset_use_threads_preserve_orderrè  ƒ  s¬   € ô �H‰H�cœ5 ›;Ð'Ó(€EØ×Ñ¨QÐÓ/€GÜ×Ñ�W˜g¨iØ!%°dõ<ä
�*‰*�WÓ
×
&Ñ
&°5Ð
&Ó
9¸#Ñ
>×
GÑ
GÓ
I€CØ€DØò ˆÜ�4‹yˆØ�dŠ{ÐEÐ?À¸uÐEÓEˆ{Ø‰ñr   c           	      óÂ  ‡‡— t        j                  t        j                  t        d«      «      t        j                  d„ t        d«      D «       «      t        j                  dgdz  dgdz  z   «      gg d¢¬«      }| dz  }t	        j
                  ||d	d
¬«       t        |j                  d«      «      }|dz  g}t        |«      t        |«      k(  sJ ‚t	        j                  |d¬«      j                  «       }|j                  |«      sJ ‚| dz  }|dz  |dz  dz  |dz  |dz  dz  g}g Šg Šˆˆfd„}t	        j                  t        j                  dt        j                  «       fg«      d¬«      }t	        j
                  ||d
d	||¬«       t        |j                  d«      «      }t        |«      t        |«      k(  sJ ‚‰D �cg c]!  }t        j                   j#                  |«      ‘Œ# }	}‰|	k(  sJ ‚t	        j                  |d|¬«      }|j                  «       j                  |«      sJ ‚t%        ‰«      dk(  sJ ‚‰D ]  }
t'        j(                  |
«      |v rŒJ ‚ y c c}w )Nr�  c              3   óD   K  — | ]  }t        j                   «       –— Œ y ­wr   rŸ  r¡  s     r   rŠ  z#test_write_table.<locals>.<genexpr>•  r¢  r£  r[   rª   r\   r¤  r¦  Úsingleúdat_{i}.arrowr  ©Úbasename_templaterÐ   rE  zdat_0.arrowr¨  r  rN  rO  rP  c                 ór   •— ‰j                  | j                  «       ‰j                  | j                  «       y r   )r0   rq   rT  )rÔ  Úvisited_pathsÚvisited_sizess    €€r   rÖ  z&test_write_table.<locals>.file_visitor®  s+   ø€ Ø×Ñ˜\×.Ñ.Ô/Ø×Ñ˜\×.Ñ.Õ/r   r¾   r¬   rœ  )rÐ   rî  rÍ   rÖ  r©  rv   )r?   r   r~   r/   rÇ   r²  rh   r  r�   rS   rä   r	  rÍ   r=   rD   rd  rq   Úgetsizer±   r–  r—  )r·  r   r�  rH  rR  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  rE  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©  Tr3  r¨  )r?   r   r~   r/   r  rÇ   rÍ   r¡  r=   r²  rË   r*  rS   rä   r	  )r·  r   rÍ   r�  Úpartitioning_readr9  s         r   Ú!test_write_table_partitioned_dictr	    sñ   € ô �H‰HÜ
�‰”�r“ÓÜ
�‰�#�˜‘˜s˜e b™jÑ(Ó)×;Ñ;Ó=ðð �Vˆ_ô€Eô
 —?‘? 5§<¡<°°Ó#9×#@Ñ#@ÓA€Là˜Ñ"€HÜ×ÑØˆx 	¸õô
 ×0Ñ0×9Ñ9Ø	ˆ 4ð :ó )Ðä�Z‰ZØ˜Ð->ôç�hƒjð ð �=‰=˜ÔÐÑr   c           
      ó>  — t        j                  t        j                  t        d«      d¬«      t        j                  t	        j
                  ddd¬«      j                  d«      «      t        j                  t	        j                  dd	gd
«      «      gg d¢¬«      }| dz  }t        j                  ||d¬«       t        |j                  d«      «      }|dz  g}t        |«      t        |«      k(  sJ ‚t        j                  |d¬«      j                  «       }|j                  |«      sJ ‚dD �]n  }t        j                   «       }|j#                  |¬«      }dt%        |«      v sJ ‚| d|› �z  }t        j                  ||||¬«       t'        j(                  |dz  «      }	|dk(  rdnd}
|	j*                  |
k(  sJ ‚t        j                  |d¬«      j                  «       }|j,                  }|dk(  rB|j                  d|j/                  d«      j1                  t        j2                  «       «      «      }|dv rC|j                  d|j/                  d«      j1                  t        j4                  d«      «      «      }|j7                  |«      }|j                  |«      r�ŒoJ ‚ y )Nr�  rÔ  rw   rF  zdatetime64[D]r&  zdatetime64[ns]r[   r\   rª   r¤  r¦  rï  r§   r  rE  úpart-0.parquet)ú1.0ú2.4ú2.6rÏ  z(<pyarrow.dataset.ParquetFileWriteOptionsÚparquet_dataset_versionrØ  r  r  r   )r  r  r   rÑ  )r?   r   r~   r/   r]  r^  r¿  r\  rÇ   r²  rh   r  r�   rS   rä   r	  rÈ   r†  r  rl   Úread_metadataÚformat_versionr=   r@   Ú	with_typerB   rá  rÓ  )r·  r   r�  rH  rR  r9  rÐ  rÐ   ÚoptsÚmetaÚexpected_versionr=   r|  s                r   Útest_write_dataset_parquetr  3  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>b  r¢  r£  r[   rª   r\   )r  r¥  Úchr1r¦  Úcsv_datasetr"  r  rE  z
part-0.csvr¡  r  F)Úinclude_headerÚcsv_dataset_noheaderrØ  )r?   r   r~   r/   rÇ   r²  rh   r  r�   rS   rä   r	  r!  r¯   r"  r$  r=   r§  r†  )r·  r   r�  rH  rR  r9  rÐ   r  s           r   Útest_write_dataset_csvr  `  so  € Ü�H‰HÜ
�‰”�r“ÓœRŸX™XÑ%I¼uÀR»yÔ%IÓIÜ
�‰�#�˜‘˜s˜e b™jÑ(Ó)ðò "ô#€Eð
 ˜Ñ&€HÜ×Ñ�U˜H¨UÕ3ä�h—n‘n SÓ)Ó*€JØ Ñ-Ð.€NÜˆz‹?œc .Ó1Ò1Ð1Ð1ä�Z‰Z˜¨Ô/×8Ñ8Ó:€FØ�=‰=˜ÔÐÐô ×Ñ¬7¯;©;×+BÑ+BØ—\‘\×'Ñ'ð ,Có ,)ô *€Fà×$Ñ$°EÐ$Ó:€DØÐ/Ñ/€HÜ×Ñ�U˜H¨VÀ$ÕGÜ�Z‰Z˜¨Ô0×9Ñ9Ó;€FØ�=‰=˜ÔÐÑr   c           	      óJ  ‡— t        j                  t        j                  t        d«      «      t        j                  d„ t        d«      D «       «      t        j                  dgdz  dgdz  z   «      gg d¢¬«      }dŠˆfd	„}| d
z  }t	        j
                  ||d|¬«       ‰sJ ‚y )Nr�  c              3   óD   K  — | ]  }t        j                   «       –— Œ y ­wr   rŸ  r¡  s     r   rŠ  z:test_write_dataset_parquet_file_visitor.<locals>.<genexpr>}  r¢  r£  r[   rª   r\   r¤  r¦  Fc                 óX   •— | j                   �| j                   j                  dk(  rdŠy y y )NrY   T)rÅ  rV  )rÔ  Úvisitor_calleds    €r   rÖ  z=test_write_dataset_parquet_file_visitor.<locals>.file_visitorƒ  s2   ø€ à×!Ñ!Ð-Ø×%Ñ%×1Ñ1°QÒ6Ø!‰Nð 7ð .r   rï  r§   )rÐ   rÖ  )r?   r   r~   r/   rÇ   r²  )r·  r   rÖ  r�  r!  s       @r   Ú'test_write_dataset_parquet_file_visitorr"  z  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¤  rN  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×  rO  r  rP  rv   )r/   r?   r   rÇ   rÍ   r=   rD   r²  r�   ri   r–  r—  rV  )r·  r½   ræ  Úf1_valsÚf2_valsr   rê  rÍ   rÖ  rR  rÛ  rÕ  r%  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[   rF  zEurope/Brussels)Útzr§   r  r  )
r?   r   r3   rH  rx   r*  rÇ   r²  rl   r_  )r·  r   r9  s      r   Ú(test_write_dataset_arrow_schema_metadatar+  ´  sˆ   € ô
 �H‰H�cœBŸL™L¨Ð:KÔLÐMÐNÓO€EØ�‰:�?‰?×ÑÐ!2Ò2Ð2Ð2ä×Ñ�U˜G¨IÕ6Ü�]‰]˜7Ð%5Ñ5Ó6€FØ�#‰;×Ñ×ÑÐ"3Ò3Ð3Ñ3r   c                 óú   — ddl m} t        j                  dg d¢i«      }|j	                  ddi«      }t        j                  || d¬«       |j                  | d	z  «      j                  }|j                  ddik(  sJ ‚y )
Nr   r*  r[   rÏ  r  ó   valuer  r  rØ  )
r¯   r  r?   r   rG   rÇ   r²  r_  r=   rÅ  )r·  r  r   r=   s       r   Ú"test_write_dataset_schema_metadatar.  Á  sr   € åä�H‰H�cš9Ð%Ó&€EØ×)Ñ)¨6°8Ð*<Ó=€EÜ×Ñ�U˜G¨IÕ6à×Ñ Ð*:Ñ :Ó;×BÑB€FØ�?‰?˜v xÐ0Ò0Ð0Ñ0r   c                 óö   — t        j                  dg d¢i«      }|j                  ddi«      }t        j                  || d¬«       t        j                  | dz  «      j                  }|j                  ddik(  sJ ‚y )Nr[   rÏ  r  r-  r§   r  r  )	r?   r   rG   rÇ   r²  rl   r_  r=   rÅ  )r·  r   r=   s      r   Ú*test_write_dataset_schema_metadata_parquetr0  Í  so   € ô �H‰H�cš9Ð%Ó&€EØ×)Ñ)¨6°8Ð*<Ó=€EÜ×Ñ�U˜G¨IÕ6ä�]‰]˜7Ð%5Ñ5Ó6×=Ñ=€FØ�?‰?˜v xÐ0Ò0Ð0Ñ0r   c           	      óì  — | \  }}}}}}}}dj                  ||||«      }t        j                  t        j                  t	        d«      «      t        j                  d„ t	        d«      D «       «      t        j                  dgdz  dgdz  z   «      gg d¢¬«      }t        j                  t        j                  d	t        j                  «       fg«      d
¬«      }	t        j                  |d|d|	¬«       t        j                  d|dd
¬«      j                  «       }
|
j                  |«      sJ ‚|j                  d«      }t        j                  ||d|	¬«       t        j                  d|dd
¬«      j                  «       }
|
j                  |«      sJ ‚|j                  d«      }t        j                  |d|d|	¬«       t        j                  d|dd
¬«      j                  «       }
|
j                  |«      sJ ‚y )Nr1  r�  c              3   óD   K  — | ]  }t        j                   «       –— Œ y ­wr   rŸ  r¡  s     r   rŠ  z(test_write_dataset_s3.<locals>.<genexpr>ã  r¢  r£  r[   rª   r\   r¤  r¦  r¾   r¬   rœ  zmybucket/datasetr  rZ  r¨  zmybucket/dataset2r©  r  rï  zmybucket/dataset3)rÐ   r?   r   r~   r/   rÇ   rÍ   r=   rD   r²  rS   rä   r	  )rW  rt  rc   rY  rZ  r[  r\  Úuri_templater   r¾   r9  rX  s               r   Útest_write_dataset_s3r4  Ø  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>2  r¢  r£  r[   rª   r\   r¤  r¦  r¾   r¬   rœ  zexisting-bucketr  Fr‹  )rú   rÐ   rf   rÍ   rŒ  r¨  rZ  Tz&Bucket 'non-existing-bucket' not foundr   znon-existing-bucket)rú   rÐ   rf   rŒ  Úlimited)r[  r\  r9  r:  Úallow_bucket_creationz(Access Denied|ACCESS_DENIED))r›   r+  r   Ú_minio_put_only_policyr?   r   r~   r/   rÇ   rÍ   r=   rD   r²  rS   rä   r	  r  r  rV  )	r  r+  rY  rZ  rt  rc   r   r¾   r9  s	            r   Útest_write_dataset_s3_put_onlyr?    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_castrB  i  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º  rG  rL  ©rÉ  rý  N©rG  r¼  rM  ú
full outer)Ú	join_type©r   rv   rÑ  rI  ©r[   r\   rÙ  N©rÉ  rý  NrK  ©r?   r   rÇ   r²  rS   rÌ  rä   r1  ©r·  r¹  Úds1rº  Úds2r9  s         r   Útest_dataset_joinrY  |  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 )NrD  rE  rF  r¹  r¨  r  rH  rJ  )rG  rM  rº  rG  rN  rO  rP  Ú_r©rQ  Úright_suffixrR  rS  rT  rU  rV  s         r   Útest_dataset_join_unique_keyr^  ›  s#  € ä	�‰ÚÚñó 
€Bô ×Ñ�R˜ 4™°Õ6Ü
�*‰*�W˜t‘^¨EÔ
2€Cä	�‰ÚÚñó 
€Bô ×Ñ�R˜ 4™°Õ6Ü
�*‰*�W˜t‘^¨EÔ
2€Cà�X‰X�c˜6Ó"€FØ�?‰?Ó¤§¡ÚÚÚ ñ*ó !ò ð ð ð �X‰X�c˜6¨\ÈˆXÓM€FØ�?‰?Ó×$Ñ$ VÓ,´·±ÚÚ%Ú%ñ:ó 1ò ð ñ r   c           	      ó  — t        j                  g d¢g d¢g d¢dœ«      }t        j                  || dz  d¬«       t        j                  | dz  d¬«      }t        j                  g d¢g d	¢g d
¢dœ«      }t        j                  || dz  d¬«       t        j                  | dz  d¬«      }|j                  |ddd¬«      }|j                  «       j                  d«      t        j                  g d¢g d¢g d¢g d¢g d¢gg d¢¬«      k(  sJ ‚y )NrD  ©rª   r�  é<   rE  )rG  rL  ÚcolValsr¹  r¨  r  rH  ©rI  r�  rª   rJ  rº  rG  rP  r[  r\  rR  )rª   r�  ra  NrS  )rª   r�  NrI  rT  )rG  rL  rb  ÚcolB_rÚ	colVals_rr¦  rU  rV  s         r   Útest_dataset_join_collisionsrf  º  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Ù  rF  r¹  r¨  r  )rv   r�  r  )r[   r\   Úg)r!  r)  g      @)rL  rM  ÚcolCrº  rG  r¼  r   rL  rM  ©ÚonÚbyÚ	toleranceÚright_onÚright_by)r!  NNNN)rG  r¼  ri  )
r?   rE   Úfrom_pydictrÇ   r²  rS   Ú	join_asofrä   r1  r   rV  s         r   Útest_dataset_join_asofrr  Ö  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 )NrD  r`  rÏ  )rG  rL  rk  r¹  r¨  r  rc  rJ  rH  rÐ  )rL  rb  rG  rk  rº  rk  rG  rL  r   ©rk  rl  rm  )Nrý  N©rG  rL  rk  rb  )r?   r   rÇ   r²  rS   rq  rä   r1  rV  s         r   Ú"test_dataset_join_asof_multiple_byrv  ò  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 )Nrk  rÏ  r¹  r¨  r  rJ  rÐ  )rb  rk  rº  r   rt  )rK  rK  rý  )rk  rb  )r?   r   rÇ   r²  rS   rq  rä   rV  s         r   Útest_dataset_join_asof_empty_byrx    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)NrD  r`  rÏ  rE  ru  r¹  r¨  r  rc  rJ  )rn  rn  rÕ  rH  rÐ  )rL  rb  ÚcolUniqrG  rk  rº  zXColumns {'colVals'} present in both tables. AsofJoin does not support column collisions.r   rk  rG  rL  r   rj  )	r?   r   rÇ   r²  rS   r  r  rN  rq  )r·  r¹  rW  rº  rX  r_  s         r   Ú!test_dataset_join_asof_collisionsr{  (  só   € ä	�‰ÚÚÚÚ"ñ	ó 
€Bô ×Ñ�R˜ 4™°Õ6Ü
�*‰*�W˜t‘^¨EÔ
2€Cä	�‰ÚÚ"Ú"ÚÚñó 
€Bô ×Ñ�R˜ 4™°Õ6Ü
�*‰*�W˜t‘^¨EÔ
2€Cð	7ð ô 
�‰”z¨Ô	-ñ 
Ø�‰Ø�D˜f fÐ-¸Ø V¨VÐ$4ð 	ô 	
÷
÷ 
ñ 
ús   ÃC4Ã4C=Údstyperc   Úmemc           	      óR  — t        j                  g d¢g d¢dœ«      }|dk(  r6t        j                  || dz  d¬«       t        j                  | dz  d¬«      }n!|dk(  rt        j                  |«      }nt
        ‚|j                  t        j                  d	«      d
k  «      j                  t        j                  d«      dk(  «      }|dk(  rt        j                  nt        j                  }t        ||«      sJ ‚|j                  «       t        j                  dgdgdœ«      k(  sJ ‚|j                  d«      t        j                  dgdgdœ«      k(  sJ ‚|j                  t        j                  d	«      dk  «      j                  t        j                  d	«      dkD  «      j                  t        j                  d	«      dk7  ¬«      }|j                  «       t        j                  dgdgdœ«      k(  sJ ‚t        j                  || dz  d¬«       t        j                  | dz  d¬«      }|j                  «       t        j                  dgdgdœ«      k(  sJ ‚|j                  t        j                  t        j                  ddgddgdœ«      «      dd¬«      }|j                  «       j!                  d«      t        j                  dd gddgddgdœ«      k(  sJ ‚t#        j$                  t&        «      5  |j                  d «       d d d «       t#        j$                  t(        «      5  |j+                  «        d d d «       |j,                  j/                  d«      }	|j                  t        j                  d	«      d
k  «      j1                  |	«      }
|
j                  «       t        j                  d	ddgi«      k(  sJ ‚t#        j$                  t         j2                  «      5  |j1                  |	«      j                  «        d d d «       y # 1 sw Y   �ŒxY w# 1 sw Y   ŒßxY w# 1 sw Y   y xY w)N©r   rv   rÑ  rR  ©r[   r\   rÙ  rh  rF  rc   r¹  r¨  r  r}  rG  rY   r¼  r[   r   r   rR  rÑ  rý   rv   r\   r  rª   r�  ©rL  r¼  zright outer©ÚkeysrQ  rL  )rG  rL  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¹  rW  r9  r|  Úr2r  ÚjoinedÚschema_without_col2Ú	newschemas              r   Útest_dataset_filterr‰  H  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€  rF  )r�  rª   ri  )Úhr:   Úlrc   r¹  r¨  r  rº  r}  rG  rY   r�  )r   rv   r�  )r[   r\   r‹  rª   r�  r[   r\   r�  r¼  z
left outerr‚  )rª   r�  N)rG  r¼  rL  zcurrently not supportedr   )r?   r   rÇ   r²  rS   r  rþ   rË  r@   rä   rÌ  r1  r  r  rN  )
r·  r|  r¹  rº  rW  rX  Ú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        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Ú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²  rS   rä   rh  )r·  rÐ   r   rW  s       r   Útest_read_table_nested_columnsr¨  ñ  s  € à�ÒÜ×ÑÐ-Ô.ä�H‰H (¨HÐ!5Ø)*¨A¨à (Ø�q�6¨¨u ~°tÐ&<ñ	>à hÚ¨f°fÐ-=Ð,>ñ	@ð&ñó €Eô ×Ñ�U˜G gÑ-°fÕ=Ü
�*‰*�W˜wÑ&¨vÔ
6€Cð �L‰Lò:ð ó ;€Eð �?‰?ÓØ d°q¸!°fØ"¨5Ñ1°4Ð8ÈAñ	Oà hº,Ø$¨TÑ2Ð3Àqñ	Jð!ò ð ñ r   c                 óx  — ddl m} | dz  }t        j                  j	                  t        j
                  g d¢t        j                  «       «      t        j
                  g d¢t        j                  «       «      gddg«      } |j                  ||ddgd	¬
«        |j                  |dd	t        j                  t        j                  dt        j                  «       «      t        j                  dt        j                  «       «      g«      ¬«      j                  «       j                  «       }||j                  d«      k(  sJ ‚|j                  d«      j                  «       }t!        t#        |«      «      }|D �cg c]  }dt%        |d¬«      z   ‘Œ }}t!        t'        j(                  «      «      }||k(  sJ ‚y c c}w )Nr   )rS   zslash-writer-x©r   rv   rY   r{   r   )úexperiment/A/f.csvzexperiment/B/f.csvr«  zexperiment/C/k.csvzexperiment/M/i.csvÚexp_idÚexp_metar¨  r¬   )r9   r�  rÐ   rÍ   r[  )rÝ  rÐ   rÍ   r=   r   z	exp_meta=rÁ  r+  )r¯   rS   r?   rE   r�   r~   rÌ   r×  r²  r=   r@   rä   r4  r1  r-  rh  r3  r�   r   rd  re  )ÚtmpdirrÇ   rq   Údt_tabler_  r­  Úencoded_pathsrH  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)ÚnullablerT  TrÏ  ©Nr   Nrb   Ú	nulltest1r§   r  Ú	nulltest2Ú	nulltest3)r?   r=   r@   rB   rE   r�   rl   r�  rÇ   rS   rä   r	  r²  )r·  Úschema_nullabler„  r   rS   s        r   Ú'test_write_dataset_preserve_nullabilityr¹  2  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   barri  rT  rÏ  r´  rb   Útest1r§   r  Tr;  Útest2Útest3rÎ  )r?   r=   r@   rB   rE   r�   rÇ   r²  rS   rä   r	  )r·  Úschema_metadataÚschema_no_metar„  r   Útable_no_metarS   s          r   Ú*test_write_dataset_preserve_field_metadatarÁ  J  sÓ  € Ü—i‘iÜ
�‰�”b—h‘h“j¨F°FÐ+;Ô<Ü
�‰�”b—h‘h“jÓ!ð!#ó $€Oô —Y‘YÜ
�‰�”b—h‘h“jÓ!Ü
�‰�”b—h‘h“jÓ!ð #ó $€Nò šÐ)€FÜ�H‰H× Ñ  °Ð Ó@€EÜ—H‘H×(Ñ(¨¸Ð(ÓG€Mô ×Ñ�e˜]Ð+¨W°wÑ->ÀyÕQÜ�j‰j˜ 7Ñ*°9Ô=€GØ×ÑÓ×$Ñ$×+Ñ+¨OÈDÐ+ÔQÐQÐQä×Ñ�m UÐ+¨W°wÑ->ÀyÕQÜ�j‰j˜ 7Ñ*°9Ô=€GØ×ÑÓ×$Ñ$×+Ñ+¨NÈ4Ð+ÔPÐPÐPô ×Ñ�m UÐ+¨W°wÑ->ÀyØ+õ-ä�j‰j˜ 7Ñ*°9Ô=€GØ×ÑÓ×$Ñ$×+Ñ+¨OÈDÐ+ÔQÐQÑQr   c                 óÎ  — dD �]_  }dD �]V  }t        j                  t        j                  dt        j                  «       «      t        j                  dt        j                  «       «      g«      }g d¢g d¢g}t         j                  j                  ||¬«      }t        j                  «       }| d|› �z  }t        j                  ||d|j                  ||¬	«      d
¬«       t        j                  |d¬«      }|j                  D ]Z  }	t        j                  |	«      }
|
j                  d«      j                  d«      }|j                   |u sJ ‚|j"                  ||z  u rŒZJ ‚ �ŒY �Œb y )N)TFr  rT  rÏ  r´  rb   Úwrite_page_index_r§   )Úwrite_statisticsÚwrite_page_indexr‹  )rÐ   rÙ  rŒ  r  r   )r?   r=   r@   rB   rE   r�   rÇ   rÈ   r²  r†  rS   r
  rl   r  rÈ  r-  Úhas_offset_indexÚhas_column_index)r·  rÄ  rÅ  r=   r„  r   r  r�  rW  r=  rÅ  Úccs               r   Ú#test_write_dataset_write_page_indexrÉ  g  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Ÿ  Ú
descending)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¡  rU  rU  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Ú)Ú!ñ;ò ð ð ð
 �:‰:Ð/Ð0Ó1×:Ñ:Ó<×FÑFÓHÚ)Ú!ñMò ð ð ð
 �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à—‘Ð0Ð1Ó2€JØ ×)Ñ)Ó+×5Ñ5Ó7€OØ˜3Ñ¢=Ò0Ð0Ð0Ø˜3ÑÒ#BÒBÐBÐBà—‘Ð/Ð0Ó1€JØ ×)Ñ)Ó+×5Ñ5Ó7€OØ˜3Ñ¢=Ò0Ð0Ð0Ø˜3ÑÒ#BÒBÐBÑBr   c                 óN  — t        j                  dg d¢i«      }t         j                  j                  «       }|j	                  d¬«      }| dz  }t        j                  ||||¬«       t        j                  d¬«      }t         j                  j                  |¬«      }t        j                  ||¬	«      j                  «       }||k(  sJ ‚| d
z  }t        ||«       t        |j                  «       «      }	t        |	«      dk(  sJ ‚|	d   }
t        |
j                  «       «      }|d   |d   k7  sJ ‚|d   |d   c|d<   |d<   |
j                  |«       t        j                  d¬«      }t         j                  j                  |¬«      }t        j                  ||¬	«      j                  «       }||k7  sJ ‚|t        j                  dg d¢i«      k(  sJ ‚t!        j"                  t$        d¬«      5  t        j                  ||¬	«      j                  «       }ddd«       y# 1 sw Y   yxY w)zwCheck that checksum verification works for datasets created with
    ds.write_dataset and read with ds.dataset.to_tabler[   r  T)Úwrite_page_checksumÚcorrect_dir)r9   r�  rÐ   rÙ  r  )Údefault_fragment_scan_optionsr  Úcorrupted_dirr   r   é   é$   F)r   rY   rv   r{   zCRC checksum verificationr   N)r?   r   rS   rÈ   r†  rÇ   r²  r  rä   r   rh   Úiterdirr±   Ú	bytearrayÚ
read_bytesÚwrite_bytesr  r  rV  )r·  Ú
table_origÚpq_write_formatrÞ  Úoriginal_dir_pathÚpq_scan_opts_crcÚpq_read_format_crcÚtable_checkÚcorrupted_dir_pathÚcorrupted_file_path_listÚcorrupted_file_pathÚbin_dataÚpq_scan_opts_no_crcÚpq_read_format_no_crcÚtable_corruptrt  s                   r   Ú1test_checksum_write_dataset_read_dataset_to_tableré  º  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$c                  óÜ  — d} d}t        j                  t        «      5 }t        j                  j
                  j                  d«       d d d «       | t        j                  «      v s|t        |j                  «      v sJ ‚t        j                  j                  «       }d}t        j                  t        |¬«      5  |j                  d«       d d d «       y # 1 sw Y   Œ�xY w# 1 sw Y   y xY w)NzImake_write_options() should be called on an instance of ParquetFileFormatzqdescriptor 'make_write_options' for 'pyarrow._dataset_parquet.ParquetFileFormat' objects doesn't apply to a 'int'é+   z;make_write_options\(\) takes exactly 0 positional argumentsr   )	r  r  r  r?   rS   rÈ   r†  r_   r'   )Úmsg_1Úmsg_2ÚexcinfoÚpformatr_  s        r   Útest_make_write_options_errorrð    sÁ   € ð-€Eð(€Eô 
�‰”yÓ	!ð < WÜ
�
‰
×$Ñ$×7Ñ7¸Ô;÷<à”C˜Ÿ™Ó&Ñ&¨%´3°w·}±}Ó3EÑ*EÐEÐEä�j‰j×*Ñ*Ó,€GØ
I€CÜ	�‰”y¨Ô	,ñ 'Ø×"Ñ" 2Ô&÷'ð '÷<ð <ú÷'ð 'ús   ž*CÂ;C"ÃCÃ"C+c                 ó:  — 	 dd l m} d}d}| j                  j                  j                  |«      |j                  j                  |«      ¬«      j                  «       }|j                  «       dddgik(  sJ ‚y # t        $ r t        j                  d«       Y Œ‘w xY w)Nr   zsubstrait NOT enabledsé   
SOhttps://github.com/apache/arrow/blob/main/format/substrait/extension_types.yaml	
u64
	u32

str"i
i64
f64
str
const
struct
a
b
group
key7
:
Z
b
:
Ê
:
b
*
bs3  
/functions_comparison.yaml
SOhttps://github.com/apache/arrow/blob/main/format/substrait/extension_types.yamlÅequal:any1_any1	
u64
	u32
Å
"
 "
("i
i64
f64
str
const
struct
a
b
group
key7
:
Z
b
:
Ê
:
b
*
brw  r_   Ú4)
Úpyarrow.substraitÚ	substraitr(  r  r˜  rê   ÚBoundExpressionsÚfrom_substraiträ   r2  )rS   Úpsr:  Ú	filteringr9  s        r   Útest_scanner_from_substraitrù    s£   € ð-Ý&ð
W€Jð
C€Ið �_‰_Ø×#Ñ#×2Ñ2°:Ó>Ø×"Ñ"×1Ñ1°)Ó<ð ó ÷ �hƒjð ð ×ÑÓ %¨#¨s¨Ð!4Ò4Ð4Ñ4øô9 ò -Ü�‰Ð+Ö,ð-ús   ‚A9 Á9BÂBr¥  r   )r{   r   rª   (	  rŸ   r+   rd  r–  rm  r   Úsysr°  rq  rz  rñ  Úshutilr   Úurllib.parser   Únumpyr]  r(  r  r¯   r?   r;  r<  rË  Úpyarrow.csvrÑ  r›   rc   Úpyarrow.jsonÚpyarrow.libr   Úpyarrow.tests.utilr   r   r   r	   r
   r¦   r3   rÀ  rS   rÇ   Úpyarrow.parquetr§   rl   ÚmarkÚ
pytestmarkr   r;   rI   rV   Úfixturern   rˆ   r¢   rÀ   rõ   r  r  r;  rI  rO  rW  rk  ru  ry  r}  r  r…  rº  rÀ  Úparametrizer_   ÚtuplerÍ  rÔ  rÜ  ró  rü  r  r+  r7  rÉ   rI  rP  Ús3rc  rz  r}  r‹  r‘  r˜  r�  rª  r²  r¹  rÂ  rÉ  rÌ  râ  ró  rõ  rû  rþ  r   r  r	  r  r  r   r.  r7  rJ  rQ  rW  rY  rb  rk  rn  rs  rw  ry  r{  r€  r„  r‹  r  r‘  r”  rš  rž  r   r¤  r§  r¬  r¶  r½  rÂ  rÄ  rÉ  rÌ  rÏ  rÙ  rÞ  ræ  rê  rí  rð  ró  rö  rø  rú  r  r  rW  r   r#  r,  r:  r>  rC  rI  rL  rN  rS  rW  ra  rd  rf  rl  rp  rw  rz  r~  r�  r„  rˆ  r�  rœ  r¢  r§  r­  r¸  r¼  r¾  rÉ  rÌ  rÒ  rä  rì  rð  ÚskipifÚplatformrô  r÷  rþ  r  r	  r  r  r  r  r  r  r#  r(  r0  r5  r8  rB  rI  rL  rS  rX  r_  rd  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  r4  r>  r?  rB  rY  r^  rf  rr  rv  rx  r{  r‰  r�  r’  r™  r¨  r±  r¹  rÁ  rÉ  rÐ  ré  rð  rù  r   r   r   ú<module>r     sñ  ðó$ Û Û 	Û Û Û Û 
Û Û Û Û Ý Ý ðÛó ã Ý Û Û Ý Û Ý ,÷,õ ,ðÛðÝ ðÝ ð �[‰[× Ñ €
÷?ñ ?òKò +ò%ð ‡�ñó ððD ‡�ñ  ó ð  ðF ‡�ñó ðð@ €‡��hÔñ0ó  ð0ðf ‡�ñó ðð €‡�Ø	Ø
ðð 	�HÐôñ+ó	ð+ð\ ‡�×ÑñDGó ðDGòN)ð, ‡�×Ññ?9ó ð?9òD)GòX&ð( ‡�×Ññ"ó ð"ð ‡�×Ññ-Ió ð-Ið` ‡�×Ññ%ó ð%ð$ ‡�×Ññ-ó ð-ð, ‡�×Ññ5ó ð5ð ‡�×ÑñOó ðOòòA!òHFð$ ‡�×ÑØFòóð8
Øð8
à %ð8
ð #(ò8
óð8
òv#ò"6ð ‡�×Ññ&ó ð&ðR ‡�×Ññ$ó ð$ð" ‡�×Ññ6ó ð6òr$TòNJð2 ‡�×ÑÐ,Ø€B‡O�O�H¨Ô-à$Ø$ðð/ó ð ‡�×Ñ˜¨¨t }Ó5Ø‡�×ÑñE"ó ó 6óðE"ðP ‡�×Ññ4ó ð4ð$ ‡�×ÑØ‡�‡�ñ5-ó ó ð5-òpHò2Hð, ‡�×Ññ*Dó ð*DðZ ‡�×Ñóó ðð" ‡�×Ññ7ó ð7ð@ ‡�×ÑØ‡�×Ññ	%ó ó ð	%ð ‡�×Ññ9Nó ð9Nðx ‡�×Ññó ðð: ‡�×Ññ)ó ð)ð" ‡�×ÑØ‡�×Ññ
:ó ó ð
:ð ‡�×Ññ%0ó ð%0ðP ‡�×Ññó ðô"5Jðp ‡�×ÑØ‡�×Ññ'ó ó ð'ðT ‡�×Ññ7ó ð7ð ‡�×ÑØ‡�×Ññ7ó ó ð7ð ‡�×Ññ)ó ð)ð, ‡�×Ññ&.ó ð&.ðR ‡�×Ññ$ó ð$ð6 ‡�×Ññ'ó ð'ð> ‡�×Ññ	ó ð	ð ‡�×Ññ 3ó ð 3ðF ‡�×ÑØ‡�×Ññ ó ó ð ðF ‡�×ÑØ‡�×ÑØ‘Ñ @ÐAóCñIóCó ðIð< ‡�×ÑØ‡�×ÑÐ+¨e°T¨]Ó;Ø‡�×ÑØ‘Ñ @ÐAóCñ@óCó <ó ð@ð@ ‡�×ÑØ‘Ñ @ÐAóCña,óCða,ðH ‡�×ÑØ‘Ñ @ÐAóCñR,óCðR,òjJò?ð ‡�×ÑØ‡�×Ññ(ó ó ð(ò2Nò
+òò;ò
=òOò"6ðJ ‡�×ÑñHó ðHò(*ô8ò,ò>ò@ð" ‡�×ÑñIó ðIð
 ‡�×ÑñIó ðIð ‡�×ÑñLó ðLð ‡�×Ññ$ó ð$ð$ ‡�×Ññ<ó ð<ð& ‡�×ÑñJó ðJð& ‡�×Ññ7ó ð7ð& ‡�×Ññ ó ð ð, ‡�×Ññ-ó ð-ð ‡�×Ññ=ó ð=ò*"òò?(òDJð" ‡�×Ñ˜¨°¨Ó6ñó 7ðò&ð" ‡�×Ññ!#ó ð!#ðH ‡�×Ññ?ó ð?ð, ‡�×Ññ,ó ð,ð ‡�×ÑñNó ðNò.òAð ‡�×ÑØ‡�×Ñ˜¨+°vÐ)>Ó?Ø‡�×Ñ˜¨5°$¨-Ó8Ø‡�×ÑÐ+¨e°T¨]Ó;Ø‡�×ÑÐ)Ú’iÐ Ú’Ð Ú’oÐ&Ú’	ÐÚ’?Ð#ÚÒ Ð!Ú’<Ð ð,ó ñ62óó <ó 9ó @ó ð62ðr ‡�×Ññ;ó ð;ð< ‡�ñDó ðDð& ‡�×ÑØ‡�‡�ñ
:ó ó ð
:ð ‡�×ÑØ‡�‡�ñ:ó ó ð:ð ‡�×ÑØ‡�‡�ñ,ó ó ð,ð0 ‡�×ÑØ‡�‡�ñ?=ó ó ð?=ðD ‡�×Ññ/ó ð/ð ‡�×Ññ9ó ð9ð2 ‡�×Ññ=ó ð=ð6 ‡�×ÑñFó ðFð ‡�×Ññ	ó ð	ð ‡�×Ññ9ó ð9ò(4ò?%òDMò2ð@ ‡�×Ññ6)ó ð6)ðr ‡�×Ññó ðò"$ð, ‡�‡‚ñ#Mó ð#MðL ‡�‡‚ñ?ó ð?ò,*ð ‡�‡‚ñ ó ð ð" ‡�×Ññ ó ð ð$ ‡�×ÑØ‡�×Ñ˜ò )ó ñ óó ð ò(Hò*:ò Að0 ‡�×Ññ ó ð ð( ‡�×Ññ ó ð ð( ‡�×Ññ ó ð ò,Dò2@ò0Gð@ ‡�×ÑØ‡�×Ñ˜ò )ó ñ
,/óó ð,/ò^ ð, ‡�×ÑØ‡�×Ññ!ó ó ð!ð ‡�×ÑØ‡�×ÑØ‡�×Ò�C—L’L GÑ+ØDð ó Fñ!óFó ó ð!ð( ‡�×ÑØ‡�×Ññ!ó ó ð!ð2 ‡�×Ññ.ó ð.ð* ‡�×ÑØ‡�×Ññ	ó ó ð	òò$3ð ‡�×ÑØ‡�×Ññ4ó ó ð4ð$ ‡�×ÑØ‡�×Ññ
;ó ó ð
;ð ‡�×ÑØ‡�×Ññ3ó ó ð3ðN ‡�×ÑØ‡�×Ññ@ó ó ð@ð  ‡�×ÑñGó ðGð* ‡�×ÑØ‡�×ÑñDó ó ðDð ‡�×ÑØ‡�×Ññ	=ó ó ð	=ò=ð0 ‡�×ÑØ‡�×Ññ:?ó ó ð:?ðz ‡�×ÑØ‡�×ÑñBó ó ðBò&(ð ?Cô3ð& ‡�×Ññ Pó ð PðF ‡�×ÑØ‡�×Ññ*ó ó ð*ò>)ò")ò"=ð& ‡�×ÑØ‡�×ÑñHó ó ðHòVFð" ‡�×Ññ-#ó ð-#ô`;ò	òOð ‡�×Ññ!<ó ð!<ðH ‡�×Ññ <ó ð <ðF ‡�×Ññ$ó ð$ð8 ‡�×ÑñA9ó ðA9ðH ‡�×ÑØ‡�×Ññ#ó ó ð#ð0 ‡�×ÑØ‡�×Ññ#9ó ó ð#9ðL ‡�×ÑØ‡�×Ññó ó ðò,<ò^!òH ò6@ò4 ð0 ‡�×ÑØ‡�×Ññ('ó ó ð('òV ð4 ‡�×Ññó ðð* ‡�×Ññ ,ó ð ,ðF ‡�×ÑØ‡�×Ññ4ó ó ð4ò	1ð ‡�×Ññ1ó ð1ð ‡�×ÑØ‡�‡�ñ, ó ó ð, ð^Ð ð$ ‡�×ÑØ‡�‡�ñI
ó ó ðI
ðX ‡�×Ññ"ó ð"ð$ ‡�×Ññó ðð< ‡�×Ññó ðð< ‡�×ÑñAó ðAð6 ‡�×Ññó ðð6 ‡�×Ññó ðð: ‡�×Ññó ðð. ‡�×Ññ
ó ð
ð> ‡�×Ñ˜Øˆ%ð$ó ñK>óðK>ð\ ‡�×Ñ˜Øˆ%ð$ó ò*1óð*1óZ$ó
ð2 ‡�×Ñ™Ñ#5Ó6òó 7ñô6"'ðJ ‡�×Ñò=ó ñ=ô.Rô:Rð@ ‡�×Ñ˜Øˆ%ð$ó ò-Cóñ-Cô`FôR'õ&5øðiw ò Ø	ƒBðûð" ò Ø	ƒBðûð
 ò Ø	ƒBðûð
 ò Ø	ƒBðús[   ºAT Á3AT- Á8AT; Á?AU	 ÁTAT*ÁT)AT*ÁT-AT8ÁT7AT8ÁT;AUÁUAUÁU	AUÁUAU