
    Owg`                        d dl mZ d dl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Zd dlmZmZ d dlmZ d dlZd dlmZ erd dlmZmZ d dlmZmZ 	 d	 	 	 	 	 dd	Zddd
ZdddZdddZy)    )annotationsN)TYPE_CHECKINGAnyCallable)get_bz2_fileget_lzma_file)import_optional_dependency)ensure_clean)FilePathReadPickleBuffer)	DataFrameSeriesc                    |}|dt        j                          d}t        |      5 }t        j                  | |       t        j
                  |      cddd       S # 1 sw Y   yxY w)a  
    Pickle an object and then read it again.

    Parameters
    ----------
    obj : any object
        The object to pickle and then re-read.
    path : str, path object or file-like object, default None
        The path where the pickled object is written and then read.

    Returns
    -------
    pandas object
        The original object that was pickled and then re-read.
    N__z	__.pickle)uuiduuid4r
   pd	to_pickleread_pickle)objpath_path	temp_paths       J/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/_testing/_io.pyround_trip_pickler   '   s[    $ E}TZZ\N),	e	 )	
S)$~~i() ) )s   +AA&c                    t         j                  }|d}t        |      5 } |  ||              | ||            }ddd       |S # 1 sw Y   S xY w)a  
    Write an object to file specified by a pathlib.Path and read it back

    Parameters
    ----------
    writer : callable bound to pandas object
        IO writing function (e.g. DataFrame.to_csv )
    reader : callable
        IO reading function (e.g. pd.read_csv )
    path : str, default None
        The path where the object is written and then read.

    Returns
    -------
    pandas object
        The original object that was serialized and then re-read.
    N___pathlib___)pathlibPathr
   )writerreaderr   r   r   s        r   round_trip_pathlibr"   A   sY    $ <<D|	d	 !ttDzT$Z ! J! Js   AAc                    ddl }|j                  d      j                  }|d}t        |      5 } |  ||              | ||            }ddd       |S # 1 sw Y   S xY w)a  
    Write an object to file specified by a py.path LocalPath and read it back.

    Parameters
    ----------
    writer : callable bound to pandas object
        IO writing function (e.g. DataFrame.to_csv )
    reader : callable
        IO reading function (e.g. pd.read_csv )
    path : str, default None
        The path where the object is written and then read.

    Returns
    -------
    pandas object
        The original object that was serialized and then re-read.
    r   Nzpy.path___localpath___)pytestimportorskiplocalr
   )r    r!   r   r%   	LocalPathr   s         r   round_trip_localpathr)   \   si    $ ##I.44I| 	d	 &tyYt_%& J& Js   AA c                   |f}d}d}| dk(  rt         j                  }d}||f}d}n| dk(  rTt        j                  }d}t        j                  |      }t        j                  |      }	t        |      |_        ||	f}d}n_| d	k(  rt        j                  }nI| d
k(  rt               }n9| dk(  rt        d      j                  }n| dk(  rt               }nt        d|         |||      5 }
 t!        |
|      |  ddd       y# 1 sw Y   yxY w)a  
    Write data to a compressed file.

    Parameters
    ----------
    compression : {'gzip', 'bz2', 'zip', 'xz', 'zstd'}
        The compression type to use.
    path : str
        The file path to write the data.
    data : str
        The data to write.
    dest : str, default "test"
        The destination file (for ZIP only)

    Raises
    ------
    ValueError : An invalid compression value was passed in.
    wbwritezipwwritestrtar)nameaddfilegzipbz2zstd	zstandardxzzUnrecognized compression type: )modeN)zipfileZipFiletarfileTarFileTarInfoioBytesIOlensizer3   GzipFiler   r	   openr   
ValueErrorgetattr)compressionr   datadestargsr8   methodcompress_methodfilebytesfs              r   write_to_compressedrO   y   s   & "GDDF e!//d|		!//D)

4 I	e}		--		&.		4[AFF		'/:;-HII	D	) "Q6D!" " "s   (DD
)N)r   r   r   z"FilePath | ReadPickleBuffer | NonereturnzDataFrame | Series)r   z
str | None)test)rH   strrP   None)
__future__r   r3   r>   r   r;   typingr   r   r   r   r9   pandas.compatr   r   pandas.compat._optionalr	   pandasr   pandas._testing.contextsr
   pandas._typingr   r   r   r   r   r"   r)   rO        r   <module>r]      st    "  	   
   ?  1
 :>)	)6))46:1"r\   