U
    ¾mœd5  ã                   @  s°   d 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	 ddl
mZ ddlmZ dd	lmZ dd
lmZmZ er€ddlmZ de	jfdddœdd„Zdddddœdd„ZdS )z io on the clipboard é    )Úannotations)ÚStringIO)ÚTYPE_CHECKINGN)Úlib)Úfind_stack_level)Úcheck_dtype_backend)ÚABCDataFrame)Ú
get_optionÚoption_context)ÚDtypeBackendú\s+ÚstrzDtypeBackend | lib.NoDefault©ÚsepÚdtype_backendc           
      K  s°  |  dd¡}|dk	r0| ¡  dd¡dkr0tdƒ‚t|ƒ dd	lm} dd
lm} |ƒ }z| 	| 
d¡pltdƒ¡}W n tk
r†   Y nX |dd…  d¡dd… dd… }dd„ |D ƒ}t|ƒdk�r"t|ƒdk�r"|  ¡ dk�r"d} t|d ƒt|d  d¡ƒ }	|	dk�r"| dtt|	ƒƒ¡ | dk�r@| 
d¡dk�r@d} t| ƒdk�rh| 
d¡dk�rhd|d< n.t| ƒdk�r–| 
d¡dk�r–tjdtƒ d� |t|ƒf| |dœ|—ŽS )a#  
    Read text from clipboard and pass to read_csv.

    Parameters
    ----------
    sep : str, default '\s+'
        A string or regex delimiter. The default of '\s+' denotes
        one or more whitespace characters.

    dtype_backend : {"numpy_nullable", "pyarrow"}, defaults to NumPy backed DataFrames
        Which dtype_backend to use, e.g. whether a DataFrame should have NumPy
        arrays, nullable dtypes are used for all dtypes that have a nullable
        implementation when "numpy_nullable" is set, pyarrow is used for all
        dtypes if "pyarrow" is set.

        The dtype_backends are still experimential.

        .. versionadded:: 2.0

    **kwargs
        See read_csv for the full argument list.

    Returns
    -------
    DataFrame
        A parsed DataFrame object.
    Úencodingúutf-8Nú-Ú Úutf8z3reading from clipboard only supports utf-8 encodingr   )Úclipboard_get)Úread_csvzdisplay.encodingi'  Ú
éÿÿÿÿé
   c                 S  s   h | ]}|  d ¡ d¡’qS )ú ú	)ÚlstripÚcount)Ú.0Úx© r!   úM/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/pandas/io/clipboards.pyÚ	<setcomp>W   s     z!read_clipboard.<locals>.<setcomp>é   r   z 	Z	index_colZdelim_whitespacer   ZengineÚpythonÚczIread_clipboard with regex separator does not work properly with c engine.©Ú
stacklevelr   )ÚpopÚlowerÚreplaceÚNotImplementedErrorr   Úpandas.io.clipboardr   Zpandas.io.parsersr   ÚdecodeÚgetr	   ÚAttributeErrorÚsplitÚlenr   Ú
setdefaultÚlistÚrangeÚwarningsÚwarnr   r   )
r   r   Úkwargsr   r   r   ÚtextÚlinesÚcountsZindex_lengthr!   r!   r"   Úread_clipboard   s8     "*

þr<   Tzbool | Nonez
str | NoneÚNone)Úexcelr   Úreturnc           	   	   K  s  |  dd¡}|dk	r0| ¡  dd¡dkr0tdƒ‚dd	lm} |dkrHd
}|r´z@|dkrZd}tƒ }| j|f|ddœ|—Ž | ¡ }||ƒ W dS  t	k
r°   t
jdtƒ d� Y qÌX n|dk	rÌt
jdtƒ d� t| tƒrútddƒ� | jf |Ž}W 5 Q R X nt| ƒ}||ƒ dS )a®  
    Attempt to write text representation of object to the system clipboard
    The clipboard can be then pasted into Excel for example.

    Parameters
    ----------
    obj : the object to write to the clipboard
    excel : bool, defaults to True
            if True, use the provided separator, writing in a csv
            format for allowing easy pasting into excel.
            if False, write a string representation of the object
            to the clipboard
    sep : optional, defaults to tab
    other keywords are passed to to_csv

    Notes
    -----
    Requirements for your platform
      - Linux: xclip, or xsel (with PyQt4 modules)
      - Windows:
      - OS X:
    r   r   Nr   r   r   z&clipboard only supports utf-8 encodingr   )Úclipboard_setTr   )r   r   zAto_clipboard in excel mode requires a single character separator.r'   z7to_clipboard with excel=False ignores the sep argument.zdisplay.max_colwidth)r)   r*   r+   Ú
ValueErrorr-   r@   r   Zto_csvÚgetvalueÚ	TypeErrorr6   r7   r   Ú
isinstancer   r
   Z	to_stringr   )	Úobjr>   r   r8   r   r@   Úbufr9   Zobjstrr!   r!   r"   Úto_clipboardq   s<    þþ
rG   )TN)Ú__doc__Ú
__future__r   Úior   Útypingr   r6   Zpandas._libsr   Zpandas.util._exceptionsr   Zpandas.util._validatorsr   Zpandas.core.dtypes.genericr   Zpandasr	   r
   Zpandas._typingr   Z
no_defaultr<   rG   r!   r!   r!   r"   Ú<module>   s"   þ[   ÿ