403Webshell
Server IP : 209.209.40.120  /  Your IP : 216.73.217.112
Web Server : Microsoft-IIS/10.0
System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586
User : NEWWWW$ ( 0)
PHP Version : 8.3.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python312/Lib/site-packages/pandas/tests/io/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python312/Lib/site-packages/pandas/tests/io/__pycache__/test_parquet.cpython-312.pyc
�

0	�g'����dZddlZddlmZddlmZddlZddlZddlZ	ddl
Z
ddlmZddl
mZddlmZddlmZmZmZddlZddlmZdd	lmZdd
lmZmZmZm Z m!Z!	ddl"Z"dZ#	ddl%Z%dZ&e
jNjQd
�e
jNjQd�gZ)e
jTe
jVde
jNjYe&xs
edd��dk(d����e
jVde
jNjYe#d����g��d��Z-e
jTd��Z.e
jTd��Z/e
jTd��Z0e
jTd��Z1e
jTd��Z2e
jTejjgejhjj�ejjgejhjl�ejjgejhjn�ejjqdd �ejjqd!d �ejjqd"d �ejjqd#d �g��d$��Z9									d8d%�Z:d&�Z;d'�Z<d(�Z=d)�Z>d*�Z?d+�Z@d,�ZAd-�ZBd.�ZCd/�ZDGd0�d1�ZEGd2�d3eE�ZFGd4�d5eE�ZGGd6�d7eE�ZHy#e$$rdZ#Y���wxYw#e$$rdZ&Y���wxYw)9z test parquet compat �N)�Decimal)�BytesIO)�using_copy_on_write)�_get_option)�is_platform_windows)�pa_version_under11p0�pa_version_under13p0�pa_version_under15p0)�Version)�FastParquetImpl�PyArrowImpl�
get_engine�read_parquet�
to_parquetTFz2ignore:DataFrame._data is deprecated:FutureWarningz=ignore:Passing a BlockManager to DataFrame:DeprecationWarning�fastparquet�mode.data_manager��silent�arrayz4fastparquet is not installed or ArrayManager is used��reason)�marks�pyarrow�pyarrow is not installed)�paramsc��|jS�N��param��requests �>C:\Python312\Lib\site-packages\pandas/tests/io/test_parquet.py�enginer#;s��&�=�=��c�:�tstjd�y)Nrr)�
_HAVE_PYARROW�pytest�skip�r$r"�par*Qs������.�/�r$c��tstjd�ytdd��dk(rtjd�y)Nzfastparquet is not installedrTrrz.ArrayManager is not supported with fastparquetr)�_HAVE_FASTPARQUETr'r(rr)r$r"�fpr-Xs9������2�3��
�(��	6�'�	A����D�E�r$c�6�tjgd�dd��S)N�����foo��A�B)�pd�	DataFramer)r$r"�	df_compatr9as��
�<�<�i�e�4�5�5r$c
���tjtd�ttdd��t	j
ddd��gd�tjd	d
��d��}|S)
N�abcr0��@�@�float64��dtype�TFT�20130101r2��periods)�a�b�d�e�f)r7r8�list�range�np�arange�
date_range)�dfs r"�df_cross_compatrQfsR��	����e���e�A�q�k�"����3��9�5�$����z�1�5�
	
�
�B��Ir$c���tjtd�dtjdggd�gd�gd�ttdd��tjd	d
�jd�tjdd
d��dtjdggd�tjdd	��tjd�tjtjd�gd��S)Nr;rF�c�rFNrS)�foo�barsbaz�r3�bar�bazr0r<r2��u1r=r>r?r@�@�@rBrCrD�20130103)�string�string_with_nan�string_with_none�bytes�unicode�int�uint�float�float_with_nan�bool�datetime�datetime_with_nat)r7r8rKrM�nanrLrN�astyperO�	Timestamp�NaTr)r$r"�df_fullroxs���
�<�<��5�k� #�R�V�V�S�1� 0�-�,���a���$��I�I�a��O�*�*�4�0��Y�Y�s�C�y�9�"�B�F�F�C�0�'��
�
�j�!�<����Z�(�������Z�(�"�	
��r$z2019-01-04T16:41:24+0200z%Y-%m-%dT%H:%M:%S%zz2019-01-04T16:41:24+0215z2019-01-04T16:41:24-0200z2019-01-04T16:41:24-0215c��|jSrrr s r"�timezone_aware_date_listrq�s���=�=�r$c
������������xsddi��xsi�����|r
|�d<|�d<��������fd�}
��&tj�5�|
|	�ddd�y|
|	�y#1swYyxYw)aVerify parquet serializer and deserializer produce the same results.

    Performs a pandas to disk and disk to pandas round trip,
    then compares the 2 resulting DataFrames to verify equality.

    Parameters
    ----------
    df: Dataframe
    engine: str, optional
        'pyarrow' or 'fastparquet'
    path: str, optional
    write_kwargs: dict of str:str, optional
    read_kwargs: dict of str:str, optional
    expected: DataFrame, optional
        Expected deserialization result, otherwise will be equal to `df`
    check_names: list of str, optional
        Closed set of column names to be compared
    check_like: bool, optional
        If True, ignore the order of index & columns.
    repeat: int, optional
        How many times to repeat the test
    �compressionNr#c���t|�D]N}�j�fi�
��t�fi�	��}d�vrd�jd<t	j
�|������Py)Nr`�r0r`)�check_names�
check_like�check_dtype)rLrr�loc�tm�assert_frame_equal)�repeat�_�actualrxrwrvrP�expected�path�read_kwargs�write_kwargss   ��������r"�comparez!check_round_trip.<locals>.compare�sl����v��	�A��B�M�M�$�/�,�/�!�$�6�+�6�F� �H�,�59����1�2��!�!���'�%�'�
�
	r$)rz�ensure_clean)rPr#r�r�r�rrvrwrxr|r�s` ```````  r"�check_round_tripr��s����D �8�M�4�#8�L��#��K�����
�!'��X�� &��H��
�
��|�
�_�_�
�	�$��F�O�	�	�	���	�	�s�		A$�$A-c��ddlm}|j|d��}|jjj|k(sJ�y)z�Check partitions of a parquet file are as expected.

    Parameters
    ----------
    path: str
        Path of the dataset.
    expected: iterable of str
        Expected partition names.
    rN�hive)�partitioning)�pyarrow.dataset�datasetr��schema�names)r�r�dsr�s    r"�check_partition_namesr��s9��!��j�j��F�j�3�G����&�&�,�,��8�8�8r$c��d}tjt|��5t|dd�ddd�y#1swYyxYw)Nz.engine must be one of 'pyarrow', 'fastparquet'��matchr3rX)r'�raises�
ValueErrorr�)r9�msgs  r"�test_invalid_enginer��s6��
:�C�	���z��	-�2���E�5�1�2�2�2�s�5�>c�p�tjdd�5t|�ddd�y#1swYyxYw)N�io.parquet.enginer�r7�option_contextr�)r9r*s  r"�test_options_pyr��s2��
�	�	�.�	�	:�$���#�$�$�$���,�5c�p�tjdd�5t|�ddd�y#1swYyxYw)Nr�rr�)r9r-s  r"�test_options_fpr��s2��
�	�	�.�
�	>�$���#�$�$�$�r�c�p�tjdd�5t|�ddd�y#1swYyxYw)Nr��autor�)r9r-r*s   r"�test_options_autor�s2��
�	�	�.��	7�$���#�$�$�$�r�c�^�ttd�t�sJ�ttd�t�sJ�t	j
dd�5ttd�t�sJ�ttd�t�sJ�ttd�t�sJ�	ddd�t	j
dd�5ttd�t�sJ�ttd�t�sJ�ttd�t�sJ�	ddd�t	j
dd�5ttd�t�sJ�ttd�t�sJ�ttd�t�sJ�	ddd�y#1swY��xYw#1swY��xYw#1swYyxYw)Nrrr�r�)�
isinstancerr
rr7r�)r-r*s  r"�test_options_get_enginer�sq���j��+�[�9�9�9��j��/��A�A�A�	�	�	�.�	�	:�F��*�V�,�k�:�:�:��*�Y�/��=�=�=��*�]�3�_�E�E�E�F�

�	�	�.�
�	>�F��*�V�,�o�>�>�>��*�Y�/��=�=�=��*�]�3�_�E�E�E�F�

�	�	�.��	7�F��*�V�,�k�:�:�:��*�Y�/��=�=�=��*�]�3�_�E�E�E�F�F�F�F��
F�F��
F�F�s'�
AF�>AF�/AF#�F�F �#F,c�D�ddlm}|jd�}|jd�}tsdn$t	t
j�t	|�k}tsdn$t	tj�t	|�k}txr|}txr|}|s�|s�|r6d|�d�}tjt|��5td	�ddd�n1d
}tjt|��5td	�ddd�|r6d|�d�}tjt|��5td	�ddd�yd}tjt|��5td	�ddd�yyy#1swY�uxYw#1swY��xYw#1swYyxYw#1swYyxYw)
Nr)�VERSIONSrrFzPandas requires version .z. or newer of .pyarrow.r�r�z%Missing optional dependency .pyarrow.z. or newer of .fastparquet.z)Missing optional dependency .fastparquet.)
�pandas.compat._optionalr��getr&rr�__version__r,rr'r��ImportErrorr)r��
pa_min_ver�
fp_min_ver�have_pa_bad_version�have_fp_bad_version�have_usable_pa�have_usable_fpr�s        r"�"test_get_engine_auto_error_messager� s���1����i�(�J����m�,�J��	�
�W�(�(�
)�G�J�,?�
?��!�	�
�[�,�,�
-��
�0C�
C��#�>�+>�'>�N�&�B�/B�+B�N��.��/�
�|�;R�S�E����{�%�8�
#��6�"�
#�
#�<�E����{�%�8�
#��6�"�
#��/�
�|�;V�W�E����{�%�8�
#��6�"�
#�
#�@�E����{�%�8�
#��6�"�
#�
#�##1�>�
#�
#��
#�
#��

#�
#��
#�
#�s0�E2�2E>�)F
�F�2E;�>F�
F�Fc��|}tj�5}|j||d��t||��}tj||�t||ddg��}tj||ddg�ddd�y#1swYyxYw�N)r#rs�r#rFrH)r#�columns�rzr�rrr{�rQr*r-rPr��results      r"�test_cross_engine_pa_fpr�Ks���
�B�	���	�6�d�
�
�
�d�2�4�
�8��d�2�.��
���f�b�)��d�2��S�z�B��
���f�b�#�s��n�5�6�6�6���A#B�Bc��|}tj�5}|j||d��t||��}tj||�t||ddg��}tj||ddg�ddd�y#1swYyxYwr�r�r�s      r"�test_cross_engine_fp_par�Ys���	�B�	���	�6�d�
�
�
�d�2�4�
�8��d�2�.��
���f�b�)��d�2��S�z�B��
���f�b�#�s��n�5�6�6�6�r�c��tjdgd�i�}d}tj�5}tjt
|dd��5|j
||�ddd�ddd�y#1swY�xYw#1swYyxYw)NrFr/zqStarting with pandas version 3.0 all arguments of to_parquet except for the argument 'path' will be keyword-only.F)r��check_stacklevel�raise_on_extra_warnings)r7r8rzr��assert_produces_warning�
FutureWarningr)r#rPr�r�s    r"�!test_parquet_pos_args_deprecationr�fs���	���s�I�&�	'�B�	1��
���	�(�d�
�
'�
'���"�$)�	
�	(�
�M�M�$��'�
	(�(�(�	(�	(��(�(�s#�A>�A2�!A>�2A;	�7A>�>Bc��eZdZd�Zd�Zejjejjd���Z	y)�Basec���tj�5}tj||��5t	|||d��ddd�ddd�y#1swY�xYw#1swYyxYw)Nr��rs)rzr�r'r�r)�selfrPr#�exc�err_msgr�s      r"�check_error_on_writezBase.check_error_on_writexsY��
�_�_�
�	?�$����s�'�2�
?��2�t�V��>�
?�	?�	?�
?�
?��	?�	?�s!�A�A�A�A	�A�A#c���tj�5}tj|�5t|||d��ddd�ddd�y#1swY�xYw#1swYyxYw)Nr�)rzr��external_error_raisedr)r�rPr#r�r�s     r"�check_external_error_on_writez"Base.check_external_error_on_write~sY��
�_�_�
�	?�$��)�)�#�.�
?��2�t�V��>�
?�	?�	?�
?�
?��	?�	?�s!�A�A�A�A	�A�A!c�$�|dk7rtj|�t|dddd�d��5}|j|j	���t|j�}ddd�tj|�y#1swY� xYw)	Nr��io�data�parquetzsimple.parquet�rb)�mode)�content)	r'�importorskip�open�
serve_content�readr�urlrzr{)r��
httpserver�datapathr9r#rJrPs       r"�test_parquet_read_from_urlzBase.test_parquet_read_from_url�s���V������'�
�(�4���4D�E�D�
Q�	.�UV��$�$�Q�V�V�X�$�6��j�n�n�-�B�	.�	���b�)�,�	.�	.�s�6B�BN)
�__name__�
__module__�__qualname__r�r�r'�mark�network�
single_cpur�r)r$r"r�r�ws<��?�?��[�[����[�[���-���-r$r�c���eZdZd�Zd�Zejjdgd��d��Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zd�Zejjdgd��d��Zy)�	TestBasicc���tjgd��ddtjd�tjgd��fD]}d}|j||t|��y)Nr/r0r3rCz+to_parquet only supports IO with DataFrames)r7�SeriesrmrMrr�r�)r�r#�objr�s    r"�
test_errorzTestBasic.test_error�s[���I�I�i� �
���L�L��$��H�H�Y��
�	D�C�@�C��%�%�c�6�:�s�C�	Dr$c	��tjtd�ttdd��d��}ddg|_t||�y)Nr;r0r<�r_rdr3rX)r7r8rKrLr�r�)r�r#rPs   r"�test_columns_dtypeszTestBasic.test_columns_dtypes�s;��
�\�\�T�%�[��e�A�q�k�9J�K�
L���U�^��
���V�$r$rs)N�gzip�snappy�brotlic�V�tjdgd�i�}t||d|i��y)Nr5r/rs�r��r7r8r�)r�r#rsrPs    r"�test_compressionzTestBasic.test_compression�s&��
�\�\�3�	�*�
+����V�=�+�2N�Or$c	���tjtd�ttdd��d��}tjdtd�i�}t	|||ddgi��y)Nr;r0r<r�r_r��rr��r7r8rKrLr�)r�r#rPrs    r"�test_read_columnszTestBasic.test_read_columns�sS��
�\�\�T�%�[��e�A�q�k�9J�K�
L���<�<��4��;� 7�8������	�H�:�7N�	
r$c
���tjttd��td�d��}tjdddgi�}t	||||ddgid	gdgd
�d��y)Nr<�aabb)rd�partrdrr0�partition_colsr�)r��==rF)�filtersr�)r�rr�r�r|r�)r�r#�tmp_pathrPrs     r"�test_read_filterszTestBasic.test_read_filters�sm��
�\�\��E�!�H�~��V��
�
���<�<���A���0�������*�V�H�5�%8�$9�u�g�N��	
r$c��|dk7}tjdgd�i�}t||�gd�tjdd��t	d�gd	�g}|D]Q}||_t
|tj�r |j
jd�|_t|||�
��Sgd�|_d|j
_	t||�y)
Nrr5r/)r1r2r<rCr2rDr;)r0r2r<)rv)rr0r1r3)
r7r8r�rOrK�indexr��
DatetimeIndex�
_with_freq�name)r�r#rvrP�indexesr�s      r"�test_write_indexzTestBasic.test_write_index�s����
�-��
�\�\�3�	�*�
+����V�$�
��M�M�*�a�0���K��	
���	B�E��B�H��%��!1�!1�2��8�8�.�.�t�4����R��[�A�		B��������
���V�$r$c��|}tjdgd�i�}tjjgd��}||_t||�y)Nr5r/�)rFr0)rFr1)rGr0)r7r8�
MultiIndex�from_tuplesr�r�)r�r*r#rPr�s     r"�test_write_multiindexzTestBasic.test_write_multiindex�s@����
�\�\�3�	�*�
+���
�
�)�)�*H�I�������V�$r$c	���|}tjddd��}tjtjjd�j
dt|�zdf�td���}tjjd	d
g|gddg�
�}|jd�
�}||fD]-}||_t||�t||dddgi|ddg���/y)Nz01-Jan-2018z01-Dec-2018�MS)�freqr1r2�ABC�r��Level1�Level2�level�date)r�r�r5r6�r�r)r7rOr8rM�random�default_rng�standard_normal�lenrKr�from_product�copyr�r�)r�r*r#�datesrP�index1�index2r�s        r"�test_multiindex_with_columnsz&TestBasic.test_multiindex_with_columns�s������
�
�m�]��F��
�\�\��I�I�!�!�!�$�4�4�a�#�e�*�n�a�5H�I���K�
�����+�+���
!�5�)�'�6�1B�,�
�����4��(���f�%�	�E��B�H��R��(���F��S�#�J�(?�"�c�SV�Z�.�
�		r$c���tjgd�gd�d��}ddd�}|jd��}t||||��tjgd�gd�d�gd	��
�}t||||��gd�gd�g}tjt	td
��td
�D�cgc]}|��c}d�|�
�}|jd��}t||||��ycc}w)Nr/)�q�r�s)rFrGF)rsr�T)�drop�r�r)�zyx�wvu�tsr�r��rXrXrYrYr3r3�quxr)��one�twor+r,r+r,r+r,�)r+r,)r7r8�reset_indexr�rKrL)r�r#rPr�r�arrays�is       r"�test_write_ignoring_indexz#TestBasic.test_write_ignoring_index�s����\�\�	��@�
A��'+�e�<���>�>�t�>�,����V�,��R��\�\��/�2�:O�
��	��V�,��R�
E�D�
���\�\���q��N��a��+A�1�Q�B�+A�B�&�
���>�>�t�>�,����V�,��R��	,Bs�)
C 
c�,�tjjgd��}tjtj
j
d�jd�|��}|dk(r|j||td�y|dk(r
t||�yy)Nrr1)r<r2rr�Column name must be a stringr)r7rrr8rMrrrr��	TypeErrorr�)r�r#�
mi_columnsrPs    r"�test_write_column_multiindexz&TestBasic.test_write_column_multiindexs���]�]�.�.�/M�N�
�
�\�\��I�I�!�!�!�$�4�4�V�<�j�
���]�"��%�%��F�I�'E�
��y�
 ��R��(�!r$c� �gd�gd�g}tjtjj	d�jd�|��}ddg|j_|dk(r|j||td	�y|d
k(r
t||�yy)Nr()r0r1r0r1r0r1r0r1r1�r-r-rrrrzColumn namer)r7r8rMrrrr�r�r�r�r��r�r#r/rPs    r"�&test_write_column_multiindex_nonstringz0TestBasic.test_write_column_multiindex_nonstring%s���

E�$�
���\�\��I�I�!�!�!�$�4�4�V�<�f�
��%�h�/��
�
���]�"��%�%�b�&�*�m�L�
�y�
 ��R��(�!r$c���|}gd�gd�g}tjtjj	d�jd�|��}ddg|j_t||�y)Nr(r*r1r8r�	ColLevel1�	ColLevel2)	r7r8rMrrrr�r�r��r�r*r#r/rPs     r"�#test_write_column_multiindex_stringz-TestBasic.test_write_column_multiindex_string6se����
E�D�
���\�\��I�I�!�!�!�$�4�4�V�<�f�
��(��5��
�
����V�$r$c���|}gd�}tjtjj	d�jd�|��}d|j_t||�y)N)rXrYr3r)r1�r-r<r�	StringCol)	r7r8rMrrrr�rr�r>s     r"�test_write_column_index_stringz(TestBasic.test_write_column_index_stringGsT����.��
�\�\��I�I�!�!�!�$�4�4�V�<�f�
��&��
�
����V�$r$c��gd�}tjtjj	d�jd�|��}d|j_|dk(r|j||td�yt||�y)N�r0r1r2r<r1rAr�NonStringColrr3)r7r8rMrrrr�rr�r4r�r9s    r"�!test_write_column_index_nonstringz+TestBasic.test_write_column_index_nonstringUso����
�\�\��I�I�!�!�!�$�4�4�V�<�f�
��)��
�
���]�"��%�%��F�I�'E�
�
�R��(r$c��tjd�}|dk(r1tjjd��}|j	|�tjtjgd�d�tjgd�d�tjgd��tjgd	��tjgd
�d�tjgd�d�tjgd�d
�d��}tj�5}|j||�t||��}t||d��}ddd�djtjd
�k(sJ�tjtjgd�d��tjgd�d��tjgd�d��tjgd	�d��tjgd
�d��tjgd�d��tjgd�d��d��}	|dk(r&j!dd��}|	j!dd��}	tj"|	�y#1swY��1xYw)Nzpyarrow.parquetrz.Fastparquet nullable dtype support is disabledr�r0r1r2N�int64�uint8)rFrGrSN)TFTNrE)��?r\r]N�float32r?)rFrGrSrHrIrJ�gr��numpy_nullable�r#�
dtype_backendrF�Int64r@�UInt8r_�boolean�Float32�Float64rSr0)�axis)r'r�r��xfail�applymarkerr�tablerrzr��write_tablerrArMr7r8r"r{)
r�r#r!�pqr�rZr��result1�result2rs
          r"�test_dtype_backendzTestBasic.test_dtype_backendes���
�
 �
 �!2�
3���]�"��;�;�$�$�G�%��D�
����%��
�
��]�]�?�G�<��]�]�?�G�<��]�]�#8�9��]�]�#<�=��]�]�<��9��]�]�#8�)�D��]�]�#8�)�D�

�
���_�_�
�	X�$��N�N�5�$�'�"�4��7�G�"�4��FV�W�G�		X��s�|�!�!�R�X�X�i�%8�8�8�8��<�<��X�X�o�W�=��X�X�o�W�=��X�X�3�8�D��X�X�7�y�I��X�X�l�'�:��X�X�3�9�E��X�X�3�9�E�
�

���]�"��l�l�3�Q�l�/�G��}�}�S�q�}�1�H�
���g�x�0�/	X�	X�s�.I2�2I<rA)	rRrSrT�objectzdatetime64[ns, UTC]rfz	period[D]rVr_c���tjdtjg|��i�}d}|dk(r,tjdtjgd��i�}t||ddi|��y)N�valuer@rfrVrQrOr)r7r8rr�)r�r*rArPrs     r"�test_read_empty_arrayzTestBasic.test_read_empty_array�sr�� �\�\�����"�E�2�
�
�����G���|�|��R�X�X�b�	�:���H�
	����2B� C�h�	
r$N)r�r�r�r�r�r'r��parametrizer�r�r�rr	rr1r6r:r?rCrGr_rcr)r$r"r�r��s���	D�%��[�[���]�,N�O�P�P�P�
�
�&%�0%��&S�@)�)�"%�"%�)� /1�b�[�[����
	
�
�
�
�
r$r�c� �eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	e
jje
�d�	�e
jjed
�	�e
jj!deej&g�d����Zd
�Ze
jj,d��Ze
jj,d��Ze
jj,e
jj!ddggg�d���Zd�Zd�Zd�Zd�Ze
jj!ded�gddg��d��Zd�Zd�Z d�Z!d�Z"d �Z#d!�Z$d"�Z%d#�Z&d$�Z'd%�Z(d&�Z)d'�Z*d(�Z+d)�Z,d*�Z-e
jje.d+�	�d,��Z/d-�Z0y.)/�TestParquetPyArrowc��|}tjddd��}|jd�}||d<gd�|d<t||�y)NrCr2�Europe/Brussels�rE�tz�datetime_tz�TNT�bool_with_none)r7rOrr�)r�r*rorP�dtis     r"�
test_basiczTestParquetPyArrow.test_basic�sI��
���m�m�J��6G�H���n�n�T�"����=��1������R� r$c�n�|}tjddd��|d<t|||ddgdddgi�	�y)
NrCr2rhrirkr_rdr�r�)r7rOr�)r�r*rorPs    r"�test_basic_subset_columnsz,TestParquetPyArrow.test_basic_subset_columns�sI�����M�M�*�a�DU�V��=�������5�)�*�"�X�u�$5�6�		
r$c���|j|��}t|t�sJ�t|�}t	|�}|j�}d|jd<tj||�y)Nr�ru)	rr�rbrrrryrzr{)r�r*ro�	buf_bytes�
buf_stream�resrs       r"�*test_to_bytes_without_path_or_buf_providedz=TestParquetPyArrow.test_to_bytes_without_path_or_buf_provided�sc���&�&�b�&�1�	��)�U�+�+�+��Y�'�
��:�&���<�<�>��-1����)�*�
���c�8�,r$c���tjtjd�j	dd�td���j
�}|j||td�y)N�r<r2�aaarzDuplicate column names found�	r7r8rMrN�reshaperKrr�r��r�r*rPs   r"�test_duplicate_columnsz)TestParquetPyArrow.test_duplicate_columns�sI��
�\�\�"�)�)�B�-�/�/��1�5�t�E�{�
K�
P�
P�
R���!�!�"�b�*�6T�Ur$c�t�tjdtjdd��i�}t||�y)NrF�1 dayr2rD)r7r8�timedelta_ranger�r|s   r"�test_timedeltaz!TestParquetPyArrow.test_timedelta�s,��
�\�\�3�� 2� 2�7�A� F�G�
H����R� r$c�x�tjdgd�i�}|j||tj�y)NrF�rFr0r\)r7r8r�r�ArrowExceptionr|s   r"�test_unsupportedz#TestParquetPyArrow.test_unsupported�s/��
�\�\�3�
�.�
/��	
�*�*�2�r�7�3I�3I�Jr$c���tjddtj��}tj|dg��}t
r"|j
||tj�yt||�y)Nr1�
r@�fp16�r�r�)
rMrN�float16r7r8r
r�rr�r�)r�r*r�rPs    r"�test_unsupported_float16z+TestParquetPyArrow.test_unsupported_float16�sQ���y�y��B�b�j�j�1��
�\�\�t�f�X�
6����.�.�r�2�w�7M�7M�N��R��$r$zqPyArrow does not cleanup of partial files dumps when unsupported dtypes are passed to_parquet function in windowsrzfloat16 works on 15�	path_typec��tjddtj��}tj|dg��}tj�5}||�}tjtj�5|j||��ddd�tjj|�rJ�	ddd�y#1swY�4xYw#1swYyxYw)Nr1r�r@r�r�)r�r#)rMrNr�r7r8rzr�r�rr�r�osr��isfile)r�r*r�r�rP�path_strr�s       r"� test_unsupported_float16_cleanupz3TestParquetPyArrow.test_unsupported_float16_cleanup�s����y�y��B�b�j�j�1��
�\�\�t�f�X�
6��
�_�_�
�	,�(��X�&�D��)�)�'�*@�*@�A�
4��
�
�4��
�3�
4��w�w�~�~�d�+�+�+�+�		,�	,�
4�
4��	,�	,�s$�,C�?C�)C�C	�C�Cc�&�tj�}tjtd��|d<tjgd�tjgd����|d<tjgd�gd�d	�
�|d<t||�y)N�abcdefrF)rXr3r3rXNrXrWr@rG)rFrGrSrFrSrG)rGrSrHT)�
categories�orderedrS)r7r8�CategoricalrK�CategoricalDtyper�r|s   r"�test_categoricalz#TestParquetPyArrow.test_categoricalsq��
�\�\�^���.�.��h��0��3���.�.�5��%�%�&;�<�
��3���.�.�*��PT�
��3��	��R� r$c��tjd�}|jdi|��}d|i}t|||j�d�||��y)N�s3fs�
filesystem�/pyarrow.parquet�r�r�r�r))r'r��S3FileSystemr�r)r�r9�s3_public_bucketr*�s3sor��s3�kws        r"�test_s3_roundtrip_explicit_fsz0TestParquetPyArrow.test_s3_roundtrip_explicit_fs sW���"�"�6�*��
�T�
�
�
&��
&���B�
�����$�)�)�*�*:�;���	
r$c�H�d|i}t||d|j�d�||��y)N�storage_options�s3://r�r��r�r)r�r9r�r*r�s     r"�test_s3_roundtripz$TestParquetPyArrow.test_s3_roundtrip-s7��"�4�(������)�.�.�/�/?�@���	
r$�
partition_colr5c�8�tjd�|j�}|rL|jtj|tj��}d}||j|�||<t|||d|j�d�d|i|d|d�dd�	�y)
Nr��categoryr�z/parquet_dirr�)r�rsr�Tr0)rr�r�r�rwr|)
r'r�rrl�dict�fromkeysrM�int32r�r)r�r9r�r*r�r��expected_df�partition_col_types        r"�test_s3_roundtrip_for_dirz,TestParquetPyArrow.test_s3_roundtrip_for_dir9s���	���F�#��n�n�&���%�,�,�T�]�]�=�"�(�(�-S�T�K�!+��)4�]�)C�)J�)J�"�*�K�
�&�	��� ��)�.�.�/�|�<�*�D�1�"/�#�#'��
��
	
r$c��tjd�t�}|j|�t	|�}tj||�y)Nr)r'r�rrrrzr{)r�r9�buffer�df_from_bufs    r"�test_read_file_like_obj_supportz2TestParquetPyArrow.test_read_file_like_obj_support`s?�����I�&�������V�$�"�6�*��
���i��5r$c�n�tjd�|jdd�|jdd�tjtd��5td�ddd�tjtd��5|j
d�ddd�y#1swY�?xYw#1swYyxYw)Nr�HOME�TestingUser�USERPROFILEz.*TestingUser.*r�z~/file.parquet)r'r��setenvr��OSErrorrr)r�r9�monkeypatchs   r"�test_expand_userz#TestParquetPyArrow.test_expand_usergs������I�&����6�=�1����=�-�8�
�]�]�7�*<�
=�	+��)�*�	+�
�]�]�7�*<�
=�	3�� � �!1�2�	3�	3�	+�	+��	3�	3�s�B�B+�B(�+B4c��ddg}|}|j||d��t||�t|�j|jk(sJ�y)Nrhrd�r�rs�rr�r�shape)r�r�r*ror�rPs      r"�test_partition_cols_supportedz0TestParquetPyArrow.test_partition_cols_supportedpsI�� �%���
��
�
�
�h�~�4�
�P��h��7��H�%�+�+�r�x�x�7�7�7r$c��d}|g}|}|j||d��t||�t|�j|jk(sJ�y)Nrhr�r�)r�r�r*ror��partition_cols_listrPs       r"�test_partition_cols_stringz-TestParquetPyArrow.test_partition_cols_stringxsO����-�.��
��
�
�
�h�~�4�
�P��h�(;�<��H�%�+�+�r�x�x�7�7�7r$c��|Srr))�xs r"�<lambda>zTestParquetPyArrow.<lambda>�s��Q�r$r_zpathlib.Path)�idsc��d}|g}|}||�}|j||��t|�j|jk(sJ�y)Nr6)r�)rrr�)	r�r�r*r9r�r�r�rPr�s	         r"�test_partition_cols_pathlibz.TestParquetPyArrow.test_partition_cols_pathlib�sO����-�.��
����"��
�
�
�d�+>�
�?��D�!�'�'�2�8�8�3�3�3r$c�J�tjgg��}t||�y)N)r�r�r�r|s   r"�test_empty_dataframez'TestParquetPyArrow.test_empty_dataframe�s��
�\�\��B�
/����R� r$c���ddl}tjdddgi�}|j|jd|j
���g�}|j
t�}t||d|i|��y)Nrr�r0)�typer�r#)	rr7r8r��field�bool_rlrhr�)r�r*rrPr��out_dfs      r"�test_write_with_schemaz)TestParquetPyArrow.test_write_with_schema�sc���
�\�\�3��A��-�
(����������s������!I� J�K�����4�����R�x��.@�6�Rr$c�v�tjd�tjtjgd�d��tjgd�d��tjgd�d��d��}t||�tjd	tjgd
�d��i�}t||�y)Nrr/rRr@�UInt32rTr_�rFrGrSrFrI)r'r�r7r8r�r�r|s   r"� test_additional_extension_arraysz3TestParquetPyArrow.test_additional_extension_arrays�s���	���I�&�
�\�\��Y�Y�y��8��Y�Y�y��9��Y�Y�/�x�@�
�
��	��R� �
�\�\�3��	�	�/�� I�J�
K����R� r$c
�"�tjd�tjdtjgd�d��i�}tj
d|�5t
|||jd|�d���	�ddd�y#1swYyxYw)
NrrFrT�string[pyarrow]r@�string_storagezstring[�]�r)r'r�r7r8r�r�r�rl)r�r*r�rPs    r"� test_pyarrow_backed_string_arrayz3TestParquetPyArrow.test_pyarrow_backed_string_array�sz�����I�&�
�\�\�3��	�	�*:�BS� T�U�
V��
�
�
�/��
@�	V��R��b�i�i�'�.�AQ�QR�8S�.T�U�	V�	V�	V�s�"B�Bc�H�tjd�tjtjjgd��tjddd��tjjtjddd���d��}t||�y)	Nr))rr0)r0r1)r2r<z
2012-01-01r2�D)rErr<)rSrHrI)
r'r�r7r8�
IntervalIndexr�period_range�from_breaksrOr�r|s   r"�test_additional_extension_typesz2TestParquetPyArrow.test_additional_extension_types�sz��	���I�&�
�\�\��%�%�1�1�2J�K��_�_�\�1�3�G��%�%�1�1��M�M�,���D��	
�	
��	��R� r$c��d}tjdtjddd��i�}t||d|i��y)	Nz2.6rFz
2017-01-01�1nsr��rrE�versionr�)r7r8rOr�)r�r*�verrPs    r"�test_timestamp_nanosecondsz-TestParquetPyArrow.test_timestamp_nanoseconds�s;����
�\�\�3��
�
�l��PR� S�T�
U����R�y�#�.>�?r$c�
�|jtjjk7r/|j	t
jjd���d|gz}tj|d|i��}t||d��y)Nzitemporary skip this test until it is properly resolved: https://github.com/pandas-dev/pandas/issues/37286r��index_as_col�r�r�F)rx)�tzinfori�timezone�utcrYr'r�rXr7r8r�)r�r!r*rq�idxrPs      r"�test_timezone_aware_indexz,TestParquetPyArrow.test_timezone_aware_index�sz��#�*�*�h�.?�.?�.C�.C�C�������!�!�H�"��
��+�,�,��
�\�\��>�3�*?�
@��	��R�U�3r$c�6�tjd�tjdt	td��i�}t
j�5}|j||��t||dg��}ddd�t�dk(sJ�y#1swY�xYw)NrrFr2r��rFr�r�r�r0)r'r�r7r8rKrLrzr�rrr)r�r*rPr�r�s     r"�test_filter_row_groupsz)TestParquetPyArrow.test_filter_row_groups�s������I�&�
�\�\�3��U�1�X��/�
0��
�_�_�
�	F�$��M�M�$�r�M�*�!�$��^�4D�E�F�	F��6�{�a����	F�	F�s�#B�Bc��tjtjj	d�jd�gd���}t
j�5}|j||��t||�}ddd�|r;tjtjjj�sJ�ytjtjjj�sJ�y#1swY��xYw)Nr1)r�r2)r5r6�Crr�)r7r8rMrrrrzr�rrr��_mgr�core�	internals�ArrayManager�BlockManager)r�r*�using_array_managerrPr�r�s      r"�test_read_parquet_managerz,TestParquetPyArrow.test_read_parquet_manager�s���
�\�\��I�I�!�!�!�$�4�4�W�=��
���_�_�
�	,�$��M�M�$�r�M�*�!�$��+�F�	,���f�k�k�2�7�7�+<�+<�+I�+I�J�J�J��f�k�k�2�7�7�+<�+<�+I�+I�J�J�J�
	,�	,�s� C:�:Dc���ddl}|}tjddd��}|jd�}||d<gd�|d<|jj|�}|j
tj�	�}trj|d
jd�|d
<|djd�|d<|djtj|jd
d����|d<t||ddi|��y)NrrCr2rhrirkrlrm)�types_mapperriztimestamp[us][pyarrow]rj�us)�unitrjrQr�r#r�r)rr7rOr�Table�from_pandas�	to_pandas�
ArrowDtyper	rl�	timestampr�)r�r*rorrPrn�pa_tablers        r"�&test_read_dtype_backend_pyarrow_configz9TestParquetPyArrow.test_read_dtype_backend_pyarrow_config�s����
���m�m�J��6G�H���n�n�T�"����=��1�����=�=�,�,�R�0���%�%�2�=�=�%�A���#+�J�#7�#>�#>�?W�#X�H�Z� �,4�5H�,I�,P�,P�(�-�H�(�)�'/�}�&=�&D�&D��
�
�/�g�/�/�T�>O�P�Q�'�H�]�#�	���(�)�4��		
r$c�6�tjdddgitjddgd��d�	�}|j�}d
dl}t|j�td�kDr |jjd�|_t||dd
i|��y)NrFr0r1r2r<�test�rzint64[pyarrow])r�rArz11.0.0rQrr)
r7r8�Indexrrrr�r�rlr�)r�r*rPrrs     r"�,test_read_dtype_backend_pyarrow_config_indexz?TestParquetPyArrow.test_read_dtype_backend_pyarrow_config_indexs���
�\�\�
�1�a�&�M����1�a�&�v�!>�FV�
���7�7�9����7�&�&�'�'�(�*;�;�%�^�^�2�2�3C�D�H�N����(�)�4��		
r$c	��tjtd�ttdd��d��}ddg|_t||�ddg|_t
jtd�	�5t||�ddd�tjd
dddd�tjd
dddd�g|_t||�y#1swY�MxYw)Nr;r0r<r�rrUrVz|S3r���)
r7r8rKrLr�r�r'r��NotImplementedErrorrir|s   r"�test_columns_dtypes_not_invalidz2TestParquetPyArrow.test_columns_dtypes_not_invalid&s���
�\�\�T�%�[��e�A�q�k�9J�K�
L����V��
���R� ��f�%��
�
�]�]�.�e�
<�	%��R��$�	%�
���d�A�q�!�Q�/����d�A�q�!�Q�/�
��
�	��R� �	%�	%�s�.
C�Cc�v�tjtjgd�d����}t||�y)Nr��custom namerr'�r7r8rr�r|s   r"�test_empty_columnsz%TestParquetPyArrow.test_empty_columns:s%��
�\�\�����}� M�
N����R� r$c���|dz}tjddgi��}ddi|_|j||��t	||��}|j|jk(sJ�y)Nztest_df_metadata.pr0�r��test_attributer�)r7r8�attrsrr)r�r�r*r�rP�new_dfs      r"�test_df_attrs_persistencez,TestParquetPyArrow.test_df_attrs_persistence?s_���.�.��
�\�\��A�3�x�
(��$�a�(���
�
�
�d�2�
�&��d�2�.���|�|�r�x�x�'�'�'r$c�p�|dz}tjdddgiddg��}|j|d��tjd	d
�5t	|d��}ddd�tjdddgidtj
ddgd���
�}t
j|�y#1swY�SxYw)Nztest_string_inference.prFr��yrG)r�r�rr��future.infer_stringT�string[pyarrow_numpy]r@)r�rAr�)r7r8rr�rrrzr{�r�r�r*r�rPr�rs       r"�test_string_inferencez(TestParquetPyArrow.test_string_inferenceGs����3�3��
�\�\��c�3�Z�0��c�
�
C��
�
�
�d�9�
�-�
�
�
�4�d�
;�	:�!�$�y�9�F�	:��<�<���S�z�"�)��(�(�C��:�-D�E�
��
	���f�h�/�	:�	:�s�B,�,B5znot supported before 11.0c	�:�ddl}|dz}tjdtd�gid��}|j	||jd|j
d�fg���t|�}tjdd	gid
��}tj||�y)Nrz	decimal.prFz123.00r�r@r�)r��123zstring[python])
rr7r8rrr��
decimal128rrzr{r#s       r"�test_roundtrip_decimalz)TestParquetPyArrow.test_roundtrip_decimalUs���	��+�%��
�\�\�3���!2� 3�4�<M�
N��
�
�
�d�2�9�9�s�B�M�M�!�4D�.E�-F�#G�
�H��d�#���<�<��u�g��6F�G��
���f�h�/r$c��ddl}ddlm}|dz}|jd|j	gd�|j��i�}|j
||�tjdd�5t|�}ddd�tjdgd�idtjdgd���	�}tj|�y#1swY�RxYw)
Nrzlarge_string.prF)NrGrSr!Tr"r@)r�rAr�)r�pyarrow.parquetr�rZr�large_stringr[r7r�rr8rrzr{)r�r�r*r\r�rZr�rs        r"�#test_infer_string_large_string_typez6TestParquetPyArrow.test_infer_string_large_string_typeas����$��*�*�����#�r�x�x�(8�"�/�/�:K�L�M�N��
���u�d�#�
�
�
�4�d�
;�	(�!�$�'�F�	(��<�<��'�(�)��H�H�c�U�*A�B�
��
	���f�h�/�	(�	(�s�+C�CN)1r�r�r�rorqrvr}r�r�r�r'r�rXr�skipifr
rd�str�pathlib�Pathr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrr$rr(r,r)r$r"rfrf�s���	!�
�
-�V�
!�K�%��[�[�����
?����[�[���0�0�9N��O��[�[���[�3����*=�>�,�?�P��,�!�$�[�[���

��

��[�[���	
��	
��[�[����[�[����
�E��	
��
���
�>6�3�8�8��[�[����c�;�'�h��-G���	4��	4�!�
S�!� V�!� @�4�, �K�
�<
� !�(!�
(�0��[�[���,�5P��Q�	0�R�	0�0r$rfc�B�eZdZd�Zd�Zd�Zejje	e
j�e	d�k\d��d��Zd�Z
d	�Zd
�Zejj d��Zd�Zd
�Zd�Zd�Zejj-e�d��d��Zejjexre	ej�e	d�kDd��d��Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"ejj-e�d��d��Z#y)�TestParquetFastParquetc��|}tjddd��}|jd�}||d<tjdd��|d<t	||�y)	NrCr2z
US/EasternrirkrrD�	timedelta)r7rOrr�r�)r�r-rorPrns     r"roz!TestParquetFastParquet.test_basic�sQ��
���m�m�J��l�C���n�n�T�"����=���,�,�W�a�@��;����R� r$c	��tjtd�ttdd��d��}t}d}ddg|_|j
||||�ddg|_|j
||||�tjd	dddd�tjd	dddd�g|_|j
||||�y)
Nr;r0r<r�r3rrUrVr)r7r8rKrLr4r�r�ri)r�r-rP�errr�s     r"�test_columns_dtypes_invalidz2TestParquetFastParquet.test_columns_dtypes_invalid�s���
�\�\�T�%�[��e�A�q�k�9J�K�
L����,����V��
��!�!�"�b�#�s�3��f�%��
��!�!�"�b�#�s�3�
���d�A�q�!�Q�/����d�A�q�!�Q�/�
��
�	
�!�!�"�b�#�s�3r$c���tjtjd�j	dd�td���j
�}d}|j||t|�y)Nrxr<r2ryrz9Cannot create parquet dataset with duplicate column namesrz�r�r-rPr�s    r"r}z-TestParquetFastParquet.test_duplicate_columns�sM��
�\�\�"�)�)�B�-�/�/��1�5�t�E�{�
K�
P�
P�
R��I���!�!�"�b�*�c�:r$z2.0.0z$fastparquet uses np.float_ in numpy2rc��tjdgd�i�}tjddtjdgid��}t	|||d��y)	NrF)TNFrLgr�r@F)rrx)r7r8rMrkr��r�r-rPrs    r"�test_bool_with_nonez*TestParquetFastParquet.test_bool_with_none�sH��
�\�\�3� 3�4�
5���<�<��s�B�F�F�C�&8� 9��K��	��R�(��Fr$c���tjdtjddd��i�}|j||td�tjdgd�i�}d}|j||t|�y)NrF�2013�Mr2r�r�z"Can't infer object conversion type)r7r8r�r�r�r9s    r"r�z'TestParquetFastParquet.test_unsupported�sd��
�\�\�3�����S�!� L�M�
N���!�!�"�b�*�d�;��\�\�3�
�.�
/��2���!�!�"�b�*�c�:r$c��tjdtjtd��i�}t	||�y)NrFr;)r7r8r�rKr�)r�r-rPs   r"r�z'TestParquetFastParquet.test_categorical�s,��
�\�\�3����t�E�{� ;�<�
=����R� r$c��dttd��i}tj|�}t	j
�5}|j
||dd��t||dg��}ddd�t�dk(sJ�y#1swY�xYw)NrFr2r0)r#rs�row_group_offsetsr�r�)	rKrLr7r8rzr�rrr)r�r-rHrPr�r�s      r"r�z-TestParquetFastParquet.test_filter_row_groups�s��
�$�u�Q�x�.�!��
�\�\�!�_��
�_�_�
�	F�$��M�M�$�r�t�q�M�Q�!�$��^�4D�E�F�	F��6�{�a����	F�	F�s�%A>�>Bc	�J�t||d|j�d�d|id|d���y)Nr�z/fastparquet.parquetr�)rsr�r�r�)r�r9r�r-r�s     r"r�z(TestParquetFastParquet.test_s3_roundtrip�s7��	����)�.�.�/�/C�D�*�D�1�)-�$�G�	
r$c���ddg}|}|j|d|d��tjj|�sJ�ddl}|j
t
|�d�j}t|�dk(sJ�y)Nrhrdr�r#r�rsrFr1�	rr�r��existsr�ParquetFiler.�catsr�r�r�r-ror�rPr�actual_partition_colss        r"r�z4TestParquetFastParquet.test_partition_cols_supported�s{�� �%���
��
�
�
�� �)��		�	
��w�w�~�~�h�'�'�'�� 7�� 7� 7��H�
�u� M� R� R���(�)�Q�.�.�.r$c���d}|}|j|d|d��tjj|�sJ�ddl}|j
t
|�d�j}t|�dk(sJ�y)NrhrrErFr0rFrJs        r"r�z1TestParquetFastParquet.test_partition_cols_string�sw����
��
�
�
�� �)��		�	
��w�w�~�~�h�'�'�'�� 7�� 7� 7��H�
�u� M� R� R���(�)�Q�.�.�.r$c���ddg}|}|j|dd|��tjj|�sJ�ddl}|j
t
|�d�j}t|�dk(sJ�y)Nrhrdr)r#rs�partition_onrFr1rFrJs        r"�test_partition_on_supportedz2TestParquetFastParquet.test_partition_on_supported�s{�� �%���
��
�
�
�� ��'�		�	
��w�w�~�~�h�'�'�'�� 7�� 7� 7��H�
�u� M� R� R���(�)�Q�.�.�.r$c��ddg}|}d}tjt|��5|j|dd||��ddd�y#1swYyxYw)NrhrdzYCannot use both partition_on and partition_cols. Use partition_cols for partitioning datar�r)r#rsrNr�)r'r�r�r)r�r�r-ror�rPr�s       r"�3test_error_on_using_partition_cols_and_partition_onzJTestParquetFastParquet.test_error_on_using_partition_cols_and_partition_onsa��!�%���
��
 �	��]�]�:�S�
1�	��M�M��$� �+�-�
�
�	�	�	�s�A�A
zfastparquet writes into Indexc�h�tj�}|j�}t|||��y)Nr�)r7r8rr�r;s    r"r�z+TestParquetFastParquet.test_empty_dataframes&���\�\�^���7�7�9����R�(�3r$z2022.12zCfastparquet bug, see https://github.com/dask/fastparquet/issues/929c��d|gz}tj|d|i��}|j�}d|j_t|||��y)Nr�r�r�r�r�)r7r8rr�rr�)r�r-rqr�rPrs      r"r�z0TestParquetFastParquet.test_timezone_aware_indexsJ��
�+�,�,��
�\�\��>�3�*?�
@���7�7�9��%�������R�(�3r$c��tjdddgi�}tj�5}|j	|�tjtd��5tjt�5t|dd��ddd�ddd�tjtd��5t|dd	�
�ddd�ddd�y#1swY�LxYw#1swY�PxYw#1swY�*xYw#1swYyxYw)NrFr0r1z!not supported for the fastparquetr�rT)r#�use_nullable_dtypesrrP)r7r8rzr�rr'r�r�r�r�r)r�r-rPr�s    r"�&test_use_nullable_dtypes_not_supportedz=TestParquetFastParquet.test_use_nullable_dtypes_not_supported*s���
�\�\�3��A��-�
(��
�_�_�
�	R�$��M�M�$�����z�1T�U�
W��/�/�
�>�W� ��m�QU�V�W�
W����z�1T�U�
R��T�-�y�Q�
R�	R�	R�W�W��
W�
W��
R�
R��	R�	R�sS�-C3�C�5C�C�#C3�/C'�>C3�C�C�C$	� C3�'C0	�,C3�3C<c�d�tjd�5}tj|�j	d�tjtd��5t|d��ddd�tj|�jd��ddd�y#1swY�7xYw#1swYyxYw)	N�test.parquetsbreakit�r�rr�F)�
missing_ok)
rzr�r/r0�write_bytesr'r��	Exceptionr�unlink)r�r�s  r"�$test_close_file_handle_on_read_errorz;TestParquetFastParquet.test_close_file_handle_on_read_error5s���
�_�_�^�
,�	8���L�L���*�*�:�6����y��3�
9��T�-�8�
9�
�L�L���%�%��%�7�	8�	8�
9�
9��	8�	8�s$�AB&�B�$-B&�B#	�B&�&B/c�X�tjddgddgd���}tjd�5}t	|j�d�5}|j
|�ddd�t||��}ddd�tj|�y#1swY�5xYw#1swY�,xYw)Nrr0r4rrX�wbr�)	r7r8rzr�r��encoderrr{)r�r#rPr�rJr�s      r"�test_bytes_file_namez+TestParquetFastParquet.test_bytes_file_name=s���
�\�\�a��V�1�a�&�9�
:��
�_�_�^�
,�	7���d�k�k�m�T�*�
!�a��
�
�a� �
!�"�$�v�6�F�		7�
	���f�b�)�	
!�
!��	7�	7�s#�B �B� B �B	�B � B)c�X�tjd�tjddgddgd���}t	j
�5}tjtd��5|j|dd�	�ddd�ddd�t	j
�5}tj|�jd
�tjtd��5t|dd�	�ddd�ddd�y#1swY��xYw#1swY��xYw#1swY�*xYw#1swYyxYw)Nrrr0r4rzfilesystem is not implementedr�r3�r#r�rU)
r'r�r7r8rzr�r�rrr/r0r[r�r�rPr�s   r"�test_filesystem_notimplementedz5TestParquetFastParquet.test_filesystem_notimplementedGs�����M�*�
�\�\�a��V�1�a�&�9�
:��
�_�_�
�	L�$����#�+J��
L��
�
�d�=�U�
�K�
L�	L��_�_�
�	K�$��L�L���*�*�6�2����#�+J��
K��T�-�E�J�
K�	K�	K�
L�
L��	L�	L��
K�
K��	K�	K��I�D�#C<�8D�AD �D�+D �<D	�D�D�D	�D � D)c�X�tjd�tjddgddgd���}t	j
�5}tjtd��5|j|dd�	�ddd�ddd�t	j
�5}tj|�jd
�tjtd��5t|dd�	�ddd�ddd�y#1swY��xYw#1swY��xYw#1swY�*xYw#1swYyxYw)Nrrr0r4rz1filesystem must be a pyarrow or fsspec FileSystemr�r3rdrU)
r'r�r7r8rzr�r�r�rr/r0r[rres   r"�test_invalid_filesystemz.TestParquetFastParquet.test_invalid_filesystemWs�����I�&�
�\�\�a��V�1�a�&�9�
:��
�_�_�
�	H�$�����"U��
H��
�
�d�9��
�G�
H�	H��_�_�
�	G�$��L�L���*�*�6�2�����"U��
G��T�)��F�
G�	G�	G�
H�
H��	H�	H��
G�
G��	G�	G�rgc	��tjd�}tjddgddgd���}t	j
�5}tjtd��5|j|d|j�d	d
i��ddd�ddd�t	j
�5}tj|�jd�tjtd��5t|d|j�d	d
i��ddd�ddd�y#1swY��xYw#1swY��xYw#1swY�*xYw#1swYyxYw)
Nz
pyarrow.fsrr0r4rz8storage_options not supported with a pyarrow FileSystem.r�rr3rX)r#r�r�rU)r'r�r7r8rzr�r�rr�LocalFileSystemr/r0r[r)r��pa_fsrPr�s    r"�.test_unsupported_pa_filesystem_storage_optionszETestParquetFastParquet.test_unsupported_pa_filesystem_storage_optionsgs*���#�#�L�1��
�\�\�a��V�1�a�&�9�
:��
�_�_�
�
	�$����#�P��	
��
�
��$�$�4�4�6�%*�E�N�	��		
�
	��_�_�
�	�$��L�L���*�*�6�2����#�P��	
���$�$�4�4�6�%*�E�N�	�		
�	�	�	
�	
��
	�
	��	
�	
��	�	�sI�D*�#&D�	D*�-AE�- D6�
E�D'	�#D*�*D3�6D?	�;E�Ec	�L�d}tjdttdd��i�}t	j
d�5}|j
|�tjt|��5t|d��ddd�ddd�y#1swY�xYw#1swYyxYw)	NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.rdr0r<ztmp.parquetr��numpy)rQ)r7r8rKrLrzr�rr'r�r�r)r�r#r�rPr�s     r"�test_invalid_dtype_backendz1TestParquetFastParquet.test_invalid_dtype_backend�s���
%�	��\�\�5�$�u�Q��{�"3�4�
5��
�_�_�]�
+�	:�t��M�M�$�����z��5�
:��T��9�
:�	:�	:�
:�
:��	:�	:�s$�-B�/B�=B�B	�B�B#c���tjtjgd�d����}tjtjgd�d����}t|||��y)Nr�rrr'r�rr;s    r"rz)TestParquetFastParquet.test_empty_columns�sB���\�\�����}� M�
N���<�<�b�h�h��]�&S�T����R�(�3r$N)$r�r�r�ror7r}r'r�rXrrMr�r<r�r�r�r�r�r�r�rOrQr-rr�r,rr�rVr^rbrfrirmrprr)r$r"r2r2�s_��!�4�*;��[�[��������7�7�#3�3�5���G�	�G�	;�!� ��[�[���
��
�/� /� /� �&�[�[���+�-�6U��V�4�W�4��[�[����S�g�k�&=�&=�>���AS�S�T���4�	�4�	R�8�*�K� G� �8	:��[�[���+�-�6U��V�4�W�4r$r2)	NNNNNTFTr1)I�__doc__ri�decimalrr�rr�r/rorMr'�pandas._configr�pandas._config.configr�
pandas.compatr�pandas.compat.pyarrowrr	r
�pandasr7�pandas._testing�_testingrz�pandas.util.versionr�pandas.io.parquetrr
rrrrr&r�rr,r��filterwarnings�
pytestmark�fixturerr-r#r*r-r9rQro�nowr�r��min�max�strptimerqr�r�r�r�r�r�r�r�r�r�r�r�r�rfr2r)r$r"�<module>r�sE������	���
�.�-�-�����'������M������K�K���S�T�
�K�K���G���
�����������+�+�$�$�%�%�L��2�4�@�G�K�M�%��	
�	������+�+�$�$�!�!�*D�%��	
���$�%�$����������������6��6�������"������.���������h�/�/�3�3�4������h�/�/�3�3�4������h�/�/�3�3�4����"�"�#=�?T�U����"�"�#=�?T�U����"�"�#=�?T�U����"�"�#=�?T�U��
��
���	
���
�����?�D
9� 2�$�$�$�F�((#�V6�
6�(�"-�-�0f
��f
�R	z0��z0�RR4�T�R4��y"���M��������s$�K'�%K5�'K2�1K2�5L�?L

Youez - 2016 - github.com/yon3zu
LinuXploit