Ë
    ìmxi=T  ã                   óô  — d dl Z d dlZd dlm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 ej                  j                  Z	 d dlmZ d dlZ ej*                  d¬«      d„ «       Zd	„ Zdd
„Zdd„Zej                  j$                  ej                  j5                  dg d¢«      d„ «       «       Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"ej                  jF                  d„ «       Z$d„ Z%d„ Z&d„ Z'd„ Z(y# e$ r Y Œ¦w xY w)é    N)ÚPath)Úfs)Úutil)Úassert_frame_equalÚmodule)Úscopec                 ó   — | dz  S )NÚorc© )Úbase_datadirs    úM/home/htdocs/ttos/venv/lib/python3.12/site-packages/pyarrow/tests/test_orc.pyÚdatadirr   ,   s   € à˜%ÑÐó    c           	      ó˜  — |D �]¹  }||   }| |   }|dk(  rs|D ��cg c]  }|D ]  }|j                  «       ddhk(  ‘Œ Œ  c}}rG||   j                  «       }t        |«      D ]   \  }}|D �cg c]  }|d   |d   f‘Œ c}||<   Œ" |||<   Œ†|d   j                  }	t	        |	t
        j
                  «      rt        j                  |«      }nðt	        |	t
        j                  «      r|j                  j                  }n¿|	t        j                  u r­dgt        |«      z  }
t        t        ||«      «      D ]q  \  }\  }}t        j                  |«      rŒ|j                  «       j                   }d| z  }t        j                  t#        ||z  «      «      j%                  |«      |
|<   Œs t        j&                  |
«      }|||<   �Œ¼ yc c}}w c c}w )z_
    Fix type of expected values (as read from JSON) according to
    actual ORC datatype.
    ÚmapÚkeyÚvaluer   Né
   )ÚkeysÚcopyÚ	enumerateÚ	__class__Ú
issubclassÚdatetimeÚpdÚto_datetimeÚdateÚdtÚdecimalÚDecimalÚlenÚzipÚisnullÚas_tupleÚexponentÚroundÚscalebÚSeries)Úactual_colsÚexpected_colsÚnameÚexpectedÚactualÚmÚdÚcolÚiÚtypÚconverted_decimalsÚvÚexpÚfactors                 r   Úfix_example_valuesr7   1   sµ  € ð
 ó 'ˆØ  Ñ&ˆØ˜TÑ"ˆØ�EŠMØ7?×K°!ÈÒKÀA�—‘“˜e WÐ-Ó-ÐKÐ-ÔKà Ñ%×*Ñ*Ó,ˆCÜ! (Ó+ò =‘��1Ø:;Ö<°Q˜1˜U™8 Q w¡ZÒ0Ò<��A’ð=à"%ˆM˜$ÑØà�Q‰i×!Ñ!ˆÜ�cœ8×,Ñ,Ô-ä—~‘~ hÓ/‰HÜ˜œXŸ]™]Ô+à—{‘{×'Ñ'‰HØ”G—O‘OÑ#Ø"& ¬#¨h«-Ñ!7Ðä&¤s¨6°8Ó'<Ó=ò H‘	�‘6�A�qÜ—y‘y •|ØŸ*™*›,×/Ñ/�CØ C 4™Z�FäŸ™¬¨a°&©jÓ(9Ó:×AÑAÀ#ÓFð ' qÒ)ð	Hô —y‘yÐ!3Ó4ˆHà&ˆ�dÓñ='ùó Lùò =s   ›#GÁ*Gc                 óR   — |€|�||| j                  d¬«      }t        | |d¬«       y )NT)ÚdropF)Úcheck_dtype)Úreset_indexr   )Úorc_dfÚexpected_dfÚstartÚstops       r   Úcheck_example_valuesr@   W   s3   € ØÐ˜DÐ,Ø! %¨Ð-×9Ñ9¸tÐ9ÓDˆÜ�v˜{¸Ö>r   c           
      ó  — ddl m} |j                  | «      }|j                  «       }t	        |t
        j                  «      sJ ‚|j                  «        t        j                  |j                  «       «      }t        |j                  «      t        |j                  «      k(  sJ ‚|j                  j                  |j                  «      s|j                  |j                  ¬«      }|rt        ||«       t!        ||«       d}t#        |j$                  «      D ]]  }|j'                  |«      }	t!        t        j                  |	j                  «       «      |||t)        |	«      z   ¬«       |t)        |	«      z  }Œ_ ||j*                  k(  sJ ‚y)zC
    Check a ORC file against the expected columns dictionary.
    r   ©r
   ©Úcolumns)r>   r?   N)Úpyarrowr
   ÚORCFileÚreadÚ
isinstanceÚpaÚTableÚvalidater   Ú	DataFrameÚ	to_pydictÚsetrD   ÚequalsÚreindexr7   r@   ÚrangeÚnstripesÚread_striper!   Únrows)
Úorc_pathr=   Úneed_fixr
   Úorc_fileÚtabler<   Újson_posr1   Úbatchs
             r   Úcheck_example_filer[   ]   s>  € õ à�{‰{˜8Ó$€Hà�M‰M‹O€EÜ�eœRŸX™XÔ&Ð&Ð&Ø	‡N�NÔô �\‰\˜%Ÿ/™/Ó+Ó,€Fäˆ{×"Ñ"Ó#¤s¨6¯>©>Ó':Ò:Ð:Ð:ð �>‰>× Ñ  ×!4Ñ!4Ô5Ø!×)Ñ)°&·.±.Ð)ÓAˆáÜ˜6 ;Ô/ä˜ Ô-à€HÜ�8×$Ñ$Ó%ò ˆØ×$Ñ$ QÓ'ˆÜœRŸ\™\¨%¯/©/Ó*;Ó<Ø(Ø#+Ø"*¬S°«ZÑ"7õ	9ð 	”C˜“JÑ‰ðð �x—~‘~Ò%Ð%Ñ%r   Úfilename)zTestOrcFile.test1.orcúTestOrcFile.testDate1900.orczdecimal.orcc                 óˆ   — || z  }t        j                  t        |j                  d«      «      d¬«      }t	        ||d¬«       y)zÊ
    Check a ORC file example against the equivalent JSON file, as given
    in the Apache ORC repository (the JSON file has one JSON object per
    line, corresponding to one row in the ORC file).
    z.jsn.gzT)Úlines)rV   N)r   Ú	read_jsonÚstrÚwith_suffixr[   )r\   r   ÚpathrX   s       r   Útest_example_using_jsonrd   ‚   s:   € ð �XÑ€DÜ�L‰Lœ˜T×-Ñ-¨iÓ8Ó9ÀÔF€EÜ�t˜U¨TÖ2r   c                 ó|   — | dz  }dt        |«      ›d�}t        j                  t        j                  d|gd¬«       y )Nr]   z›if 1:
        import os
        os.environ['TZDIR'] = '/tmp/non_existent'

        from pyarrow import orc
        try:
            orc_file = orc.ORCFile(zÅ)
            orc_file.read()
        except Exception as e:
            assert "time zone database" in str(e).lower(), e
        else:
            assert False, "Should have raised exception"
    ú-cT©Úcheck)ra   Ú
subprocessÚrunÚsysÚ
executable)r   rc   Úcodes      r   Útest_timezone_database_absentrn   ”   sF   € ð Ð3Ñ3€Dð$ô %(¨£I =ð 1ð€Dô ‡N�N”C—N‘N D¨$Ð/°tÖ<r   c                 ó  — t        d«      }|j                  «       st        j                  d|› �«       t        |dz  «      }	 t	        j
                  ||d¬«       |dz  dz  j                  d¬	«       |d
z  dz  j                  d¬	«       | dz  }dt        |«      ›dt        |«      ›d�}t        j                  t        j                  d|gd¬«       y # t        $ r"}t        j                  d|› �«       Y d }~ŒŸd }~ww xY w)Nz/usr/share/zoneinfoz Test needs timezone database in ÚzoneinfoT)Úsymlinksz"Failed to copy timezone database: ÚUSÚPacific)Ú
missing_okÚAmericaÚLos_Angelesr]   z6if 1:
        import os
        os.environ['TZDIR'] = zA

        from pyarrow import orc
        orc_file = orc.ORCFile(a!  )
        try:
            orc_file.read()
        except Exception as e:
            timezones = ["zoneinfo/US/Pacific", "zoneinfo/America/Los_Angeles"]
            assert any(tz in str(e) for tz in timezones), e
        else:
            assert False, "Should have raised exception"
    rf   rg   )r   ÚexistsÚpytestÚskipÚshutilÚcopytreeÚOSErrorÚunlinkra   ri   rj   rk   rl   )r   ÚtmpdirÚsource_tzdirÚtzdirÚerc   rm   s          r   Útest_timezone_absentr‚   ¨   s  € ô Ð-Ó.€LØ×ÑÔ Ü�‰Ð6°|°nÐEÔFÜ�˜*Ñ$Ó%€Eð>Ü�‰˜ e°dÕ;ð ˆT�\�IÑ×%Ñ%°Ð%Ô6Ø
ˆYÑ˜Ñ&×.Ñ.¸$Ð.Ô?àÐ3Ñ3€Dðä" 5›z˜nð - ô !$ D£	˜}ð -ð€Dô ‡N�N”C—N‘N D¨$Ð/°tÖ<øô1 ò >Ü�‰Ð8¸¸Ð<×=Ñ=ûð>ús   ÁC Ã	C?ÃC:Ã:C?c                 ó€  — ddl m} |j                  | dz  «      j                  «       }|j                  dk(  sJ ‚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dt        j                  «       fdt        j                  «       fdt        j                   dt        j"                  t        j                   dt        j                  «       fdt        j                  «       fg«      «      fg«      fdt        j"                  t        j                   dt        j                  «       fdt        j                  «       fg«      «      fdt        j$                  t        j                  «       t        j                   dt        j                  «       fdt        j                  «       fg«      «      fg«      }|j                  |k(  sJ ‚y )Nr   rB   zTestOrcFile.emptyFile.orcÚboolean1Úbyte1Úshort1Úint1Úlong1Úfloat1Údouble1Úbytes1Ústring1ÚmiddleÚlistr   )rE   r
   rF   rG   Únum_rowsrI   ÚschemaÚbool_Úint8Úint16Úint32Úint64Úfloat32Úfloat64ÚbinaryÚstringÚstructÚlist_Úmap_)r   r
   rX   Úexpected_schemas       r   Útest_orcfile_emptyrž   Í   sº  € Ýà�K‰K˜Ð"=Ñ=Ó>×CÑCÓE€EØ�>‰>˜QÒÐÐä—i‘iØ	”R—X‘X“ZÐ Ø	”"—'‘'“)ÐØ	”2—8‘8“:ÐØ	”—‘“ÐØ	”"—(‘(“*ÐØ	”2—:‘:“<Ð Ø	”B—J‘J“LÐ!Ø	”2—9‘9“;ÐØ	”B—I‘I“KÐ Ø	”2—9‘9Ø”b—h‘hÜ—	‘	˜F¤B§H¡H£JÐ/Ø%¤r§y¡y£{Ð3ð5ó 6ó7ð 8ð óð 	ð
 
”—‘Ü�I‰I˜¤§¡£
Ð+Ø!¤2§9¡9£;Ð/ð1ó 2ó
ð 	ð 
”—‘œŸ	™	›ÜŸ	™	 F¬B¯H©H«JÐ#7Ø$-¬r¯y©y«{Ð#;ð#=ó >óð 	ð'!ó €Oð0 �<‰<˜?Ò*Ð*Ñ*r   c                 óü  — ddl m} t        j                  dg d¢i«      }| dz  }|j	                  «        |dz  }|j                  |t        |«      «       |j                  |t        j                  «       ¬«      }|j                  |«      sJ ‚|j                  dt        j                  | «      ¬«      }|j                  |«      sJ ‚|j                  t        j                  |«      «      }|j                  |«      sJ ‚y )	Nr   rB   Úa©é   é   é   Údata_dirzdata.orc)Ú
filesystemzdata_dir/data.orc)rE   r
   rI   rX   ÚmkdirÚwrite_tablera   Ú
read_tabler   ÚLocalFileSystemrO   r   Ú_filesystem_uri)r~   r
   rX   Ú	directoryrc   Úresults         r   Útest_filesystem_urir®   î   sß   € ÝÜ�H‰H�cš9Ð%Ó&€Eà˜Ñ#€IØ‡O�OÔØ�zÑ!€DØ‡O�O�Eœ3˜t›9Ô%ð �^‰^˜D¬R×-?Ñ-?Ó-Aˆ^ÓB€FØ�=‰=˜ÔÐÐð �^‰^Ø¬×(<Ñ(<¸VÓ(Dð ó F€Fà�=‰=˜ÔÐÐð �^‰^Ü×Ñ˜TÓ"ó$€Fà�=‰=˜ÔÐÑr   c                 óþ  — ddl m} t        j                  g d¢«      }t        j                  g d¢«      }t        j                  ||dœ«      }| j                  d«      }|j                  ||«       |j                  |«      }|j                  |«      sJ ‚|j                  |g «      }d|j                  k(  sJ ‚d|j                  k(  sJ ‚|j                  |dg¬	«      }d|j                  k(  sJ ‚d
|j                  k(  sJ ‚y )Nr   rB   ©r¢   Nr¤   N©NÚArrowNÚORC©r•   Úutf8útest.orcé   r•   rC   r¢   )rE   r
   rI   ÚarrayrX   Újoinr¨   r©   rO   r�   Únum_columns)r~   r
   r    ÚbrX   ÚfileÚoutput_tables          r   Útest_orcfile_readwriter¾     sæ   € ÝÜ
�‰Ò#Ó$€AÜ
�‰Ò-Ó.€AÜ�H‰H˜q¨!Ñ,Ó-€EØ�;‰;�zÓ"€DØ‡O�O�E˜4Ô Ø—>‘> $Ó'€LØ�<‰<˜Ô%Ð%Ð%à—>‘> $¨Ó+€LØ�×%Ñ%Ò%Ð%Ð%Ø�×(Ñ(Ò(Ð(Ð(à—>‘> $°°	�>Ó:€LØ�×%Ñ%Ò%Ð%Ð%Ø�×(Ñ(Ò(Ð(Ñ(r   c                  ód  — ddl m}  ddlm}  |«       }t	        j
                  g d¢«      }t	        j
                  g d¢«      }t	        j                  ||dœ«      }| j                  ||«       |j                  d«       | j                  |«      }|j                  «       }|j                  |«      sJ ‚y )Nr   rB   )ÚBytesIOr°   r±   r´   )rE   r
   ÚiorÀ   rI   r¸   rX   r¨   ÚseekrF   rG   rO   )r
   rÀ   Úbufr    r»   rX   rW   r½   s           r   Útest_bytesio_readwriterÄ     s„   € ÝÝá
‹)€CÜ
�‰Ò#Ó$€AÜ
�‰Ò-Ó.€AÜ�H‰H˜q¨!Ñ,Ó-€EØ‡O�O�E˜3ÔØ‡H�HˆQ„KØ�{‰{˜3Ó€HØ—=‘=“?€LØ�<‰<˜Ô%Ð%Ñ%r   c                  óü  — ddl m}  t        j                  «       }t        j                  g d¢«      }t        j                  g d¢«      }t        j
                  ||dœ«      }| j                  ||«       t        j                  |j                  «       «      }| j                  |«      }|j                  «       }|j                  |«      sJ ‚|j                  dk(  sJ ‚|j                  dk(  sJ ‚|j                  dk(  sJ ‚|j                  d	k(  sJ ‚t        j                  «       }t!        j"                  t$        «      5  | j                  ||«       d d d «       t        j                  |j                  «       «      }| j                  |«      }|j                  «       }|j                  |«      sJ ‚|j                  dk(  sJ ‚|j                  dk(  sJ ‚|j                  dk(  sJ ‚|j                  d	k(  sJ ‚y # 1 sw Y   Œ¥xY w)
Nr   rB   r°   r±   r´   ÚUNCOMPRESSEDz0.12i'  é   ©rE   r
   rI   ÚBufferOutputStreamr¸   rX   r¨   ÚBufferReaderÚgetvaluerF   rG   rO   ÚcompressionÚfile_versionÚrow_index_strideÚcompression_sizerx   ÚwarnsÚFutureWarning©r
   Úbuffer_output_streamr    r»   rX   Úbuffer_readerrW   r½   s           r   Útest_buffer_readwriterÕ   (  s»  € Ýä×0Ñ0Ó2ÐÜ
�‰Ò#Ó$€AÜ
�‰Ò-Ó.€AÜ�H‰H˜q¨!Ñ,Ó-€EØ‡O�O�EÐ/Ô0Ü—O‘OÐ$8×$AÑ$AÓ$CÓD€MØ�{‰{˜=Ó)€HØ—=‘=“?€LØ�<‰<˜Ô%Ð%Ð%à×Ñ >Ò1Ð1Ð1Ø× Ñ  FÒ*Ð*Ð*Ø×$Ñ$¨Ò-Ð-Ð-Ø×$Ñ$¨Ò-Ð-Ð-ô ×0Ñ0Ó2ÐÜ	�‰”mÓ	$ñ 5Ø�‰Ð,¨eÔ4÷5ä—O‘OÐ$8×$AÑ$AÓ$CÓD€MØ�{‰{˜=Ó)€HØ—=‘=“?€LØ�<‰<˜Ô%Ð%Ð%à×Ñ >Ò1Ð1Ð1Ø× Ñ  FÒ*Ð*Ð*Ø×$Ñ$¨Ò-Ð-Ð-Ø×$Ñ$¨Ò-Ð-Ñ-÷5ð 5ús   Ä;G2Ç2G;c            	      ó  — ddl m}  t        j                  «       }t        j                  g d¢«      }t        j                  g d¢«      }t        j
                  ||dœ«      }| j                  ||dddd	¬
«       t        j                  |j                  «       «      }| j                  |«      }|j                  «       }|j                  |«      sJ ‚|j                  dk(  sJ ‚|j                  dk(  sJ ‚|j                  dk(  sJ ‚|j                  d	k(  sJ ‚t        j                  «       }t!        j"                  t$        «      5  | j                  ||dddd	¬
«       d d d «       t        j                  |j                  «       «      }| j                  |«      }|j                  «       }|j                  |«      sJ ‚|j                  dk(  sJ ‚|j                  dk(  sJ ‚|j                  dk(  sJ ‚|j                  d	k(  sJ ‚y # 1 sw Y   Œ¥xY w)Nr   rB   r°   r±   r´   Úsnappyz0.11iˆ  rÇ   )rÌ   rÍ   rÎ   Úcompression_block_sizeÚSNAPPYÚuncompressedi N  rÆ   rÈ   rÒ   s           r   Ú'test_buffer_readwrite_with_writeoptionsrÛ   I  sç  € åä×0Ñ0Ó2ÐÜ
�‰Ò#Ó$€AÜ
�‰Ò-Ó.€AÜ�H‰H˜q¨!Ñ,Ó-€EØ‡O�OØØØØØØ$ð ô ô —O‘OÐ$8×$AÑ$AÓ$CÓD€MØ�{‰{˜=Ó)€HØ—=‘=“?€LØ�<‰<˜Ô%Ð%Ð%à×Ñ 8Ò+Ð+Ð+Ø× Ñ  FÒ*Ð*Ð*Ø×$Ñ$¨Ò,Ð,Ð,Ø×$Ñ$¨Ò-Ð-Ð-ô ×0Ñ0Ó2ÐÜ	�‰”mÓ	$ñ 
Ø�‰Ø ØØ&ØØ"Ø#(ð 	ô 	
÷
ô —O‘OÐ$8×$AÑ$AÓ$CÓD€MØ�{‰{˜=Ó)€HØ—=‘=“?€LØ�<‰<˜Ô%Ð%Ð%à×Ñ >Ò1Ð1Ð1Ø× Ñ  FÒ*Ð*Ð*Ø×$Ñ$¨Ò-Ð-Ð-Ø×$Ñ$¨Ò-Ð-Ñ-÷#
ð 
ús   Å G<Ç<Hc                  óN  — ddl m}  t        j                  «       }t        j                  g d¢«      }t        j
                  d|i«      }t        j                  t        «      5  | j                  ||d¬«       d d d «       t        j                  t        «      5  | j                  ||d¬«       d d d «       t        j                  t        «      5  | j                  ||d¬«       d d d «       t        j                  t        «      5  | j                  ||d¬	«       d d d «       t        j                  t        «      5  | j                  ||d
¬	«       d d d «       t        j                  t        «      5  | j                  ||d¬«       d d d «       t        j                  t        «      5  | j                  ||d¬«       d d d «       t        j                  t        «      5  | j                  ||d¬«       d d d «       t        j                  t        «      5  | j                  ||d¬«       d d d «       t        j                  t        «      5  | j                  ||d¬«       d d d «       t        j                  t        «      5  | j                  ||d¬«       d d d «       t        j                  t        «      5  | j                  ||d¬«       d d d «       t        j                  t        «      5  | j                  ||d¬«       d d d «       t        j                  t        «      5  | j                  ||d¬«       d d d «       t        j                  t        «      5  | j                  ||d¬«       d d d «       t        j                  t        «      5  | j                  ||d¬«       d d d «       t        j                  t        «      5  | j                  ||d¬«       d d d «       t        j                  t        «      5  | j                  ||d¬«       d d d «       t        j                  t        «      5  | j                  ||d¬«       d d d «       t        j                  t        «      5  | j                  ||d¬«       d d d «       t        j                  t        «      5  | j                  ||d¬«       d d d «       t        j                  t        «      5  | j                  ||d¬«       d d d «       t        j                  t        «      5  | j                  ||d¬«       d d d «       t        j                  t        «      5  | j                  ||d¬«       d d d «       t        j                  t        «      5  | j                  ||d ¬!«       d d d «       t        j                  t        «      5  | j                  ||dd"g¬!«       d d d «       t        j                  t        «      5  | j                  ||h d#£¬!«       d d d «       t        j                  t        «      5  | j                  ||d¬$«       d d d «       t        j                  t        «      5  | j                  ||d%¬$«       d d d «       t        j                  t        «      5  | j                  ||d&¬$«       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   �Œ²xY w# 1 sw Y   �Œ‰xY w# 1 sw Y   �Œ`xY w# 1 sw Y   �Œ7x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   �ŒjxY w# 1 sw Y   �ŒAx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   �ŒtxY w# 1 sw Y   �ŒKx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   �Œ~xY w# 1 sw Y   �ŒUx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)'Nr   rB   r°   r•   )Ú
batch_sizeiœÿÿÿgR¸…ë �@g¤p=
×£À?)rÍ   z1.1)Ústripe_sizeipþÿÿg®Gáº °@)rÌ   ÚnoneÚzlid)rØ   i8ÿÿÿgR¸…ë"‘@)Úcompression_strategyÚnoÚlarge)rÎ   iàüÿÿg®Gáz”0¨@Úcat)Úpadding_toleranceÚarrow)Údictionary_key_size_thresholdg333333ó?gš™™™™™	Àr™   )Úbloom_filter_columnsgffffffö?>   r   r£   éÿÿÿÿ)Úbloom_filter_fppgš™™™™™ñ?gš™™™™™¹¿)rE   r
   rI   rÉ   r¸   rX   rx   ÚraisesÚ
ValueErrorr¨   Ú	TypeError)r
   rÓ   r    rX   s       r   Ú+test_buffer_readwrite_with_bad_writeoptionsrî   y  se  € ÝÜ×0Ñ0Ó2ÐÜ
�‰Ò#Ó$€AÜ�H‰H�g˜q�\Ó"€Eô 
�‰”zÓ	"ñ 
Ø�‰ØØ Øð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Øð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Øð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Øð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Øð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Øð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Øð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Øð 	ô 	
÷
ô 
�‰”yÓ	!ñ 
Ø�‰ØØ Øð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Øð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Øð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Ø#$ð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Ø#'ð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Ø#*ð 	ô 	
÷
ô 
�‰”yÓ	!ñ 
Ø�‰ØØ Ø!"ð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Ø!%ð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Ø!(ð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Øð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Ø!ð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Ø$ð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Ø#ð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Ø*1ð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Ø*-ð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Ø*.ð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Ø!)ð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Ø"# S ð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Ú!+ð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Ø$ð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Ø ð 	ô 	
÷
ô 
�‰”zÓ	"ñ 
Ø�‰ØØ Ø!ð 	ô 	
÷
ð 
÷g
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ñ 
ú÷
ð 
úsh  Á"Z"ÂZ/ÃZ<Ä[	Ä:[Å0[#Æ&[0Ç[=È\
É\É>\$Ê4\1Ë*\>Ì ]Í]Î]%Ï]2Ï8]?Ð.^Ñ$^Ò^&Ó^3Ô_ Ô<_Õ2_Ö(_'× _4Ø`Ù`Ú`Ú"Z,Ú/Z9Ú<[Û	[Û[ Û#[-Û0[:Û=\Ü
\Ü\!Ü$\.Ü1\;Ü>]Ý]Ý]"Ý%]/Ý2]<Ý?^	Þ^Þ^#Þ&^0Þ3^=ß _
ß_ß_$ß'_1ß4_>à`à`à`$c                 ó¼	  — ddl m} t        j                  dt        j                  «       «      }t        j                  dt        j
                  |g«      «      }t        j                  d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                  d
t        j                  t        j                  dt        j
                  t        j                  dt        j                  «       «      t        j                  d	t        j                  «       «      g«      «      «      «      t        j                  dt        j                  «       «      g}dgddggddiddœgdddœdddœggdgg}t        j                  |t        j                  |«      ¬«      }t        | dz  «      }|j                  ||«       |j                  |«      }|j                  «       }	|	j                  |«      sJ ‚|j                  ddg¬«      }
|
j                  |j                  ddg«      «      sJ ‚|j                  g d¢¬«      }|j                  |j                  g d¢«      «      sJ ‚|j                  dg¬«      }t        j                  ddddiigi«      }|j                  |«      sJ ‚|j                  dg¬«      }t        j                  dd	digi«      }|j                  |«      sJ ‚|j                  g d¢¬«      }|j                  |j                  ddg«      «      sJ ‚|j                  dg¬«      }t        j                  d
ddiddiggi«      }|j                  |«      sJ ‚|j                  ddg¬«      }
|
j                  |j                  ddg«      «      sJ ‚|j                  g d ¢¬«      }|j                  |j                  g d!¢«      «      sJ ‚t!        j"                  t$        «      5  |j                  d"g¬«       d d d «       t!        j"                  t&        «      5  |j                  dg¬«       d d d «       y # 1 sw Y   Œ?xY w# 1 sw Y   y xY w)#Nr   rB   Úinnerr�   ÚbasicrŽ   Úitemrš   Úinner2úlist-structÚinner1Úbasic2r¢   r£   r¤   r·   )r�   ró   é   é   )rõ   ró   é   é   é	   )r�   r¶   rC   )rŽ   rš   rö   ústruct.middle.innerústruct.inner2)rŽ   rü   rý   zlist-struct.inner1r¡   )rŽ   rš   rô   Úwrong)rE   r
   rI   Úfieldr•   rš   r”   r›   rX   r�   ra   r¨   rF   rG   rO   Úselectrx   rë   ÚIOErrorrì   )Útempdirr
   rð   r�   ÚfieldsÚarrsrX   rc   rW   Úresult1Úresult2Úresult3Úresult4Ú	expected4Úresult5Ú	expected5Úresult6Úresult7Ú	expected7s                      r   Útest_column_selectionr  [  s  € Ýô �H‰H�WœbŸh™h›jÓ)€EÜ�X‰X�h¤§	¡	¨5¨'Ó 2Ó3€Fä
�‰�œ"Ÿ(™(›*Ó%Ü
�‰Ø”B—H‘HœRŸX™X f¬b¯h©h«jÓ9Ó:ó	
ô 	�‰Ø”b—i‘i ¬¯©°(¼B¿H¹H»JÓ)GÐ HÓIó	
ô 	�‰Øœ2Ÿ8™8¤B§H¡HØœŸ	™	Ü—H‘H˜X¤r§x¡x£zÓ2Ü—H‘H˜X¤r§x¡x£zÓ2ð#ó ó%ó ó	
ô 	�‰�œ2Ÿ8™8›:Ó&ð!€Fð& 
ˆˆq�!ˆfˆX G¨Q <¸1Ñ=Ð>Ø !Ñ
$°¸aÑ&@Ð	AÐBÀQÀCðI€Dô �H‰H�T¤"§)¡)¨FÓ"3Ô4€Eäˆw˜Ñ#Ó$€DØ‡O�O�E˜4Ô Ø�{‰{˜4Ó €Hð �m‰m‹o€GØ�>‰>˜%Ô Ð Ð ð �m‰m W¨hÐ$7ˆmÓ8€GØ�>‰>˜%Ÿ,™,¨°Ð':Ó;Ô<Ð<Ð<à�m‰mÒ$@ˆmÓA€GØ�>‰>˜%Ÿ,™,Ò'CÓDÔEÐEÐEð �m‰mÐ%:Ð$;ˆmÓ<€GÜ—‘˜( h°¸!°Ð%=Ð$>Ð?Ó@€IØ�>‰>˜)Ô$Ð$Ð$à�m‰m _Ð$5ˆmÓ6€GÜ—‘˜( h° ] OÐ4Ó5€IØ�>‰>˜)Ô$Ð$Ð$à�m‰mÚ@ð ó €Gð �>‰>˜%Ÿ,™,¨°Ð'9Ó:Ô;Ð;Ð;à�m‰mÐ%9Ð$:ˆmÓ;€GÜ—‘˜-¨H°a¨=¸8ÀQ¸-Ð*HÐ)IÐJÓK€IØ�>‰>˜)Ô$Ð$Ð$ð �m‰m Q¨ FˆmÓ+€GØ�>‰>˜%Ÿ,™,¨°Ð':Ó;Ô<Ð<Ð<à�m‰m¢IˆmÓ.€GØ�>‰>˜%Ÿ,™,Ò'HÓIÔJÐJÐJô 
�‰”wÓ	ñ )ð 	�‰˜w˜iˆÔ(÷)ô
 
�‰”zÓ	"ñ #Ø�‰˜q˜cˆÔ"÷#ð #÷)ð )ú÷
#ð #ús   Ñ4SÒ)SÓSÓSc                 óô   — ddl m} t        | dz  «      }|j                  |«      5 }t	        j
                  t        «      5  |j                  «        d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nr   rB   r¶   )rE   r
   ra   Ú	ORCWriterrx   rë   ÚAttributeErrorÚtest)r  r
   rc   Úwriters       r   Útest_wrong_usage_orc_writerr  ª  sf   € Ýäˆw˜Ñ#Ó$€DØ	�‰�tÓ	ð  Ü�]‰]œ>Ó*ñ 	Ø�K‰KŒM÷	÷ð ÷	ð 	ú÷ð ús#   ¦A.Á A"ÁA.Á"A+	Á'A.Á.A7c                 óL  — ddl m} t        | dz  «      }t        j                  g d¢«      }t        j                  g d¢«      }t        j
                  ||dœ«      }t        j                  t        j                  «      5  |j                  ||«       d d d «       y # 1 sw Y   y xY w)Nr   rB   r¶   r°   )NNNNr´   )
rE   r
   ra   rI   r¸   rX   rx   rë   ÚArrowNotImplementedErrorr¨   )r  r
   rc   r    r»   rX   s         r   Ú test_orc_writer_with_null_arraysr  ³  sz   € Ýäˆw˜Ñ#Ó$€DÜ
�‰Ò#Ó$€AÜ
�‰Ò)Ó*€AÜ�H‰H˜q¨!Ñ,Ó-€EÜ	�‰”r×2Ñ2Ó	3ñ %Ø�‰˜˜tÔ$÷%÷ %ñ %ús   Á>BÂB#)NN)F))r   r   Úpathlibr   rz   ri   rk   rx   rE   rI   r   Úpyarrow.testsr   Úmarkr
   Ú
pytestmarkÚpandas.testingr   Úpandasr   ÚImportErrorÚfixturer   r7   r@   r[   Úparametrizerd   rn   r‚   rž   r®   r¾   rÄ   rÕ   r×   rÛ   rî   r  r  r  r   r   r   ú<module>r"     s  ðó$ Û Ý Û Û Û 
ã ã Ý Ý ð
 �[‰[�_‰_€
ð	Ý1Ûð
 €‡��hÔñ ó  ð ò#'óL?ó"&ðJ ‡�×ÑØ‡�×Ñ˜ò &ó ñ
	3óó ð	3ò=ò("=òJ+òB ò0)ò&&ò.ðB ‡�×Ññ,.ó ð,.ò^_
òDL#ò^ó%øðW ò 	Ùð	ús   Á
C/ Ã/C7Ã6C7