§
    Ò! h]  ã                  ó0  — d Z ddlmZ ddlZddlZddlZddlmZmZm	Z	 ddl
Z
ddl
mZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlZddlmZmZ ddl m!Z! ddl"m#Z# ddl$m%Z%m&Z&m'Z'm(Z(m)Z) erddl*m+Z+m,Z,m-Z-m.Z.m/Z/ dBd„Z0	 	 	 dCdDd$„Z1 G d%„ d¦  «        Z2 G d&„ d'e2¦  «        Z3 G d(„ d)e2¦  «        Z4 ee!d         ¬*¦  «        	 	 	 	 	 	 	 dEdFd8„¦   «         Z5 ee!d         ¬*¦  «        d+ddej6        ej6        ddfdGdA„¦   «         Z7dS )Hz parquet compat é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚLiteral)Úcatch_warnings)Úusing_pyarrow_string_dtype)Ú_get_option)Úlib)Úimport_optional_dependency©ÚAbstractMethodError)Údoc)Úfind_stack_level)Úcheck_dtype_backend)Ú	DataFrameÚ
get_option)Ú_shared_docs)Úarrow_string_types_mapper)Ú	IOHandlesÚ
get_handleÚis_fsspec_urlÚis_urlÚstringify_path)ÚDtypeBackendÚFilePathÚ
ReadBufferÚStorageOptionsÚWriteBufferÚengineÚstrÚreturnÚBaseImplc                ód  — | dk    rt          d¦  «        } | dk    r_t          t          g}d}|D ]:}	  |¦   «         c S # t          $ r}|dt	          |¦  «        z   z  }Y d}~Œ3d}~ww xY wt          d|› �¦  «        ‚| dk    rt          ¦   «         S | dk    rt          ¦   «         S t          d	¦  «        ‚)
zreturn our implementationÚautozio.parquet.engineÚ z
 - NzÉUnable to find a usable engine; tried using: 'pyarrow', 'fastparquet'.
A suitable version of pyarrow or fastparquet is required for parquet support.
Trying to import the above resulted in these errors:ÚpyarrowÚfastparquetz.engine must be one of 'pyarrow', 'fastparquet')r   ÚPyArrowImplÚFastParquetImplÚImportErrorr    Ú
ValueError)r   Úengine_classesÚ
error_msgsÚengine_classÚerrs        úKc:\xampp_lite_8_4\www\timesheet\venv\Lib\site-packages\pandas/io/parquet.pyÚ
get_enginer1   3   sþ   € à�ÒÐÝÐ/Ñ0Ô0ˆà�ÒÐå%¥Ð7ˆàˆ
Ø*ð 	1ð 	1ˆLð1Ø#�|‘~”~Ð%Ð%Ð%øÝð 1ð 1ð 1Ø˜g­¨C©¬Ñ0Ñ0�
�
�
�
�
�
øøøøð1øøøõ ðð ðð ñ
ô 
ð 	
ð �ÒÐÝ‰}Œ}ÐØ	�=Ò	 Ð	 ÝÑ Ô Ð å
ÐEÑ
FÔ
FÐFs   ±	=½
A&ÁA!Á!A&ÚrbFÚpathú1FilePath | ReadBuffer[bytes] | WriteBuffer[bytes]Úfsr   Ústorage_optionsúStorageOptions | NoneÚmodeÚis_dirÚboolúVtuple[FilePath | ReadBuffer[bytes] | WriteBuffer[bytes], IOHandles[bytes] | None, Any]c                ó`  — t          | ¦  «        }|�Œt          dd¬¦  «        }t          dd¬¦  «        }|�'t          ||j        ¦  «        r|rt	          d¦  «        ‚nA|�t          ||j        j        ¦  «        rn$t          dt          |¦  «        j	        › �¦  «        ‚t          |¦  «        r‚|€€|€Tt          d¦  «        }t          d¦  «        }	 |j                             | ¦  «        \  }}n# t          |j        f$ r Y nw xY w|€'t          d¦  «        } |j        j        |fi |pi ¤Ž\  }}n&|r$t!          |¦  «        r|d	k    rt          d
¦  «        ‚d}	|sR|sPt          |t"          ¦  «        r;t$          j                             |¦  «        st+          ||d|¬¦  «        }	d}|	j        }||	|fS )zFile handling for PyArrow.Nz
pyarrow.fsÚignore)ÚerrorsÚfsspecz8storage_options not supported with a pyarrow FileSystem.z9filesystem must be a pyarrow or fsspec FileSystem, not a r&   r2   z8storage_options passed with buffer, or non-supported URLF©Úis_textr6   )r   r   Ú
isinstanceÚ
FileSystemÚNotImplementedErrorÚspecÚAbstractFileSystemr+   ÚtypeÚ__name__r   Úfrom_uriÚ	TypeErrorÚArrowInvalidÚcoreÚ	url_to_fsr   r    Úosr3   Úisdirr   Úhandle)
r3   r5   r6   r8   r9   Úpath_or_handleÚpa_fsr?   ÚpaÚhandless
             r0   Ú_get_path_or_handlerU   U   s2  € õ $ DÑ)Ô)€NØ	€~Ý*¨<ÀÐIÑIÔIˆÝ+¨H¸XÐFÑFÔFˆØÐ¥¨B°Ô0@Ñ!AÔ!AÐØð Ý)ØNñô ð ðð Ð¥J¨r°6´;Ô3QÑ$RÔ$RÐØåð-Ý˜b™œÔ*ð-ð -ñô ð õ �^Ñ$Ô$ð U¨¨ØÐ"Ý+¨IÑ6Ô6ˆBÝ.¨|Ñ<Ô<ˆEðØ%*Ô%5×%>Ò%>¸tÑ%DÔ%DÑ"��N�NøÝ˜rœÐ/ð ð ð Ø�ðøøøàˆ:Ý/°Ñ9Ô9ˆFØ!6 ¤Ô!6Øð"ð "Ø#2Ð#8°bð"ð "ÑˆB�øð 
ð U¥&¨Ñ"8Ô"8ð U¸DÀDºL¸Lõ ÐSÑTÔTÐTà€Gàð(àð(õ �~¥sÑ+Ô+ð(õ ”—’˜nÑ-Ô-ð	(õ Ø˜D¨%Àð
ñ 
ô 
ˆð ˆØ œˆØ˜7 BÐ&Ð&s   ÃC. Ã.DÄDc                  ó8   — e Zd Zed	d„¦   «         Zd
d„Zddd„ZdS )r"   Údfr   r!   ÚNonec                óN   — t          | t          ¦  «        st          d¦  «        ‚d S )Nz+to_parquet only supports IO with DataFrames)rB   r   r+   )rW   s    r0   Úvalidate_dataframezBaseImpl.validate_dataframe•   s0   € å˜"�iÑ(Ô(ð 	LÝÐJÑKÔKÐKð	Lð 	Ló    c                ó    — t          | ¦  «        ‚©Nr   )ÚselfrW   r3   ÚcompressionÚkwargss        r0   ÚwritezBaseImpl.writeš   ó   € Ý! $Ñ'Ô'Ð'r[   Nc                ó    — t          | ¦  «        ‚r]   r   )r^   r3   Úcolumnsr`   s       r0   ÚreadzBaseImpl.read�   rb   r[   )rW   r   r!   rX   )rW   r   r]   )r!   r   )rH   Ú
__module__Ú__qualname__ÚstaticmethodrZ   ra   re   © r[   r0   r"   r"   ”   sc   € € € € € ØðLð Lð Lñ „\ðLð(ð (ð (ð (ð(ð (ð (ð (ð (ð (ð (r[   c                  óJ   — e Zd Zdd„Z	 	 	 	 	 ddd„Zdddej        ddfdd„ZdS )r(   r!   rX   c                óF   — t          dd¬¦  «         dd l}dd l}|| _        d S )Nr&   z(pyarrow is required for parquet support.©Úextrar   )r   Úpyarrow.parquetÚ(pandas.core.arrays.arrow.extension_typesÚapi)r^   r&   Úpandass      r0   Ú__init__zPyArrowImpl.__init__¢   sF   € Ý"ØÐGð	
ñ 	
ô 	
ð 	
ð 	ÐÐÐð 	8Ð7Ð7Ð7àˆŒˆˆr[   ÚsnappyNrW   r   r3   úFilePath | WriteBuffer[bytes]r_   ú
str | NoneÚindexúbool | Noner6   r7   Úpartition_colsúlist[str] | Nonec                óR  — |                       |¦  «         d|                     dd ¦  «        i}	|�||	d<    | j        j        j        |fi |	¤Ž}
|j        rBdt          j        |j        ¦  «        i}|
j        j	        }i |¥|¥}|
 
                    |¦  «        }
t          |||d|d u¬¦  «        \  }}}t          |t          j        ¦  «        rlt          |d¦  «        r\t          |j        t"          t$          f¦  «        r;t          |j        t$          ¦  «        r|j                             ¦   «         }n|j        }	 |� | j        j        j        |
|f|||dœ|¤Ž n | j        j        j        |
|f||dœ|¤Ž |�|                     ¦   «          d S d S # |�|                     ¦   «          w w xY w)	NÚschemaÚpreserve_indexÚPANDAS_ATTRSÚwb)r6   r8   r9   Úname)r_   rx   Ú
filesystem)r_   r€   )rZ   Úpoprp   ÚTableÚfrom_pandasÚattrsÚjsonÚdumpsr{   ÚmetadataÚreplace_schema_metadatarU   rB   ÚioÚBufferedWriterÚhasattrr   r    ÚbytesÚdecodeÚparquetÚwrite_to_datasetÚwrite_tableÚclose)r^   rW   r3   r_   rv   r6   rx   r€   r`   Úfrom_pandas_kwargsÚtableÚdf_metadataÚexisting_metadataÚmerged_metadatarQ   rT   s                   r0   ra   zPyArrowImpl.write­   s(  € ð 	×Ò Ñ#Ô#Ð#à.6¸¿
º
À8ÈTÑ8RÔ8RÐ-SÐØÐØ38ÐÐ/Ñ0à*�””Ô*¨2ÐDÐDÐ1CÐDÐDˆàŒ8ð 	CØ)­4¬:°b´hÑ+?Ô+?Ð@ˆKØ %¤Ô 5ÐØBÐ!2ÐB°kÐBˆOØ×1Ò1°/ÑBÔBˆEå.AØØØ+ØØ!¨Ð-ð/
ñ /
ô /
Ñ+ˆ˜ õ �~¥rÔ'8Ñ9Ô9ð	5å˜¨Ñ/Ô/ð	5õ ˜>Ô.µµe°Ñ=Ô=ð	5õ
 ˜.Ô-­uÑ5Ô5ð 5Ø!/Ô!4×!;Ò!;Ñ!=Ô!=��à!/Ô!4�ð	 ØÐ)à1�”Ô Ô1ØØ"ðð !,Ø#1Ø)ðð ð ðð ð ð ð -�”Ô Ô,ØØ"ðð !,Ø)ð	ð ð
 ðð ð ð Ð"Ø—’‘”���ð #Ð"øˆwÐ"Ø—’‘”��ð #øøøs   Ä7<F ÆF&FÚuse_nullable_dtypesr:   Údtype_backendúDtypeBackend | lib.NoDefaultc                ó¤  — d|d<   i }	|dk    rddl m}
  |
¦   «         }|j        |	d<   n5|dk    rt          j        |	d<   nt          ¦   «         rt          ¦   «         |	d<   t          dd¬	¦  «        }|d
k    rd|	d<   t          |||d¬¦  «        \  }}}	  | j	        j
        j        |f|||dœ|¤Ž} |j        di |	¤Ž}|d
k    r|                     d
d¬¦  «        }|j        j        r9d|j        j        v r+|j        j        d         }t!          j        |¦  «        |_        ||�|                     ¦   «          S S # |�|                     ¦   «          w w xY w)NTÚuse_pandas_metadataÚnumpy_nullabler   )Ú_arrow_dtype_mappingÚtypes_mapperr&   zmode.data_manager)ÚsilentÚarrayÚsplit_blocksr2   )r6   r8   )rd   r€   ÚfiltersF)Úcopys   PANDAS_ATTRSri   )Úpandas.io._utilr�   ÚgetÚpdÚ
ArrowDtyper   r   r	   rU   rp   rŽ   Ú
read_tableÚ	to_pandasÚ_as_managerr{   r‡   r…   Úloadsr„   r‘   )r^   r3   rd   r¢   r—   r˜   r6   r€   r`   Úto_pandas_kwargsr�   ÚmappingÚmanagerrQ   rT   Úpa_tableÚresultr”   s                     r0   re   zPyArrowImpl.readï   sÏ  € ð )-ˆÐ$Ñ%àÐØÐ,Ò,Ð,Ø<Ð<Ð<Ð<Ð<Ð<à*Ð*Ñ,Ô,ˆGØ/6¬{Ð˜^Ñ,Ð,Ø˜iÒ'Ð'Ý/1¬}Ð˜^Ñ,Ð,Ý'Ñ)Ô)ð 	KÝ/HÑ/JÔ/JÐ˜^Ñ,åÐ1¸$Ð?Ñ?Ô?ˆØ�gÒÐØ/3Ð˜^Ñ,å.AØØØ+Øð	/
ñ /
ô /
Ñ+ˆ˜ ð	 Ø2�t”xÔ'Ô2ØðàØ%Øð	ð ð
 ðð ˆHð (�XÔ'Ð;Ð;Ð*:Ð;Ð;ˆFà˜'Ò!Ð!Ø×+Ò+¨G¸%Ð+Ñ@Ô@�àŒÔ'ð ;Ø" h¤oÔ&>Ð>Ð>Ø"*¤/Ô":¸?Ô"K�KÝ#'¤:¨kÑ#:Ô#:�F”LØàÐ"Ø—’‘”��ð #øˆwÐ"Ø—’‘”��ð #øøøs   ÂBD6 Ä6E©r!   rX   ©rs   NNNN)rW   r   r3   rt   r_   ru   rv   rw   r6   r7   rx   ry   r!   rX   )r—   r:   r˜   r™   r6   r7   r!   r   )rH   rf   rg   rr   ra   r
   Ú
no_defaultre   ri   r[   r0   r(   r(   ¡   s‡   € € € € € ð	ð 	ð 	ð 	ð #+Ø!Ø15Ø+/Øð@ ð @ ð @ ð @ ð @ ðJ ØØ$)Ø69´nØ15Øð6 ð 6 ð 6 ð 6 ð 6 ð 6 ð 6 r[   r(   c                  ó<   — e Zd Zdd„Z	 	 	 	 	 ddd„Z	 	 	 	 ddd„ZdS )r)   r!   rX   c                ó6   — t          dd¬¦  «        }|| _        d S )Nr'   z,fastparquet is required for parquet support.rl   )r   rp   )r^   r'   s     r0   rr   zFastParquetImpl.__init__)  s+   € õ 1ØÐ!Oð
ñ 
ô 
ˆð ˆŒˆˆr[   rs   NrW   r   r_   ú*Literal['snappy', 'gzip', 'brotli'] | Noner6   r7   c                óÒ  ‡‡	— |                       |¦  «         d|v r|�t          d¦  «        ‚d|v r|                     d¦  «        }|�d|d<   |�t          d¦  «        ‚t	          |¦  «        }t          |¦  «        rt          d¦  «        Š	ˆ	ˆfd„|d<   n‰rt          d	¦  «        ‚t          d
¬¦  «        5   | j        j	        ||f|||dœ|¤Ž d d d ¦  «         d S # 1 swxY w Y   d S )NÚpartition_onzYCannot use both partition_on and partition_cols. Use partition_cols for partitioning dataÚhiveÚfile_schemeú9filesystem is not implemented for the fastparquet engine.r?   c                óJ   •—  ‰j         | dfi ‰pi ¤Ž                      ¦   «         S )Nr~   )Úopen)r3   Ú_r?   r6   s     €€r0   ú<lambda>z'FastParquetImpl.write.<locals>.<lambda>T  s8   ø€ °+°&´+Ø�dð3ð 3Ø.Ð4°"ð3ð 3çŠd‰fŒfð r[   Ú	open_withz?storage_options passed with file object or non-fsspec file pathT)Úrecord)r_   Úwrite_indexr¸   )
rZ   r+   r�   rD   r   r   r   r   rp   ra   )
r^   rW   r3   r_   rv   rx   r6   r€   r`   r?   s
         `  @r0   ra   zFastParquetImpl.write1  s­  øø€ ð 	×Ò Ñ#Ô#Ð#à˜VÐ#Ð#¨Ð(BÝðKñô ð ð ˜VÐ#Ð#Ø#ŸZšZ¨Ñ7Ô7ˆNàÐ%Ø$*ˆF�=Ñ!àÐ!Ý%ØKñô ð õ
 ˜dÑ#Ô#ˆÝ˜ÑÔð 
	Ý/°Ñ9Ô9ˆFð#ð #ð #ð #ð #ˆF�;ÑÐð ð 	ÝØQñô ð õ  4Ð(Ñ(Ô(ð 	ð 	ØˆDŒHŒNØØðð (Ø!Ø+ðð ð ðð ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Â6CÃC Ã#C c                óÖ  — i }|                      dd¦  «        }|                      dt          j        ¦  «        }	d|d<   |rt          d¦  «        ‚|	t          j        urt          d¦  «        ‚|�t	          d¦  «        ‚t          |¦  «        }d }
t          |¦  «        r)t          d¦  «        } |j        |d	fi |pi ¤Žj	        |d
<   nNt          |t          ¦  «        r9t          j                             |¦  «        st          |d	d|¬¦  «        }
|
j        }	  | j        j        |fi |¤Ž} |j        d||dœ|¤Ž|
�|
                     ¦   «          S S # |
�|
                     ¦   «          w w xY w)Nr—   Fr˜   Úpandas_nullszNThe 'use_nullable_dtypes' argument is not supported for the fastparquet enginezHThe 'dtype_backend' argument is not supported for the fastparquet enginer»   r?   r2   r5   r@   )rd   r¢   ri   )r�   r
   r³   r+   rD   r   r   r   r½   r5   rB   r    rN   r3   rO   r   rP   rp   ÚParquetFiler©   r‘   )r^   r3   rd   r¢   r6   r€   r`   Úparquet_kwargsr—   r˜   rT   r?   Úparquet_files                r0   re   zFastParquetImpl.readf  sÀ  € ð *,ˆØ$ŸjšjÐ)>ÀÑFÔFÐØŸ
š
 ?µC´NÑCÔCˆà).ˆ�~Ñ&Øð 	Ýð%ñô ð ð ¥¤Ð.Ð.Ýð%ñô ð ð Ð!Ý%ØKñô ð õ ˜dÑ#Ô#ˆØˆÝ˜ÑÔð 	"Ý/°Ñ9Ô9ˆFà#. 6¤;¨t°TÐ#UÐ#U¸oÐ>SÐQSÐ#UÐ#UÔ#XˆN˜4Ñ Ð Ý˜�cÑ"Ô"ð 	"­2¬7¯=ª=¸Ñ+>Ô+>ð 	"õ !Ø�d E¸?ðñ ô ˆGð ”>ˆDð	 Ø/˜4œ8Ô/°ÐGÐG¸ÐGÐGˆLØ)�<Ô)ÐU°'À7ÐUÐUÈfÐUÐUàÐ"Ø—’‘”��ð #øˆwÐ"Ø—’‘”��ð #øøøs   Ä"E ÅE(r±   r²   )rW   r   r_   r¶   r6   r7   r!   rX   )NNNN)r6   r7   r!   r   )rH   rf   rg   rr   ra   re   ri   r[   r0   r)   r)   (  s|   € € € € € ðð ð ð ð CKØØØ15Øð3ð 3ð 3ð 3ð 3ðp ØØ15Øð0 ð 0 ð 0 ð 0 ð 0 ð 0 ð 0 r[   r)   )r6   r$   rs   rW   r   ú$FilePath | WriteBuffer[bytes] | Noner_   ru   rv   rw   rx   ry   r€   úbytes | Nonec           	     ó  — t          |t          ¦  «        r|g}t          |¦  «        }	|€t          j        ¦   «         n|}
 |	j        | |
f|||||dœ|¤Ž |€0t          |
t          j        ¦  «        sJ ‚|
                     ¦   «         S dS )a†	  
    Write a DataFrame to the parquet format.

    Parameters
    ----------
    df : DataFrame
    path : str, path object, file-like object, or None, default None
        String, path object (implementing ``os.PathLike[str]``), or file-like
        object implementing a binary ``write()`` function. If None, the result is
        returned as bytes. If a string, it will be used as Root Directory path
        when writing a partitioned dataset. The engine fastparquet does not
        accept file-like objects.
    engine : {{'auto', 'pyarrow', 'fastparquet'}}, default 'auto'
        Parquet library to use. If 'auto', then the option
        ``io.parquet.engine`` is used. The default ``io.parquet.engine``
        behavior is to try 'pyarrow', falling back to 'fastparquet' if
        'pyarrow' is unavailable.

        When using the ``'pyarrow'`` engine and no storage options are provided
        and a filesystem is implemented by both ``pyarrow.fs`` and ``fsspec``
        (e.g. "s3://"), then the ``pyarrow.fs`` filesystem is attempted first.
        Use the filesystem keyword with an instantiated fsspec filesystem
        if you wish to use its implementation.
    compression : {{'snappy', 'gzip', 'brotli', 'lz4', 'zstd', None}},
        default 'snappy'. Name of the compression to use. Use ``None``
        for no compression.
    index : bool, default None
        If ``True``, include the dataframe's index(es) in the file output. If
        ``False``, they will not be written to the file.
        If ``None``, similar to ``True`` the dataframe's index(es)
        will be saved. However, instead of being saved as values,
        the RangeIndex will be stored as a range in the metadata so it
        doesn't require much space and is faster. Other indexes will
        be included as columns in the file output.
    partition_cols : str or list, optional, default None
        Column names by which to partition the dataset.
        Columns are partitioned in the order they are given.
        Must be None if path is not a string.
    {storage_options}

    filesystem : fsspec or pyarrow filesystem, default None
        Filesystem object to use when reading the parquet file. Only implemented
        for ``engine="pyarrow"``.

        .. versionadded:: 2.1.0

    kwargs
        Additional keyword arguments passed to the engine

    Returns
    -------
    bytes if no path argument is provided else None
    N)r_   rv   rx   r6   r€   )rB   r    r1   r‰   ÚBytesIOra   Úgetvalue)rW   r3   r   r_   rv   r6   rx   r€   r`   ÚimplÚpath_or_bufs              r0   Ú
to_parquetrÏ   ™  s·   € õB �.¥#Ñ&Ô&ð *Ø(Ð)ˆÝ�fÑÔ€DàAEÀµ´±´°ÐSW€Kà€D„JØ
Øð	ð  ØØ%Ø'Øð	ð 	ð ð	ð 	ð 	ð €|Ý˜+¥r¤zÑ2Ô2Ð2Ð2Ð2Ø×#Ò#Ñ%Ô%Ð%àˆtr[   úFilePath | ReadBuffer[bytes]rd   r—   úbool | lib.NoDefaultr˜   r™   r¢   ú&list[tuple] | list[list[tuple]] | Nonec           
     óð   — t          |¦  «        }	|t          j        ur4d}
|du r|
dz  }
t          j        |
t
          t          ¦   «         ¬¦  «         nd}t          |¦  «          |	j        | f||||||dœ|¤ŽS )a¢  
    Load a parquet object from the file path, returning a DataFrame.

    Parameters
    ----------
    path : str, path object or file-like object
        String, path object (implementing ``os.PathLike[str]``), or file-like
        object implementing a binary ``read()`` function.
        The string could be a URL. Valid URL schemes include http, ftp, s3,
        gs, and file. For file URLs, a host is expected. A local file could be:
        ``file://localhost/path/to/table.parquet``.
        A file URL can also be a path to a directory that contains multiple
        partitioned parquet files. Both pyarrow and fastparquet support
        paths to directories as well as file URLs. A directory path could be:
        ``file://localhost/path/to/tables`` or ``s3://bucket/partition_dir``.
    engine : {{'auto', 'pyarrow', 'fastparquet'}}, default 'auto'
        Parquet library to use. If 'auto', then the option
        ``io.parquet.engine`` is used. The default ``io.parquet.engine``
        behavior is to try 'pyarrow', falling back to 'fastparquet' if
        'pyarrow' is unavailable.

        When using the ``'pyarrow'`` engine and no storage options are provided
        and a filesystem is implemented by both ``pyarrow.fs`` and ``fsspec``
        (e.g. "s3://"), then the ``pyarrow.fs`` filesystem is attempted first.
        Use the filesystem keyword with an instantiated fsspec filesystem
        if you wish to use its implementation.
    columns : list, default=None
        If not None, only these columns will be read from the file.
    {storage_options}

        .. versionadded:: 1.3.0

    use_nullable_dtypes : bool, default False
        If True, use dtypes that use ``pd.NA`` as missing value indicator
        for the resulting DataFrame. (only applicable for the ``pyarrow``
        engine)
        As new dtypes are added that support ``pd.NA`` in the future, the
        output with this option will change to use those dtypes.
        Note: this is an experimental option, and behaviour (e.g. additional
        support dtypes) may change without notice.

        .. deprecated:: 2.0

    dtype_backend : {{'numpy_nullable', 'pyarrow'}}, default 'numpy_nullable'
        Back-end data type applied to the resultant :class:`DataFrame`
        (still experimental). Behaviour is as follows:

        * ``"numpy_nullable"``: returns nullable-dtype-backed :class:`DataFrame`
          (default).
        * ``"pyarrow"``: returns pyarrow-backed nullable :class:`ArrowDtype`
          DataFrame.

        .. versionadded:: 2.0

    filesystem : fsspec or pyarrow filesystem, default None
        Filesystem object to use when reading the parquet file. Only implemented
        for ``engine="pyarrow"``.

        .. versionadded:: 2.1.0

    filters : List[Tuple] or List[List[Tuple]], default None
        To filter out data.
        Filter syntax: [[(column, op, val), ...],...]
        where op is [==, =, >, >=, <, <=, !=, in, not in]
        The innermost tuples are transposed into a set of filters applied
        through an `AND` operation.
        The outer list combines these sets of filters through an `OR`
        operation.
        A single list of tuples can also be used, meaning that no `OR`
        operation between set of filters is to be conducted.

        Using this argument will NOT result in row-wise filtering of the final
        partitions unless ``engine="pyarrow"`` is also specified.  For
        other engines, filtering is only performed at the partition level, that is,
        to prevent the loading of some row-groups and/or files.

        .. versionadded:: 2.1.0

    **kwargs
        Any additional kwargs are passed to the engine.

    Returns
    -------
    DataFrame

    See Also
    --------
    DataFrame.to_parquet : Create a parquet object that serializes a DataFrame.

    Examples
    --------
    >>> original_df = pd.DataFrame(
    ...     {{"foo": range(5), "bar": range(5, 10)}}
    ...    )
    >>> original_df
       foo  bar
    0    0    5
    1    1    6
    2    2    7
    3    3    8
    4    4    9
    >>> df_parquet_bytes = original_df.to_parquet()
    >>> from io import BytesIO
    >>> restored_df = pd.read_parquet(BytesIO(df_parquet_bytes))
    >>> restored_df
       foo  bar
    0    0    5
    1    1    6
    2    2    7
    3    3    8
    4    4    9
    >>> restored_df.equals(original_df)
    True
    >>> restored_bar = pd.read_parquet(BytesIO(df_parquet_bytes), columns=["bar"])
    >>> restored_bar
        bar
    0    5
    1    6
    2    7
    3    8
    4    9
    >>> restored_bar.equals(original_df[['bar']])
    True

    The function uses `kwargs` that are passed directly to the engine.
    In the following example, we use the `filters` argument of the pyarrow
    engine to filter the rows of the DataFrame.

    Since `pyarrow` is the default engine, we can omit the `engine` argument.
    Note that the `filters` argument is implemented by the `pyarrow` engine,
    which can benefit from multithreading and also potentially be more
    economical in terms of memory.

    >>> sel = [("foo", ">", 2)]
    >>> restored_part = pd.read_parquet(BytesIO(df_parquet_bytes), filters=sel)
    >>> restored_part
        foo  bar
    0    3    8
    1    4    9
    zYThe argument 'use_nullable_dtypes' is deprecated and will be removed in a future version.TzFUse dtype_backend='numpy_nullable' instead of use_nullable_dtype=True.)Ú
stacklevelF)rd   r¢   r6   r—   r˜   r€   )	r1   r
   r³   ÚwarningsÚwarnÚFutureWarningr   r   re   )r3   r   rd   r6   r—   r˜   r€   r¢   r`   rÍ   Úmsgs              r0   Úread_parquetrÙ   ò  s¹   € õr �fÑÔ€Dà¥#¤.Ð0Ð0ð#ð 	ð  $Ð&Ð&ØØXñˆCõ 	Œ�c�=Õ5EÑ5GÔ5GÐHÑHÔHÐHÐHà#ÐÝ˜Ñ&Ô&Ð&àˆ4Œ9Øð	àØØ'Ø/Ø#Øð	ð 	ð ð	ð 	ð 	r[   )r   r    r!   r"   )Nr2   F)r3   r4   r5   r   r6   r7   r8   r    r9   r:   r!   r;   )Nr$   rs   NNNN)rW   r   r3   rÈ   r   r    r_   ru   rv   rw   r6   r7   rx   ry   r€   r   r!   rÉ   )r3   rÐ   r   r    rd   ry   r6   r7   r—   rÑ   r˜   r™   r€   r   r¢   rÒ   r!   r   )8Ú__doc__Ú
__future__r   r‰   r…   rN   Útypingr   r   r   rÕ   r   Úpandas._configr   Úpandas._config.configr	   Úpandas._libsr
   Úpandas.compat._optionalr   Úpandas.errorsr   Úpandas.util._decoratorsr   Úpandas.util._exceptionsr   Úpandas.util._validatorsr   rq   r¦   r   r   Úpandas.core.shared_docsr   r¤   r   Úpandas.io.commonr   r   r   r   r   Úpandas._typingr   r   r   r   r   r1   rU   r"   r(   r)   rÏ   r³   rÙ   ri   r[   r0   ú<module>rè      sŽ  ðØ Ð Ø "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø €€€Ø 	€	€	€	ðð ð ð ð ð ð ð ð ð ð
 €€€Ø #Ð #Ð #Ð #Ð #Ð #à 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø -Ð -Ð -Ð -Ð -Ð -à Ð Ð Ð Ð Ð Ø >Ð >Ð >Ð >Ð >Ð >Ø -Ð -Ð -Ð -Ð -Ð -Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7à Ð Ð Ð ðð ð ð ð ð ð ð ð 1Ð 0Ð 0Ð 0Ð 0Ð 0à 5Ð 5Ð 5Ð 5Ð 5Ð 5ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ðGð Gð Gð GðJ .2ØØð<'ð <'ð <'ð <'ð <'ð~
(ð 
(ð 
(ð 
(ð 
(ñ 
(ô 
(ð 
(ðD ð D ð D ð D ð D �(ñ D ô D ð D ðNn ð n ð n ð n ð n �hñ n ô n ð n ðb €�\Ð"3Ô4Ð5Ñ5Ô5ð 26ØØ&ØØ-1Ø'+ØðUð Uð Uð Uñ 6Ô5ðUðp €�\Ð"3Ô4Ð5Ñ5Ô5ð Ø $Ø-1Ø03´Ø25´.ØØ6:ðqð qð qð qñ 6Ô5ðqð qð qr[   