3
���h� � @ s� d Z ddlZddlmZmZ ddlZddlmZ ddlm Z
ddlmZm
Z
dejfeeee ed�d d
�Zdeee d�dd
�ZdS )z pickle compat � N)�Any�Optional)�FilePathOrBuffer)�
pickle_compat)�get_filepath_or_buffer�
get_handle�infer)�obj�filepath_or_buffer�compression�protocolc
C s� t ||dd�\}}}}t|t� r.|dkr.d}t|d|dd�\}}|dk rPtj}z|jtj| |d�� W d|j� x|D ]} | j� qxW |r�y|j� W n t k
r� Y nX X dS ) a�
Pickle (serialize) object to file.
Parameters
----------
obj : any object
Any python object.
filepath_or_buffer : str, path object or file-like object
File path, URL, or buffer where the pickled object will be stored.
.. versionchanged:: 1.0.0
Accept URL. URL has to be of S3 or GCS.
compression : {'infer', 'gzip', 'bz2', 'zip', 'xz', None}, default 'infer'
If 'infer' and 'path_or_url' is path-like, then detect compression from
the following extensions: '.gz', '.bz2', '.zip', or '.xz' (otherwise no
compression) If 'infer' and 'path_or_url' is not path-like, then use
None (= no decompression).
protocol : int
Int which indicates which protocol should be used by the pickler,
default HIGHEST_PROTOCOL (see [1], paragraph 12.1.2). The possible
values for this parameter depend on the version of Python. For Python
2.x, possible values are 0, 1, 2. For Python>=3.0, 3 is a valid value.
For Python >= 3.4, 4 is a valid value. A negative value for the
protocol parameter is equivalent to setting its value to
HIGHEST_PROTOCOL.
.. [1] https://docs.python.org/3/library/pickle.html
See Also
--------
read_pickle : Load pickled pandas object (or any object) from file.
DataFrame.to_hdf : Write DataFrame to an HDF5 file.
DataFrame.to_sql : Write DataFrame to a SQL database.
DataFrame.to_parquet : Write a DataFrame to the binary parquet format.
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
>>> pd.to_pickle(original_df, "./dummy.pkl")
>>> unpickled_df = pd.read_pickle("./dummy.pkl")
>>> unpickled_df
foo bar
0 0 5
1 1 6
2 2 7
3 3 8
4 4 9
>>> import os
>>> os.remove("./dummy.pkl")
�wb)r �moder NF)r �is_textr )r )
r �
isinstance�strr �pickle�HIGHEST_PROTOCOL�write�dumps�close�
ValueError)
r r
r r � fp_or_buf�_�should_close�f�fh�_f� r �2/tmp/pip-build-5_djhm0z/pandas/pandas/io/pickle.py� to_pickle s" |