o
    Zh                     @   s&  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
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 Zedd	 Zd
d Zdd Zejddejdddd Z dd Z!dd Z"dd Z#dd Z$dd Z%dd Z&d d! Z'd"d# Z(d$d% Z)d&d' Z*d(d) Z+d*d+ Z,d,d- Z-d.d/ Z.d0d1 Z/d2d3 Z0d4d5 Z1d6d7 Z2d8d9 Z3d:d; Z4ejd<g d=d>d? Z5d@dA Z6dBdC Z7dDdE Z8dFdG Z9dHdI Z:dJdK Z;dLdM Z<dNdO Z=dPdQ Z>dRdS Z?dTdU Z@dVdW ZAdXdY ZBdZd[ ZCejd\ejDd]ejjEejFjGd^d_d`dadbdcddgdedf ZHejd\ejDd]ejjEejFjGd^d_d`dadbdcddgdgdh ZIdidj ZJdkdl ZKdmdn ZLdodp ZMdqdr ZNdsdt ZOdudv ZPejQdwdx ZR	yddzd{ZSd|d} ZTd~d ZUdd ZVdd ZWdd ZXdd ZYdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_dd Z`dd Zadd Zbdd Zcdd Zddd Zedd Zfejjgdd Zhdd Zidd Zjdd Zkdd Zldd Zmdd Zndd Zoejjdd Zpdd Zqejjdd Zrdd Zsejjdd Ztejjdd Zudd Zvejjdd ZwddÄ Zxddń Zyejdddezdɡdafezdʡdcfgdd̄ Z{dd΄ Z|ejd\d]d`dadbdcejDddejjEejFjGd^d_gddЄ Z}ejd\g dѢddӄ Z~dZddք Zejdg dآddڄ Zejdddgddބ Zejdddgdd Zejdddgdd Zejjdd Zdd Zdd Zejjdd Zdd Zejjdd Zejjdd Zejjdd Zdd Zdd Zdd Zdd Zejjdd  Zdd Zejjdd Zdd Zejjdd Zd	d
 ZdS (      N)contextmanager)BytesIOStringIOTextIOWrapperBufferedIOBaseIOBase)guid)Codecc              	   C   s  t jdv r
td zptjdd}t|d}|d |d |	d W d    n1 s0w   Y  | |*}|ddksCJ |
 dksKJ |d	dksTJ |
 dks\J W d    n1 sfw   Y  W t| d S W t| d S t| w )
N)win32darwinzneed sparse file supportZtest_io)prefixwbl   
    l       s   mark
   )sysplatformpytestskiptempfilemktempopentruncateseekwritetellreadosunlink)Zfile_factoryfilenamef r   L/var/www/html/lang_env/lib/python3.10/site-packages/pyarrow/tests/test_io.pycheck_large_seeks'   s$   




r!   c                   c   s8    t t d V  W d    d S 1 sw   Y  d S N)r   raisesFileNotFoundErrorr   r   r   r    assert_file_not_found9   s   "r%   c                  C   s   t  } t| }| dksJ d}d}|| | t|ks#J || || }|  }||ks6J |jr;J |  |jsDJ t	j
tdd tt  W d    d S 1 s]w   Y  d S )Nr   s	   engañados   foobarbinary file expectedmatch)r   pa
PythonFiler   r   lengetvalueclosedcloser   r#   	TypeErrorr   )bufr   s1s2expectedresultr   r   r    test_python_file_writeC   s"   




"r5   c                  C   s.  d} t | }tj|dd}| t| ksJ | dksJ |ddks(J | dks0J |d | dks=J |d | dksJJ |d}|d	ksUJ t|d
ks]J | t| ksgJ |jrlJ |	  |jsuJ t
jtdd tjt dd W d    d S 1 sw   Y  d S )N   some sample datarmoder         somer   2      sample data   r&   r'   )r   r)   r*   sizer+   r   r   r   r-   r.   r   r#   r/   r   )datar0   r   vr   r   r    test_python_file_read_   s*   




"rB   nbytes)r      r   d   file_offset)rD   r   r   rF   c           	      C   sh  d}t jt|dd}| dk s|dk r8tjt jdd |j|| d W d    n1 s-w   Y  |  d S |j|| d}t|t	|}t||  t	|}t||| }|j
dd	|
dksdJ |j
d
d	|
d
ksqJ |
 |
 ks{J t	|d }|
||
|ksJ tjtdd |d W d    n1 sw   Y  |  |jsJ d S )Ns   data1data2data3data4data5r7   r8   r   zshould be a positive valuer'   )rG   rC   r:   )rC         seekable)r)   r*   r   r   r#   ZArrowInvalid
get_streamr.   minr+   r   OSErrorr   r-   )	rC   rG   r@   r   streamstartendr0   nr   r   r    test_python_file_get_stream   s0   rR   c                  C   sr   d} t | }tj|dd}|jddd}|dksJ t|dks"J |jdd	d}|| ks/J t|d
ks7J d S )Nr6   r7   r8   r      )rC   offsets   e samr<   r      )r   r)   r*   Zread_atr+   )r@   r0   r   rA   wr   r   r    test_python_file_read_at   s   rW   c                  C   sP   d} t | }tj|dd}| | ksJ W d    d S 1 s!w   Y  d S )Nr6   r7   r8   )r   r)   r*   readall)r@   r0   r   r   r   r    test_python_file_readall   s
   "rY   c                  C   s   d} d}t | }t|}tj|dd(}||dksJ |d |  |d |  ks+J t|| ks3J W d    d S 1 s>w   Y  d S )N
   s   some sample data longer than 10r7   r8   )	bytearrayr   r)   r*   readintor+   )lengthr@   dst_bufZsrc_bufr   r   r   r    test_python_file_readinto   s   "r_   c                     s   dd} t |  G  fddd}| }tj|dd6}|}t|ks*J t|  d  ks8J tdt|d<  d tdksJJ W d    d S 1 sUw   Y  d S )	NrZ   s
   0123456798c                       s.   e Zd Zdd Zedd Z fddZdS )z0test_python_file_read_buffer.<locals>.DuckReaderc                 S      d S r"   r   selfr   r   r    r.         z6test_python_file_read_buffer.<locals>.DuckReader.closec                 S      dS NFr   ra   r   r   r    r-         z7test_python_file_read_buffer.<locals>.DuckReader.closedc                    s   |ksJ t  d | S r"   )
memoryviewrb   rC   r^   r]   r   r    read_buffer   s   z<test_python_file_read_buffer.<locals>.DuckReader.read_bufferN)__name__
__module____qualname__r.   propertyr-   rj   r   ri   r   r    
DuckReader   s
    
ro   r7   r8      xr   )r[   r)   r*   rj   r+   rg   tobytesord)r@   ro   Zduck_readerr   r0   r   ri   r    test_python_file_read_buffer   s   
"rs   c                  C   sT   t jtddd} t| tsJ t| tsJ W d    d S 1 s#w   Y  d S )N    r7   r8   )r)   r*   r   
isinstancer   r   r   r   r   r    test_python_file_correct_abc   s   "rw   c                  C   sh   d} t | }t | }tj|dd}t||D ]
\}}||ks!J qW d    d S 1 s-w   Y  d S )Ns   line1
    line2
    line3
    r7   r8   )r   r)   r*   zip)r@   r0   buf2r   r   r3   r   r   r    test_python_file_iterable   s   "rz   c                  C   s   dd } t |  d S )Nc                 S   s   t t| dS Nrb)r)   r*   r   )r   r   r   r    factory     z-test_python_file_large_seeks.<locals>.factory)r!   )r}   r   r   r    test_python_file_large_seeks  s   r   c                  C   s   d} t | }| dksJ | t| ksJ |ddks"J | dks*J |d | dks7J |dd | t| ksGJ |d | dksTJ |ddks]J |jrbJ |  |jskJ d S )	Nr6   r   r:   r;   rI   r   r<   r=   )	r)   BufferReaderr   r?   r+   r   r   r-   r.   )r@   r   r   r   r    test_bytes_reader	  s    



r   c                   C   s:   t t td W d    d S 1 sw   Y  d S )Nzsome sample data)r   r#   r/   r)   r   r   r   r   r    test_bytes_reader_non_bytes$  s   "r   c                  C   s@   dd l } dd }| }|   | dksJ |jd usJ d S )Nr   c                  S   s&   dd } t | }|d |dS )Nr6     r   rH   )r)   r   r   rj   )r@   readerr   r   r    
get_buffer-  s   


z>test_bytes_reader_retains_parent_reference.<locals>.get_buffers   sample)gccollect
to_pybytesparent)r   r   r0   r   r   r    *test_bytes_reader_retains_parent_reference)  s   r   c                 C   s.  t jt| d}t|d$}t|}| sJ | r J |	 r&J |
d W d    n1 s5w   Y  t|d'}t|}| sKJ | rQJ |	 sWJ | dks_J W d    n1 siw   Y  t }t|}| s|J | rJ |	 rJ |
d | dksJ d S )Nfoo.txtr   s   foobar
r|   )r   pathjoinstrr   r)   r*   writablereadablerJ   r   r   r   r,   )tmpdirr   r   pfbior   r   r    test_python_file_implicit_mode9  s,   



r   c              	   C   s   ddg}t jt| d}t|d&}ztj|dd}| s!J || W |	  n|	  w W d    n1 s;w   Y  t|d-}ztj|dd}|
 sTJ | d	|ks_J W |	  n|	  w W d    d S 1 suw   Y  d S )
Ns   line1
s   line2
line3r   r   rV   r8   r|   r7   rt   )r   r   r   r   r   r)   r*   r   
writelinesr.   r   r   )r   linesr   r   r   r   r    test_python_file_writelinesR  s    "r   c                  C   sT   t  } t| }t|}~| d u sJ | jrJ t| }|  | js(J d S r"   )r   r)   r*   weakrefrefr-   r.   )r   r   wrr   r   r    test_python_file_closingf  s   



r   c                 C   sz   t d|jd D ]2}||j| |d}t|t| ksJ t|t| ks(J | |  ks2J |j| jks:J qd S )Nr   rE   )protocol)rangeHIGHEST_PROTOCOLloadsdumpsr+   rg   r   
is_mutable)r0   Zpicklerr   r4   r   r   r    check_buffer_picklingv  s   r   c                 C   sT   d}t |}t|t jsJ |jrJ |jsJ | }||ks#J t||  d S N	   some data)r)   	py_bufferru   Bufferr   is_cpur   r   pickle_modulevalr0   r4   r   r   r    test_buffer_bytes     


r   c                 C   sf   t jddd}| dksJ |jdksJ t|}| dks"J t |jdks,J t||  d S )Nr   )addressr?   rt   )r)   foreign_bufferr   r   rg   rq   r   r   )r   Z	null_buffmr   r   r    test_buffer_null_data  s   r   c                 C   sT   d}t |}t|t jsJ |jrJ |jsJ t|}||ks#J t||  d S r   )r)   r   ru   r   r   r   rg   r   r   r   r   r    test_buffer_memoryview  r   r   c                 C   sX   t d}t|}t|tjsJ |jsJ |jsJ t |}||ks%J t||  d S r   )r[   r)   r   ru   r   r   r   r   r   r   r   r    test_buffer_bytearray  s   


r   c                   C   s>   t jtdd td  W d    d S 1 sw   Y  d S )Nz$(bytes-like object|buffer interface)r'   )r   r#   r/   r)   r   r   r   r   r    test_buffer_invalid  s
   "r   c                  C   s6   t d} t| }| d usJ ~ | d u sJ d S r   )r)   r   r   r   )r0   r   r   r   r    test_buffer_weakref  s
   

r   zval, expected_hex_buffer))s   checks
   636865636B)s   0s   0730)rt   rt   c                 C   s   t | }| |ksJ d S r"   )r)   r   hex)r   Zexpected_hex_bufferr0   r   r   r    test_buffer_hex  s   
r   c                  C   sr   t d} d| d< t| }tj|dd}|d | d ksJ | d  d7  < |d | d ks0J |j|ks7J d S )N   *   r   uint8ZdtyperE   )r[   r)   r   np
frombufferbase)Z
byte_arrayr0   arrayr   r   r    test_buffer_to_numpy  s   
r   c                  C   s   t jdt jdd} t| }|jsJ |jsJ | | 	 ks$J t| j
}|js/J |js4J | | 	 ks>J tjtdd t| j
d d d }W d    d S 1 s\w   Y  d S )N   r   )rS   r:   znot contiguousr'   rI   )r   arangeint8Zreshaper)   r   r   r   r   rq   Tr   r#   
ValueError)arrr0   r   r   r    test_buffer_from_numpy  s   




"r   c            	      C   s   d} t | }t | }t| }t| }t|}t|}|jdks%J |j|jks-J |j|jks5J |j|jks=J td}t|}|j|jjksPJ d S )N
   some data!r   r   )r[   r)   r   r   r   r   ctypesr@   )	b1b2b3buf1ry   buf3buf4r   r0   r   r   r    test_buffer_address  s   





r   c            
      C   s   dd } dd }d}t |}t |}d|d< t|}t|}t|}t|}ttj|tjd}	| || | || | || ||| | ||	 d S )	Nc                 S   s*   |  |sJ | |ksJ | |krJ d S r"   equalsabr   r   r    eq     ztest_buffer_equals.<locals>.eqc                 S   s*   |  |rJ | |krJ | |ksJ d S r"   r   r   r   r   r    ne  r   ztest_buffer_equals.<locals>.ner   r   r   r   )r[   r)   r   r   r   Zint16)
r   r   r   r   r   r   ry   r   r   Zbuf5r   r   r    test_buffer_equals  s    







r   c                  C   sj   t d} | dksJ | tdksJ | dksJ tt | dk W d    d S 1 s.w   Y  d S )Nr   s	   some dat1z	some data)r)   r   r[   r   r#   r/   r0   r   r   r    test_buffer_eq_bytes  s   

"r   c                  C   s   t d} t| }t| }t| |d D ]}|| | | ks!J qtt ||  W d    n1 s6w   Y  tt || d   W d    d S 1 sSw   Y  d S )Nr   rE   )r[   r)   r   r+   r   r   r#   
IndexError)r@   r0   rQ   Zixr   r   r    test_buffer_getitem&  s   

"r   c            	      C   s  d} t | }|d}t d}||sJ |dd}t d}||s*J |d|s4J t|t|dksAJ tt |d W d    n1 sVw   Y  tt |t|d  W d    n1 stw   Y  |d	d   d
ksJ tt |dt| W d    n1 sw   Y  |dd	  | dd  ksJ tt |dd W d    n1 sw   Y  |dd  |dsJ |dd |ddsJ |dd  |t|d sJ |dd |t|d dsJ tt |d d d  W d    n	1 s*w   Y  tt |d d d  W d    n	1 sGw   Y  t|}t	| d |d D ]$}t	| d |d D ]}|||  | || ks{J qfqZd S )Nr   rI   s   me data!r:   s   me dr   rD   rE   r>   rt   r   rS   )
r)   r   slicer   r+   r   r#   r   r   r   )	r@   r0   Zslicedr3   Zsliced2Z	expected2rQ   rO   stopr   r   r    test_buffer_slicing5  sP   



$$(*r   c                   C   sB   t jtdd ttd W d    d S 1 sw   Y  d S )NZ
unhashabler'   s   123)r   r#   r/   hashr)   r   r   r   r   r    test_buffer_hashingh  s   "r   c                  C   s.   d} t | }tj|tjd}|jjrJ d S )Ns   12345r   )r)   r   r   r   r   flagsZ	writeable)r   Z	arrow_refZ	numpy_refr   r   r    *test_buffer_protocol_respects_immutabilityn  s   
r   c                  C   s   t jddgt jd} | jd d }| j}t||| }t| }~ t j	|t jd
 ddgks1J | d us8J ~| d u s@J d S )NrE   rI   r   r@   r   )r   r   Zint32Z__array_interface__rC   r)   r   r   r   r   tolist)objaddrr?   r0   r   r   r   r    test_foreign_buffery  s   
 r   c                  C   sd   t d} | jdksJ | jsJ | jd u sJ d}t | }|| |  d d |ks0J d S )NrF   s   abcder   )r)   allocate_bufferr?   r   r   FixedSizeBufferWriterr   r   )r0   bitwriterr   r   r    test_allocate_buffer  s   



r   c                  C   s:   t jddd} t| t jsJ | d | jdksJ d S )NrF   T)Z	resizable   )r)   r   ru   ZResizableBufferresizer?   r   r   r   r    test_allocate_buffer_resizable  s   
r   c                  C   s  t  } t jdd}t jddd}t jdddd}t jdddd	}t jjd
dddd}| jdks2J | jdks9J | jdu s@J | jdksGJ |jdksNJ |jdksUJ |jdu s\J |jdkscJ |jdksjJ |jdksqJ |jdu sxJ |jdksJ |jdksJ |jdksJ |jdu sJ |jdksJ |jdksJ |jdksJ |jdu sJ |jdksJ |jdu sJ | | ksJ | |ksJ ||ksJ ||ksJ ||ksJ || ksJ d S )N   )hole_size_limit       )r   range_size_limitr   )r   r   prefetch_limitF)r   r   lazyrF   r   g?@   )Ztime_to_first_byte_millisZtransfer_bandwidth_mib_per_secZ ideal_bandwidth_utilization_fracZmax_ideal_request_size_mibi   Tr   )r)   CacheOptionsZfrom_network_metricsr   r   r   r   )Zopts1Zopts2Zopts3Zopts4Zopts5Zopts6r   r   r    test_cache_options  sR   r   c                 C   s@   t  t jdddddg}|D ]}| | ||ksJ qd S )Nr   r   Tr   )r   r   r   r   )r)   r   r   r   )r   optionsoptionr   r   r    test_cache_options_pickling  s   r   compressionbz2)r#   )Zmarksbrotligziplz4zstdsnappyc                 C   s   t | std|  d}tjjdd|dtj	
 }t|}tj|| d}tj|| dd}t|ts9J tj||| d}tj||| dd}t|tsQJ ||sXJ ||ks^J tt tj|| d W d    d S 1 svw   Y  d S )	N{} support is not built'  r      r?   )codecT)r
  asbytes)r	   is_availabler   r   formatr   randomrandintastyper   rq   r)   r   compressru   bytes
decompressr   r#   r   )r   
INPUT_SIZE	test_datatest_bufcompressed_bufcompressed_bytesdecompressed_bufdecompressed_bytesr   r   r    test_compress_decompress  s2   

"r  c              	   C   s  t | std|  t | }|jdkr|jd u sJ nt|jts&J dg}| |v rt 	| r4J t
t t | d W d    n1 sIw   Y  t
t t |  W d    n1 scw   Y  t
t t |  W d    n1 s}w   Y  t
t t |  W d    d S 1 sw   Y  d S d}tjjdd|dtj }t|}t | }t | }t | }||k sJ ||ksJ ||ksJ t||d D ]Z}	t | |	}||}
|j|dd	}t|tsJ ||
|}|j||dd	}t|tsJ ||sJ ||ksJ t
t || W d    n	1 s2w   Y  qttjd
sDtd tjjdd}|ddd}t|}|  d }t | |}||}t | |}||}t!|t!|ks|J d S )Nr  r  r   r  r  r	  rE   T)r  default_rngzRequires newer version of numpyr   )seedrF   r   )"r	   r  r   r   r  namecompression_levelru   intZsupports_compression_levelr#   r   Zminimum_compression_levelZmaximum_compression_levelZdefault_compression_levelr   r  r  r  r   rq   r)   r   r   r  r  r  r   hasattrr  Zintegersr   buffersr+   )r   r
  Zno_levelr  r  r  Z	min_levelZ	max_levelZdefault_levelr  r  r  r  r  rngvaluesr   Zhard_to_compress_bufferZ
weak_codecZweakly_compressed_bufZstrong_codecZstrongly_compressed_bufr   r   r    test_compression_level  s~   














r%  c                  C   s   d} t | }|jrJ t|t jsJ t|}|jsJ tt	}d|d< dt
|jv s0J W d    n1 s:w   Y  t|}tt	}d|d< dt
|jv sVJ W d    d S 1 saw   Y  d S )Nr      hr   zcannot modify read-only)r)   r   r   ru   r   rg   readonlyr   r#   r/   r   valuer  )r   r0   r4   excr   r   r   r    #test_buffer_memoryview_is_immutableW  s   


"r*  c                   C   s8   t t t  W d    d S 1 sw   Y  d S r"   )r   r#   r/   r)   r   r   r   r   r    test_uninitialized_bufferk  s   
"r+  c                  C   s`   d} t  }d}t|D ]}||  q| }t|t| | ks$J | | | ks.J d S )N
   dataabcdefr   )r)   BufferOutputStreamr   r   r,   r+   r   )r   r   Kir0   r   r   r    test_memory_output_streamr  s   r0  c                  C   sh   t  } | d | jrJ |   | jsJ tt | d W d    d S 1 s-w   Y  d S )N   oks   not ok)r)   r-  r   r-   r,   r   r#   r   rv   r   r   r     test_inmemory_write_after_closed  s   


"r2  c                  C   sf   dd } | d}t   |dksJ d}t|}tdD ]}| | qt   |t|ks1J d S )Nc                 S   s   t t| S r"   )r[   r)   r   )Z	bytes_objr   r   r    make_buffer     z6test_buffer_protocol_ref_counting.<locals>.make_buffer   foorZ   )r   r   r   getrefcountr   )r3  r0   r   Zrefcount_beforer/  r   r   r    !test_buffer_protocol_ref_counting  s   

r7  c                  C   s   t  } d}tj|dd}| | | t| | t | tt	 | |
d W d    n1 s9w   Y  |  }| |d ksLJ d S )Nr1  ZS1r   utf8rS   )r)   r-  r   r   r   r[   r   r   r#   r/   decoder,   r   )r   r@   r   r0   r   r   r     test_nativefile_write_memoryview  s   
r:  c                  C   s   d} t  }t  }d}t|D ]}||  ||  q| t| ks)J t j	t 
g dgdg}t  }t  }t ||j}t ||j}|| || |  |  | t| kskJ d S )Nr,  r   )rE   rI   rS   r   )r)   ZMockOutputStreamr-  r   r   r?   r+   r,   ZRecordBatchfrom_arraysr   RecordBatchStreamWriterschemaZwrite_batchr.   )r   f1f2r.  r/  Zrecord_batchZstream_writer1Zstream_writer2r   r   r    test_mock_output_stream  s$   


r@  c                    s   d}t jjdd|dd}| d | }tjt|t	  t
 d}|| W d    n1 s5w   Y   fdd}| |  |fS )	Nr   r      r	  u1r   c                      s   t   d S r"   )_try_deleter   r   r   r    teardown  s   z"sample_disk_data.<locals>.teardown)r   r  r  r  rq   r   r   r   r   r   r   r   Zaddfinalizer)requestr   SIZEr   r@   r   rE  r   rD  r    sample_disk_data  s   
rH  Tc                 C   sD  |\}}| |dd}| d|d d ksJ | ddks J | dks(J |  |dd  ks4J | t|ks>J |d | dksKJ |rk|t|d  | t|d ksbJ | ddkskJ |ddkstJ |dtjd	ksJ | d	ksJ t|d
 }|dtj|ksJ | |ksJ d S )Nr7   r8   rZ   r   rt   rE   r   rS   rH   rI   r   )r   r   r?   r+   r   r   SEEK_CURSEEK_END)ZFACTORYZsample_dataallow_read_out_of_boundsr   r@   r   Z	ex_lengthr   r   r    _check_native_file_reader  s&   
rL  c                 C   s   t tj| dd d S )NF)rK  )rL  r)   
memory_maprH  r   r   r    test_memory_map_reader
  s   
rO  c                 C   s   | \}}g }t |d2}||d|d d f ||d|dd f ||d|dd f W d    n1 sAw   Y  t  |D ]\}}| |ksXJ qLd S )Nr|   rF   r   i,  )r)   rM  appendrj   r   r   r   )rH  r   r@   casesr   r0   r3   r   r   r    'test_memory_map_retain_buffer_reference  s   rR  c                 C   s   t tj|  d S r"   )rL  r)   OSFilerN  r   r   r    test_os_file_reader  r~   rT  c                   C      t tj d S r"   )r!   r)   rS  r   r   r   r    test_os_file_large_seeks#  r4  rV  c                 C   s(   zt |  W d S  t jy   Y d S w r"   )r   removeerrorrD  r   r   r    rC  '  s
   rC  c           	      C   s  d}t jjdd|dd}| d | }tjt| t	 }t
|d}|| W d    n1 s5w   Y  tj|dd}|d	 |d
 | dksSJ |d	 |dd
ksaJ tj|dd}|d	 |d |d	 |d	 |ddksJ tj|dd}|d t|}| |ksJ W d    n1 sw   Y  tt |d W d    n1 sw   Y  |d |ddksJ d S )Nr   r   rA  r	  rB  r   r+br8   rZ   s   peekaboo      s   booapeakrV   r5  r   rS   )r   r  r  r  rq   r   r   r   r   r   r   r   r)   rM  r   r   r   r?   r   r#   IOError)	r   rG  r   r@   r   r   r?  f3f4r   r   r    test_memory_map_writer.  s:   








r_  c                 C   s   d}t jjdd|dt j}| d |d  }| |d d  }tjt	| t
 }t||d }|| || || |  t|d}| | ksXJ W d    d S 1 scw   Y  d S )Nr   r   rA  r	  rI   r|   )r   r  r  r  r   rq   r   r   r   r   r   r)   create_memory_mapr   r   r.   r   r   )r   rG  r   Zdata1Zdata2r   mmapr   r   r   r    test_memory_map_resizeW  s   


"rb  c                 C   sj   t jt| t }t|d}|  tj|dd}|	 dks#J W d    d S 1 s.w   Y  d S )Nr   rY  r8   r   )
r   r   r   r   r   r   r.   r)   rM  r?   )r   r   r   rM  r   r   r    test_memory_zero_lengthk  s   
"rc  c                   C   rU  r"   )r!   r)   rM  r   r   r   r    test_memory_map_large_seekss  r4  rd  c                 C   s@   t jt| t }t|d}|  |jsJ t 	| d S Nr   )
r   r   r   r   r   r)   r`  r.   r-   rW  )r   r   ra  r   r   r    test_memory_map_close_removew  s
   
rf  c                 C   s.   t jt| t }t|d t | d S re  )r   r   r   r   r   r)   r`  rW  )r   r   r   r   r    test_memory_map_deref_remove  s   rg  c           
      C   sz  d}t jjdd|dd}| d | }tjt| t	 }t
|d}|| W d    n1 s5w   Y  tj|dd}|d	 t|}| d
ksTJ W d    n1 s^w   Y  tt |d W d    n1 sxw   Y  |  tj|dd}|d W d    n1 sw   Y  t|}	|	 dksJ W d    d S 1 sw   Y  d S )Nr   r   rA  r	  rB  r   rV   r8   r5  rS   r   abs   barrH   )r   r  r  r  rq   r   r   r   r   r   r   r   r)   rS  r?   r   r#   r\  r   r.   )
r   rG  r   r@   r   r   r?  r]  r^  Zf5r   r   r    test_os_file_writer  s,   
"ri  c                  C   sB   t  } tt | d W d    d S 1 sw   Y  d S )Nfoo)r)   r-  r   r#   r/   r   )nfr   r   r    %test_native_file_write_reject_unicode  s   "rl  c                 C   s
  t jt| t }t|d}|d W d    n1 sw   Y  tj|dd!}|j	dks3J |
 s9J | r?J | sEJ W d    n1 sOw   Y  tj|dd!}|j	dkscJ |
 siJ | roJ | suJ W d    n1 sw   Y  tj|dd!}|j	dksJ |
 rJ | sJ | rJ W d    n1 sw   Y  tj|dd!}|j	dksJ |
 rJ | sJ | rJ W d    n1 sw   Y  tj|dd"}|j	dksJ |
 rJ | sJ | rJ W d    n	1 sw   Y  tj|dd%}|j	dks&J |
 r-J | s4J | r;J W d    n	1 sFw   Y  t|d}|d W d    n	1 saw   Y  t|d%}|j	dksuJ |
 s|J | rJ | sJ W d    n	1 sw   Y  t|d	%}|j	d
ksJ |
 sJ | sJ | sJ W d    n	1 sw   Y  t|d&}|j	d
ksJ |
 sJ | sJ | sJ W d    d S 1 sw   Y  d S )Nr      foooor7   r8   r|   rV   rh  r   zr+zrb+rY  )r   r   r   r   r   r   r   r)   rS  r9   r   r   rJ   rM  )r   r   r   r   r   r    test_native_file_modes  sz   $rn  c                 C   s   t d}t | t jt| t }tj|dd W d    n1 s&w   Y  t |j	d@ d| @ ks:J t jt| t }t
|d W d    n1 sUw   Y  t |j	d@ d| @ ksiJ d S )NrI   rV   r8   i  i  )r   umaskr   r   r   r   r)   rS  statst_moderM  )r   Z	cur_umaskr   r   r   r    test_native_file_permissions  s   

"rr  c           	   
   C   s0  t jt| t }t|d}|d W d    n1 sw   Y  tj|dd}|j	r1J W d    n1 s;w   Y  |j	sEJ tj
|dd}|j	rRJ W d    n1 s\w   Y  |j	sfJ ||g}g d}|D ]%}|D ] \}}tt t|||  W d    n1 sw   Y  qtqpd S )Nr   rm  r|   r8   ))r   r   )r   )r   )r?   r   )flushr   )r   r   )r   r   )rJ   r   )r   r   r   r   r   r   r   r)   rS  r-   rM  r   r#   r   getattr)	r   r   r   Zos_fileZ	mmap_filefilesmethodsmethodargsr   r   r    .test_native_file_raises_ValueError_after_close  s0   

ry  c                 C   s  d}t jt| t }t|d}||d W d    n1 s$w   Y  tt	j
|dd}| s9J | }||ksCJ W d    n1 sMw   Y  |jsWJ tt	j
|dd}t|}d||ksnJ W d    n1 sxw   Y  t jt| t }tt	j
|dd}| sJ || W d    n1 sw   Y  tt	j
|dd}| }||ksJ W d    d S 1 sw   Y  d S )Nzfoooo
barrr
bazzz
r   utf-8r|   r8    )r   r   r   r   r   r   r   encoder   r)   rS  r   r   r-   listr   )r   r@   r   r   Zfilresr   Zpath2r   r   r    test_native_file_TextIOWrapper  s0   
"r  c                 C   s   d}t | d }t|d}||d  W d    n1 sw   Y  tj|dd}t|;}| dks8J d}||}t|t	
d	| t| ksPJ ||   kr_|d	 ksbJ  J W d    d S 1 smw   Y  d S )
Ns	   foo
quux
largefile.txtr   i r|   r8   r   i N  rI   )r   r   r   r)   rS  r   r   	readlinesr+   mathceil)r   r@   r   r   binary_filerC   r   r   r   r    #test_native_file_TextIOWrapper_perf4  s   

"&"r  c                 C   s   dd }t | d }t|d}|| W d    n1 sw   Y  g }tj|dd2}	 | }t|t|k s=J || |d}t|dksOJ || |sWnq/W d    n1 sbw   Y  d	||kspJ d S )
Ns   123
i@B r  r   r|   r8   Ti0u  rt   )	r   r   r   r)   rS  read1r+   rP  r   )r   r@   r   r   chunksr   r   r   r    test_native_file_read1E  s(   


r  c                 C   s   dd l }dd lm} dd }t| d }t|d}|| W d    n1 s)w   Y  tj|dd,}|j|dd	}|	d
gd dgd d}|
|| | dksYJ W d    d S 1 sdw   Y  d S )Nr   s   a,b
i r  r   r|   r8   rZ   )Znrowsr   r   r   i   )pandasZpandas.testingZtestingr   r   r   r)   rS  Zread_csvZ	DataFrameZassert_frame_equalr   )r   pdtmr@   r   r   dfr3   r   r   r    #test_native_file_pandas_text_reader\  s   "r  c                   C   sj   t   tdd W d    n1 sw   Y  t   tdd W d    d S 1 s.w   Y  d S )Nnon_existent_filer|   )r%   r)   rS  rM  r   r   r   r    test_native_file_open_erroro  s   "r  c                  C   sZ   t d} t j| dd}|ddksJ |  dksJ |  |js&J | js+J d S )N	   123456789r:   buffer_sizerI      12)r)   r   BufferedInputStreamr   r   r.   r-   )rawr   r   r   r    test_buffered_input_streamy  s   

r  c                  C   s   t jt ddd} | ddksJ |  }| jsJ |jr!J | s'J |ddks0J |d |ddks>J d S )Nr  r:   r  rI   r     5678s   3456)r)   r  r   r   detachr-   rJ   r   r   r  r   r   r    *test_buffered_input_stream_detach_seekable  s   


r  c                  C   s   t jt jt ddddd} | ddksJ |  }| js!J |jr&J | r,J |ddks5J tt	 |
d W d    d S 1 sKw   Y  d S )Nr  r:   r  rI   r  r  )r)   r  r   r   r  r-   rJ   r   r#   EnvironmentErrorr   r  r   r   r    .test_buffered_input_stream_detach_non_seekable  s   

"r  c                  C   s   t jdt jd} t| }t|}tj|dd}|d | d d  dks*J |	  | d d  dks:J |d |
  |jsHJ |jsMJ | d d	  d
ksYJ d S )NrF   r   r:   r  r            12  s   3456789rZ   s
   123456789 )r   zerosr   r)   r   r   BufferedOutputStreamr   rq   rs  r.   r-   )np_bufr0   r  r   r   r   r    test_buffered_output_stream  s   





r  c                  C   s   t jdt jd} t| }tjt|dd}|d | d d  dks(J |	 }|j
s1J |j
r6J | d d  dksBJ d S )NrF   r   r:   r  r  r  r  )r   r  r   r)   r   r  r   r   rq   r  r-   )r  r0   r   r  r   r   r    "test_buffered_output_stream_detach  s   



r  c                 C   s   t j|dd}t ||)}|jrJ | sJ | rJ | r%J | }|| ks/J W d    n1 s9w   Y  |jsCJ |jsHJ t j|dd}t ||}| }t	|t j
sbJ | | ksjJ W d    d S 1 suw   Y  d S Nr|   r8   )r)   rS  CompressedInputStreamr-   r   r   rJ   r   rj   ru   r   r   )r@   fnr   r  
compressedgotr0   r   r   r    check_compressed_input  s"   


"r  c                 C   sV   d}t | d }t|d}|| W d    n1 sw   Y  t||d d S )N   some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
eof
zcompressed_input_test.gzr   r  )r   r  r   r   r  r   r@   r  r   r   r   r    test_compressed_input_gzip  s   r  c              
   C   s   d}t | d }t|d}|| W d    n1 sw   Y  z	t||d W d S  tyF } ztt | W Y d }~d S d }~ww )Nr  zcompressed_input_test.bz2rV   r   )r   r   BZ2Filer   r  NotImplementedErrorr   r   )r   r@   r  r   er   r   r    test_compressed_input_bz2  s   r  c                 C   sX  t ds
td d}t| d }t|d}|| W d    n1 s(w   Y  t	|d}|
 }| |ks@J W d    n1 sJw   Y  |jsTJ t	t|d}|
 }| |ksjJ W d    n1 stw   Y  |js~J t|d}t	|d}|
 }| |ksJ W d    n1 sw   Y  |jsJ d S )Nr  gzip support is not builtr  z!test_compressed_input_openfile.gzr   r|   )r	   r  r   r   r   r  r   r   r)   r  rj   r   r-   pathlibPath)r   r@   r  r   r  r0   r   r   r    test_compressed_input_openfile  s.   




r  c                 C   sT   t j|dd}t ||}| }|| ksJ W d    d S 1 s#w   Y  d S r  )r)   rS  r  r   )r@   r  r   r  r  r  r   r   r    check_compressed_concatenated  s
   "r  c                 C   s   d}t | d }t|d}||d d  W d    n1 s"w   Y  t|d}||dd   W d    n1 sAw   Y  t||d d S )Nr  zcompressed_input_test2.gzr   r<   rh  r  )r   r  r   r   r  r  r   r   r    !test_compressed_concatenated_gzip
  s   r  c               	   C   s   d} t | }tt t |d W d    n1 sw   Y  tt t |d  W d    n1 s8w   Y  t |d,}tjtdd |  W d    n1 sZw   Y  W d    d S W d    d S 1 srw   Y  d S )Ns   foofoofoofoofoofoofoofoofoofooZunknown_compressionr  zzlib inflate failedr'   )	r)   r   r   r#   r   r  r/   r\  r   )r@   r  r  r   r   r    test_compressed_input_invalid  s   

"r  c                 C   s   t  }t ||$}|jrJ | rJ | sJ | r"J ||  W d    n1 s1w   Y  |js;J |js@J t|d}||	  W d    d S 1 sXw   Y  d S )Nr   )
r)   r-  CompressedOutputStreamr-   r   r   rJ   r   r   r,   )r@   r  r   r  r  r   r   r   r    make_compressed_output#  s   


"r  c                 C   sb   d}t | d }t||d t|d}| }||ksJ W d    d S 1 s*w   Y  d S )Nr  zcompressed_output_test.gzr  r|   )r   r  r  r   r   )r   r@   r  r   r  r   r   r    test_compressed_output_gzip1  s   "r  c              
   C   s   d}t | d }zt||d W n ty) } ztt | W Y d }~nd }~ww t|d}| }||ks;J W d    d S 1 sFw   Y  d S )Nr  zcompressed_output_test.bz2r   r7   )r   r  r  r   r   r   r  r   )r   r@   r  r  r   r  r   r   r    test_compressed_output_bz2;  s   "r  c              	   C   s   t ds
td t| d d}|d W d    n1 s"w   Y  | d d,}t|d}|d W d    n1 sEw   Y  W d    d S W d    d S 1 s]w   Y  d S )Nr  r  zctor.gzs   testzctor2.gzr   )r	   r  r   r   r)   r  r   r   )r   rN   r   r   r   r    test_output_stream_constructorG  s   

"r  )r   expected_compression)zfile.bz2r   )zfile.lz4r  zfile.gzzpath/to/file.zstc                 C   sr   t |s$ttjj t |  W d    d S 1 sw   Y  d S t | }t|t s0J |j	|ks7J d S r"   )
r	   r  r   r#   r)   libArrowNotImplementedErrordetectru   r  )r   r  r
  r   r   r    test_compression_detectionQ  s   
"
r  c                   C   s   t t td W d    n1 sw   Y  t t td  W d    n1 s.w   Y  t t td W d    d S 1 sHw   Y  d S )Nunknown)r   r#   r   r	   r  r/   r   r   r   r    test_unknown_compression_raisesa  s   

"r  c                 C   s   t | std|  d}t }t|| }|| W d    n1 s)w   Y  |	 }t
|t
|k s<J t|}t|| }| }||ksRJ W d    d S 1 s]w   Y  d S )Nr  r  )r	   r  r   r   r  r)   r-  r  r   r,   r+   r   r  r   )r   r@   r  r  cdatar  r   r   r    test_compressed_roundtripj  s   

"r  )r   r  r  r  r  c                 C   s   t | std|  tjtg dgdg}t	 }t
|| }t||j}|j|dd |  |  | }tt|| }t| }||ksUJ d S )Nr  )rE   rI   rS   r:   r   r   rS   )Zmax_chunksize)r	   r  r   r   r  r)   Tabler;  r   r-  r  r<  r=  Zwrite_tabler.   r,   r  r   ZRecordBatchStreamReaderZread_all)r   tabler  rN   r   r0   Z	got_tabler   r   r    "test_compressed_recordbatch_stream  s   
r  u   Dès Noël où un zéphyr haï me vêt de glaçons würmiens je dîne d’exquis rôtis de bœuf au kir à l’aÿ d’âge mûr & cætera !c                 C   sh   t |}tt| |||}g }	 |t|}|| |s#nqd|}|	|| ks2J d S )NTrt   )
iterr)   transcoding_input_streamr   r|  r   nextrP  r   r9  )r@   src_encodingdest_encodingZchunk_sizesrN   outr0   r   r   r    check_transcoding  s   

r  zsrc_encoding, dest_encoding)rz  utf-16r  rz  )rz  z	utf-32-le)rz  z	utf-32-bec                 C   s.   t t| |ddg t t| |tg d d S )Nr   r   )rE   rI   rS   r   )r  unicode_transcoding_example	itertoolscycle)r  r  r   r   r    test_transcoding_input_stream  s   
r  )rz  rz  )rz  UTF8c                 C   s$   t d}t || ||u sJ d S )Ns   abc123)r)   r   r  r  r  rN   r   r   r    test_transcoding_no_ops  s   
r  )rz  ascii)rz  zlatin-1c                 C   sT   t t d| | |}tt |d W d    d S 1 s#w   Y  d S )Nu   ĀrE   )r)   r  r   r|  r   r#   UnicodeEncodeErrorr   r  r   r   r    test_transcoding_encoding_error  s   "r  r  r  c                 C   sN   t t d| |}tt |d W d    d S 1 s w   Y  d S )Ns   rE   )r)   r  r   r   r#   UnicodeErrorr   r  r   r   r    test_transcoding_decoding_error  s   "r  c                  C   s   d} t | t| fD ]}t |}| | ksJ qt| }t t|}| |ks/J t jt|dd}| | ks@J d S Nr  r  r   )r)   r   rg   input_streamr   r  r  )r@   argrN   gz_datar   r   r    test_input_stream_buffer  s   

r  c                  C   s0   G dd d} t |  }|ddksJ d S )Nc                   @   s*   e Zd Zdd Zedd ZdddZdS )	z1test_input_stream_duck_typing.<locals>.DuckReaderc                 S   r`   r"   r   ra   r   r   r    r.     rc   z7test_input_stream_duck_typing.<locals>.DuckReader.closec                 S   rd   re   r   ra   r   r   r    r-     rf   z8test_input_stream_duck_typing.<locals>.DuckReader.closedNc                 S   rd   )N   hellor   rh   r   r   r    r     rc   z6test_input_stream_duck_typing.<locals>.DuckReader.readr"   )rk   rl   rm   r.   rn   r-   r   r   r   r   r    ro     s
    
ro   r   r  )r)   r  r   )ro   rN   r   r   r    test_input_stream_duck_typing  s   r  c                 C   s   d}| d }t t|d}|| W d    n1 sw   Y  t|}| |ks/J tt|}| |ks>J ttt|}| |ksPJ d S )Nr  r  r   )r   r   r   r)   r  r   r  r  )r   r@   	file_pathr   rN   r   r   r    test_input_stream_file_path  s   
r  c                 C   s   d}t |}| d }tt|d}|| W d    n1 s"w   Y  t|}| |ks4J tt|}| |ksCJ tt	t|}| |ksUJ tj|dd}| |ksdJ tj|d d}| |kssJ d S )Nr  zinput_stream.gzr   r  r  
r  r  r   r   r   r)   r  r   r  r  r   r@   r  r  r   rN   r   r   r    &test_input_stream_file_path_compressed  s    

r  c                 C   sx  d}| d }t t|d}|| W d    n1 sw   Y  tj|dd}t|tjs1J | |ks9J tjt|dd}t|tjsJJ | |ksRJ tjt	t|dd}t|tjsfJ | |ksnJ tj|dd}t|tj
s}J d	}tjt|d
 tj|dd W d    n1 sw   Y  tt tj|dd W d    d S 1 sw   Y  d S )Nr  zinput_stream.bufferedr       r  r   r   r   $Buffer size must be larger than zeror'   rD   Zmillion)r   r   r   r)   r  ru   r  r   r  r  rS  r   r#   r   r/   )r   r@   r  r   rN   unbuffered_streammsgr   r   r    $test_input_stream_file_path_buffered0  s.   "r  c                 C   s   d}t |}| d }tt|d}|| W d    n1 s"w   Y  tj|ddd}| |ks7J tjt|dd}| |ksHJ tjt	t|d	d}| |ks\J d S )
N  some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
some test data
eof
z'input_stream_compressed_and_buffered.gzr   r  r  r  r   r   r  r   r  r  r   r   r    3test_input_stream_file_path_compressed_and_bufferedJ  s   
r  c                 C   s  d}t |}t|}| |ksJ t|}t |}t|}| |ks)J |d tj|dd}| |ks=J | d }tt|d}|	| W d    n1 sXw   Y  tt|d}t|}| |ksrJ W d    d S 1 s}w   Y  d S )Nr  r   r  r  r  r   r|   )
r   r)   r  r   r  r  r   r   r   r   )r   r@   r   rN   r  r  r   r   r   r    test_input_stream_python_fileZ  s&   




"r  c                  C   sZ   d} t | }t|}t|}||u sJ t|}tj|dd}| | ks+J d S r  )r  r  r)   r   r  r   )r@   r  r   rN   r   r   r    test_input_stream_native_filer  s   



r  c              	   C   s6  t d}tt tj|dd W d    n1 sw   Y  t t fD ]}tt t| W d    n1 s=w   Y  q&t	  td W d    n1 sVw   Y  t
t| d d-}tjtdd t| W d    n1 s|w   Y  W d    d S W d    d S 1 sw   Y  d S )	Nrt   rj  r  r  new_filer   zreadable file expectedr'   )rg   r   r#   r   r)   r  r[   r   r/   r%   r   r   )r   r0   r  r   r   r   r    test_input_stream_errors~  s&   "r  c                  C   sj   d} t t| }tt|}||  || ksJ t t| }tt|}||  || ks3J d S )Nr  )r[   r+   r)   output_streamr   r   rg   )r@   r0   rN   r   r   r    test_output_stream_buffer  s   

r  c                  C   sF   G dd d} |  }t |}|dsJ |j  dks!J d S )Nc                   @   s0   e Zd Zdd Zdd Zedd Zdd Zd	S )
z2test_output_stream_duck_typing.<locals>.DuckWriterc                 S   s   t  | _d S r"   )r)   r-  r0   ra   r   r   r    __init__  r4  z;test_output_stream_duck_typing.<locals>.DuckWriter.__init__c                 S   r`   r"   r   ra   r   r   r    r.     rc   z8test_output_stream_duck_typing.<locals>.DuckWriter.closec                 S   rd   re   r   ra   r   r   r    r-     rf   z9test_output_stream_duck_typing.<locals>.DuckWriter.closedc                 S   s   | j | d S r"   )r0   r   )rb   r@   r   r   r    r     r~   z8test_output_stream_duck_typing.<locals>.DuckWriter.writeN)rk   rl   rm   r  r.   rn   r-   r   r   r   r   r    
DuckWriter  s    
r  r  )r)   r  r   r0   r,   r   )r  Zduck_writerrN   r   r   r    test_output_stream_duck_typing  s
   
r  c                 C   sD   d}| d }dd }||| |t || |tt || d S )Nr  r  c                 S   sx   t | }|| W d    n1 sw   Y  tt| d}| |ks*J W d    d S 1 s5w   Y  d S r{   r)   r  r   r   r   r   )r  r@   rN   r   r   r   r    
check_data  s   "z0test_output_stream_file_path.<locals>.check_data)r   r  r  r   r@   r  r  r   r   r    test_output_stream_file_path  s   
r   c                 C   s   d}| d }dd }t ||||ksJ t |t|||ks$J t |tt|||ks5J t |||dd|ksCJ |||d d|ksNJ tjtdd |||d	d|ksaJ W d    d S 1 slw   Y  d S )
Nr  zoutput_stream.gzc                 [   v   t j| fi |}|| W d    n1 sw   Y  tt| d}| W  d    S 1 s4w   Y  d S r{   r  r  r@   kwargsrN   r   r   r   r    r       $z;test_output_stream_file_path_compressed.<locals>.check_datar  r  zInvalid value for compressionr'   rabbit)r  r  r   r  r  r   r#   r   r  r   r   r    'test_output_stream_file_path_compressed  s&   "r  c                 C   s   d}| d }dd }t j|dd}t|t jsJ d}tjt|d |||d	d|ks.J W d    n1 s8w   Y  |||d
d|ksHJ |||dd|ksSJ |t||d
d|ks`J |t	t||d
d}||ksrJ d S )Nr  output_stream.bufferedc                 [   s   t j| fi |}|dddkrt|t jsJ || W d    n1 s)w   Y  tt| d}| W  d    S 1 sDw   Y  d S )Nr  r   r|   )	r)   r  getru   r  r   r   r   r   r  r   r   r    r    s   $z9test_output_stream_file_path_buffered.<locals>.check_datar   r  r  r'   ir  r   )
r)   r  ru   rS  r   r#   r   r   r  r  )r   r@   r  r  r  r  r4   r   r   r    %test_output_stream_file_path_buffered  s   r	  c                 C   sz   d}| d }dd }|||dd}t ||ksJ |||dd}t ||ks*J |||ddd	}t ||ks;J d S )
Nr  z(output_stream_compressed_and_buffered.gzc                 [   r  r{   r  r  r   r   r    r    r  zHtest_output_stream_file_path_compressed_and_buffered.<locals>.check_datar  r  r   r  r  r  r  )r   r@   r  r  r4   r   r   r    4test_output_stream_file_path_compressed_and_buffered  s   r  c                 C   sD   d}| d }dd }|||dd|ksJ |||dd|ks J d S )Ns   some test data
r  c                 [   s`   t j| fi |}|| ~t  tt| d}| W  d    S 1 s)w   Y  d S r{   )r)   r  r   r   r   r   r   r   r  r   r   r    r    s   
$z1test_output_stream_destructor.<locals>.check_datar   r  r   r   r  r   r   r    test_output_stream_destructor	  s
   r  c                    s>   d} fdd}|||ksJ t ||dd|ksJ d S )Nr  c              	      s   t  d }t|d&}tj|fi |}||  W d    n1 s%w   Y  W d    n1 s4w   Y  t|d}| W  d    S 1 sMw   Y  d S )NZoutput_stream_filer   r|   )r   r   r)   r  r   r   )r@   r  r  r   rN   r   r   r    r     s   $z2test_output_stream_python_file.<locals>.check_datar  r  r
  )r   r@   r  r   r  r    test_output_stream_python_file  s   r  c              	   C   s6  t t }tt tj|dd W d    n1 sw   Y  t t fD ]}tt t| W d    n1 s>w   Y  q't	| d }t
|d}W d    n1 sZw   Y  t
|d-}tjtdd t| W d    n1 s|w   Y  W d    d S W d    d S 1 sw   Y  d S )Nrj  r  r  r   r|   zwritable file expectedr'   )rg   r[   r   r#   r   r)   r  r   r/   r   r   )r   r0   r  r  r   r   r   r    test_output_stream_errors/  s(   
"r  )T)r   
contextlibr   ior   r   r   r   r   r  r   r  r  r   r  r   r   r   r   numpyr   Zpyarrow.utilr   Zpyarrowr	   r)   r!   r%   r5   rB   markZparametrizerR   rW   rY   r_   rs   rw   rz   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   paramZxfailr  r  r  r%  r*  r+  r0  r2  r7  r:  r@  ZfixturerH  rL  rO  rR  rT  rV  rC  r_  rb  rc  rd  rf  rg  ri  rl  rn  rr  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  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r	  r  r  r  r  r   r   r   r    <module>   s  
	!*


30



O&
!)	?








	


	












