Ë
    kQêj\!  ã                   ó  — d dl Z d dlmZmZmZmZmZmZ d dlZ	d dl
ZddlmZ eee	j                  j                  f   Zeeee   f   Zed   Z G d„ de	j&                  j(                  «      Z G d„ d	e	j&                  j,                  «      Zy)
é    N)ÚAnyÚListÚOptionalÚTupleÚUnionÚLiteralé   )ÚTable)z	left semiz
right semiz	left antiz
right antiÚinnerz
left outerzright outerz
full outerc                   ó  — e Zd Z	 	 	 	 	 	 	 	 ddedeee      dee   dee   dee   dee   dee	   d	e
d
ee	   fd„Zd„ Zd„ Zd„ Zd„ Zdefd„Zed„ «       Zd„ Zdee   fd„Zd„ Zd„ Zddœdee   fd„Zddœdee   fd„Zy)ÚPyarrowScannerAdapterNÚtableÚcolumnsÚfilterÚ
batch_sizeÚbatch_readaheadÚfragment_readaheadÚfragment_scan_optionsÚuse_threadsÚmemory_poolc
                 óê   — || _         || _        || _        || _        |�t	        j
                  d«       |�t	        j
                  d«       |�t        d«      ‚|du rt        d«      ‚|	�t        d«      ‚y )Nz6ignoring batch_readahead which has no lance equivalentz9ignoring fragment_readahead which has no lance equivalentz#fragment_scan_options not supportedFzuse_threads=False not supportedzmemory_pool not supported)r   r   r   r   ÚloggingÚdebugÚNotImplementedError)
Úselfr   r   r   r   r   r   r   r   r   s
             úa/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/lancedb/integrations/pyarrow.pyÚ__init__zPyarrowScannerAdapter.__init__   sƒ   € ð ˆŒ
ØˆŒØˆŒØ$ˆŒØÐ&Ü�M‰MÐRÔSØÐ)Ü�M‰MÐUÔVØ Ð,Ü%Ð&KÓLÐLØ˜%ÑÜ%Ð&GÓHÐHØÐ"Ü%Ð&AÓBÐBð #ó    c                 óè   — t        | j                  t        j                  j                  «      r t        d„ | j                  «       D «       «      S | j                  j                  | j                  «      S )Nc              3   ó4   K  — | ]  }|j                   –— Œ y ­w©N)Únum_rows)Ú.0Úbatchs     r   ú	<genexpr>z3PyarrowScannerAdapter.count_rows.<locals>.<genexpr>9   s   è ø€ ÒD¨%�u—~•~ÑDùs   ‚)	Ú
isinstancer   ÚpaÚcomputeÚ
ExpressionÚsumÚ	to_readerr   Ú
count_rows©r   s    r   r,   z PyarrowScannerAdapter.count_rows6   sK   € Ü�d—k‘k¤2§:¡:×#8Ñ#8Ô9äÑD°4·>±>Ó3CÔDÓDÐDØ�z‰z×$Ñ$ T§[¡[Ó1Ð1r   c                 ó   — t         ‚r!   ©r   ©r   Úkwargss     r   Úfrom_batchesz"PyarrowScannerAdapter.from_batches<   ó   € Ü!Ð!r   c                 ó   — t         ‚r!   r/   r0   s     r   Úfrom_datasetz"PyarrowScannerAdapter.from_dataset?   r3   r   c                 ó   — t         ‚r!   r/   r0   s     r   Úfrom_fragmentz#PyarrowScannerAdapter.from_fragmentB   r3   r   r"   c                 óB   — | j                  |¬«      j                  «       S )N©Úlimit©r+   Úread_all)r   r"   s     r   ÚheadzPyarrowScannerAdapter.headE   s   € Ø�~‰~ Hˆ~Ó-×6Ñ6Ó8Ð8r   c                 ó8   — | j                  d«      j                  S )Né   )r=   Úschemar-   s    r   Úprojected_schemaz&PyarrowScannerAdapter.projected_schemaH   s   € à�y‰y˜‹|×"Ñ"Ð"r   c                 ó"   — | j                  «       S r!   ©r+   r-   s    r   Úscan_batchesz"PyarrowScannerAdapter.scan_batchesL   ó   € Ø�~‰~ÓÐr   Úindicesc                 ó   — t         ‚r!   r/   )r   rF   s     r   ÚtakezPyarrowScannerAdapter.takeO   r3   r   c                 ó"   — | j                  «       S r!   rC   r-   s    r   Ú
to_batchesz PyarrowScannerAdapter.to_batchesR   rE   r   c                 ó>   — | j                  «       j                  «       S r!   r;   r-   s    r   Úto_tablezPyarrowScannerAdapter.to_tableU   s   € Ø�~‰~Ó×(Ñ(Ó*Ð*r   r9   r:   c                ó  — t        | j                  t        j                  j                  «      r| j                  |¬«      S | j                  j                  «       }|€"| j                  «       }|j                  |«       n!|dk  rt        d«      ‚|j                  |«       | j                  �|j                  | j                  «      }| j                  �|j                  | j                  d¬«      }|j                  | j                  ¬«      S )Nr9   r   úlimit must be positiveT)Ú	prefilter©r   )r&   r   r'   r(   r)   Ú_to_reader_with_expressionr   Úsearchr,   r:   Ú
ValueErrorr   ÚselectÚwhererJ   r   )r   r:   Úqueryr"   s       r   r+   zPyarrowScannerAdapter.to_readerX   sÐ   € Ü�d—k‘k¤2§:¡:×#8Ñ#8Ô9Ø×2Ñ2¸Ð2Ó?Ð?Ø—
‘
×!Ñ!Ó#ˆàˆ=Ø—‘Ó(ˆHØ�K‰K˜Õ!Ø�aŠZÜÐ5Ó6Ð6à�K‰K˜ÔØ�<‰<Ð#Ø—L‘L §¡Ó.ˆEØ�;‰;Ð"Ø—K‘K §¡°t�KÓ<ˆEØ×Ñ¨4¯?©?ÐÓ;Ð;r   c                ó¾  — |�|dk  rt        d«      ‚| j                  j                  «       j                  | j                  j	                  «       «      }t
        j                  j                  j                  |j                  | j                  ¬«      | j                  | j                  ¬«      }|€|j                  «       S |j                  |«      j                  «       S )Nr   rN   rP   )r   r   )rS   r   rR   r:   r,   r'   ÚdatasetÚScannerr2   rJ   r   r   r   r+   r=   )r   r:   rV   Úscanners       r   rQ   z0PyarrowScannerAdapter._to_reader_with_expressionj   s¶   € ð
 Ð ¨!¢ÜÐ5Ó6Ð6Ø—
‘
×!Ñ!Ó#×)Ñ)¨$¯*©*×*?Ñ*?Ó*AÓBˆÜ—*‘*×$Ñ$×1Ñ1Ø×Ñ¨¯©ÐÓ8Ø—L‘LØ—;‘;ð 2ó 
ˆð
 ˆ=Ø×$Ñ$Ó&Ð&Ø�|‰|˜EÓ"×,Ñ,Ó.Ð.r   ©NNNNNNTN)Ú__name__Ú
__module__Ú__qualname__r
   r   r   ÚstrÚFilterÚintr   Úboolr   r,   r2   r5   r7   r=   ÚpropertyrA   rD   rH   rJ   rL   r+   rQ   © r   r   r   r      s$  „ ð (,Ø#'Ø$(Ø)-Ø,0Ø/3Ø Ø%)ñCàðCð ˜$˜s™)Ñ$ðCð ˜Ñ ð	Cð
 ˜S‘MðCð " #™ðCð % S™MðCð  (¨™}ðCð ðCð ˜c‘]óCò62ò"ò"ò"ð9˜Só 9ð ñ#ó ð#ò ð"˜D ™Ió "ò ò+ð 37ò < (¨3¡-ó <ð$ DHò /°8¸C±=ô /r   r   c                   óF  — e Zd Zdefd„Zd)dee   fd„Zd)dee   fd„Z	 	 	 	 	 	 	 	 d*de	dee
e      dee   d	ee	   d
ee	   dee	   dee   dedee   fd„Z	 	 	 	 	 	 d+dededee   dee   dee   dee   dedefd„Z	 	 d,dededede	dee   dee   fd„Zed„ «       Zdej,                  fd „Z	 	 	 	 	 	 	 	 d*dee
e      dee   d	ee	   d
ee	   dee	   dee   dedee   fd!„Zed"„ «       Zd#eee
eeef      f   fd$„Z	 	 	 	 	 	 	 	 d*d%e
e	   dee
e      dee   d	ee	   d
ee	   dee	   dee   dedee   fd&„Z	 	 	 	 	 	 	 	 d*dee
e      dee   d	ee	   d
ee	   dee	   dee   dedee   fd'„Z	 	 	 	 	 	 	 	 d*dee
e      dee   d	ee	   d
ee	   dee	   dee   dedee   fd(„Zy)-ÚPyarrowDatasetAdapterr   c                 ó   — || _         y r!   )r   )r   r   s     r   r   zPyarrowDatasetAdapter.__init__}   s	   € Øˆ�
r   Nr   c                 óB   — | j                  |¬«      j                  «       S )N)r   )rZ   r,   ©r   r   s     r   r,   z PyarrowDatasetAdapter.count_rows€   s   € Ø�|‰| 6ˆ|Ó*×5Ñ5Ó7Ð7r   c                 ó   — t         ‚r!   r/   ri   s     r   Úget_fragmentsz#PyarrowDatasetAdapter.get_fragmentsƒ   r3   r   r"   r   r   r   r   r   r   r   c
           
      óP   — | j                  ||||||||	«      j                  |«      S r!   )rZ   r=   )
r   r"   r   r   r   r   r   r   r   r   s
             r   r=   zPyarrowDatasetAdapter.head†   s8   € ð �|‰|ØØØØØØ!ØØó	
÷ ‰$ˆx‹.ð		r   Úright_datasetÚkeysÚ
right_keysÚ	join_typeÚleft_suffixÚright_suffixÚcoalesce_keysc	                 ó   — t         ‚r!   r/   )	r   rm   rn   ro   rp   rq   rr   rs   r   s	            r   ÚjoinzPyarrowDatasetAdapter.join�   s
   € ô "Ð!r   ÚonÚbyÚ	toleranceÚright_onÚright_byc                 ó   — t         ‚r!   r/   )r   rm   rv   rw   rx   ry   rz   s          r   Ú	join_asofzPyarrowDatasetAdapter.join_asofª   s
   € ô "Ð!r   c                 ó   — t         ‚r!   r/   r-   s    r   Úpartition_expressionz*PyarrowDatasetAdapter.partition_expressionµ   s   € ä!Ð!r   r@   c                 ó   — t         ‚r!   r/   )r   r@   s     r   Úreplace_schemaz$PyarrowDatasetAdapter.replace_schema¹   r3   r   c	                 ó<   — t        | j                  ||||||||«	      S r!   )r   r   ©	r   r   r   r   r   r   r   r   r   s	            r   rZ   zPyarrowDatasetAdapter.scanner¼   s0   € ô %Ø�J‰JØØØØØØ!ØØó

ð 
	
r   c                 ó.   — | j                   j                  S r!   )r   r@   r-   s    r   r@   zPyarrowDatasetAdapter.schemaÓ   s   € à�z‰z× Ñ Ð r   Úsortingc                 ó   — t         ‚r!   r/   )r   r„   s     r   Úsort_byzPyarrowDatasetAdapter.sort_by×   r3   r   rF   c
                 ó   — t         ‚r!   r/   )
r   rF   r   r   r   r   r   r   r   r   s
             r   rH   zPyarrowDatasetAdapter.takeÚ   s
   € ô "Ð!r   c	           
      óN   — | j                  ||||||||«      j                  «       S r!   )rZ   rJ   r‚   s	            r   rJ   z PyarrowDatasetAdapter.to_batchesè   s6   € ð �|‰|ØØØØØØ!ØØó	
÷ ‰*‹,ð		r   c	           
      óN   — | j                  ||||||||«      j                  «       S r!   )rZ   rL   r‚   s	            r   rL   zPyarrowDatasetAdapter.to_tableþ   s6   € ð �|‰|ØØØØØØ!ØØó	
÷ ‰(‹*ð		r   r!   r[   )NNNNTT)NN) r\   r]   r^   r
   r   r   r`   r,   rk   ra   r   r_   r   rb   r=   ÚKeysÚJoinTyperu   r|   rc   r~   r'   ÚSchemar€   rZ   r@   r   r   r†   rH   rJ   rL   rd   r   r   rf   rf   |   s6  „ ð˜eó ñ8 ¨&Ñ!1ó 8ñ" H¨VÑ$4ó "ð (,Ø#'Ø$(Ø)-Ø,0Ø/3Ø Ø%)ñàðð ˜$˜s™)Ñ$ðð ˜Ñ ð	ð
 ˜S‘Mðð " #™ðð % S™Mðð  (¨™}ðð ðð ˜c‘]óð6 &*Ø(,Ø%)Ø&*Ø"Ø ñ"àð"ð ð"ð ˜T‘Nð	"ð
 ˜HÑ%ð"ð ˜c‘]ð"ð ˜s‘mð"ð ð"ð ó"ð& #'Ø#'ñ	"àð	"ð ð	"ð ð		"ð
 ð	"ð ˜3‘-ð	"ð ˜4‘.ó	"ð ñ"ó ð"ð" R§Y¡Yó "ð
 (,Ø#'Ø$(Ø)-Ø,0Ø/3Ø Ø%)ñ
à˜$˜s™)Ñ$ð
ð ˜Ñ ð
ð ˜S‘Mð	
ð
 " #™ð
ð % S™Mð
ð  (¨™}ð
ð ð
ð ˜c‘]ó
ð. ñ!ó ð!ð"˜u S¨$¨u°S¸$°YÑ/?Ñ*@Ð%@ÑAó "ð (,Ø#'Ø$(Ø)-Ø,0Ø/3Ø Ø%)ñ"à�c‘ð"ð ˜$˜s™)Ñ$ð"ð ˜Ñ ð	"ð
 ˜S‘Mð"ð " #™ð"ð % S™Mð"ð  (¨™}ð"ð ð"ð ˜c‘]ó"ð  (,Ø#'Ø$(Ø)-Ø,0Ø/3Ø Ø%)ñà˜$˜s™)Ñ$ðð ˜Ñ ðð ˜S‘Mð	ð
 " #™ðð % S™Mðð  (¨™}ðð ðð ˜c‘]óð0 (,Ø#'Ø$(Ø)-Ø,0Ø/3Ø Ø%)ñà˜$˜s™)Ñ$ðð ˜Ñ ðð ˜S‘Mð	ð
 " #™ðð % S™Mðð  (¨™}ðð ðð ˜c‘]ôr   rf   )r   Útypingr   r   r   r   r   r   Úpyarrowr'   Úpyarrow.datasetr   r
   r_   r(   r)   r`   rŠ   r‹   rX   rY   r   ÚDatasetrf   rd   r   r   ú<module>r‘      s„   ðó ß =× =ã Û å à	ˆs�B—J‘J×)Ñ)Ð)Ñ	*€ØˆS�$�s‘)ˆ^Ñ€Øðñ	€ô_/˜BŸJ™J×.Ñ.ô _/ôDV˜BŸJ™J×.Ñ.õ Vr   