
    Mh	                        d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	 g dZ
 G d d          Z G d	 d
e          Z G d de          Z G d de          ZdS )z'
Clipboard for command line interface.
    )annotations)ABCMetaabstractmethod)Callable)SelectionType)	ClipboardClipboardDataDummyClipboardDynamicClipboardc                  *    e Zd ZdZdej        fdd	Zd
S )r	   z{
    Text on the clipboard.

    :param text: string
    :param type: :class:`~prompt_toolkit.selection.SelectionType`
     textstrtyper   returnNonec                "    || _         || _        d S N)r   r   )selfr   r   s      ]/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/prompt_toolkit/clipboard/base.py__init__zClipboardData.__init__   s     				    N)r   r   r   r   r   r   )__name__
__module____qualname____doc__r   
CHARACTERSr    r   r   r	   r	      sA          M4L      r   r	   c                  R    e Zd ZdZedd            Zdd	Zdd
Zedd            ZdS )r   z
    Abstract baseclass for clipboards.
    (An implementation can be in memory, it can share the X11 or Windows
    keyboard, or can be persistent.)
    datar	   r   r   c                    dS )ze
        Set data to the clipboard.

        :param data: :class:`~.ClipboardData` instance.
        Nr   r   r    s     r   set_datazClipboard.set_data*         r   r   r   c                J    |                      t          |                     dS )z?
        Shortcut for setting plain text on clipboard.
        N)r#   r	   r   r   s     r   set_textzClipboard.set_text2   s$     	mD))*****r   c                    dS )z7
        For Emacs mode, rotate the kill ring.
        Nr   r   s    r   rotatezClipboard.rotate8   r$   r   c                    dS )z(
        Return clipboard data.
        Nr   r)   s    r   get_datazClipboard.get_data=   r$   r   Nr    r	   r   r   r   r   r   r   r   r   r   r	   )	r   r   r   r   r   r#   r'   r*   r,   r   r   r   r   r   #   s             ^+ + + +   
    ^  r   r   )	metaclassc                  2    e Zd ZdZddZdd	Zdd
ZddZdS )r
   zB
    Clipboard implementation that doesn't remember anything.
    r    r	   r   r   c                    d S r   r   r"   s     r   r#   zDummyClipboard.set_dataI       r   r   r   c                    d S r   r   r&   s     r   r'   zDummyClipboard.set_textL   r4   r   c                    d S r   r   r)   s    r   r*   zDummyClipboard.rotateO   r4   r   c                    t                      S r   )r	   r)   s    r   r,   zDummyClipboard.get_dataR   s    r   Nr-   r.   r/   r0   )r   r   r   r   r#   r'   r*   r,   r   r   r   r
   r
   D   sn                       r   r
   c                  B    e Zd ZdZddZddZddZddZddZddZ	dS )r   z
    Clipboard class that can dynamically returns any Clipboard.

    :param get_clipboard: Callable that returns a :class:`.Clipboard` instance.
    get_clipboardCallable[[], Clipboard | None]r   r   c                    || _         d S r   )r9   )r   r9   s     r   r   zDynamicClipboard.__init__]   s    *r   r   c                F    |                                  pt                      S r   )r9   r
   r)   s    r   
_clipboardzDynamicClipboard._clipboard`   s    !!##7~'7'77r   r    r	   c                T    |                                                      |           d S r   )r=   r#   r"   s     r   r#   zDynamicClipboard.set_datac   &    ""4(((((r   r   r   c                T    |                                                      |           d S r   )r=   r'   r&   s     r   r'   zDynamicClipboard.set_textf   r?   r   c                R    |                                                                   d S r   )r=   r*   r)   s    r   r*   zDynamicClipboard.rotatei   s$      """""r   c                N    |                                                                  S r   )r=   r,   r)   s    r   r,   zDynamicClipboard.get_datal   s      ))+++r   N)r9   r:   r   r   )r   r   r-   r.   r/   r0   )
r   r   r   r   r   r=   r#   r'   r*   r,   r   r   r   r   r   V   s         + + + +8 8 8 8) ) ) )) ) ) )# # # #, , , , , ,r   r   N)r   
__future__r   abcr   r   typingr   prompt_toolkit.selectionr   __all__r	   r   r
   r   r   r   r   <module>rH      s&    # " " " " " ' ' ' ' ' ' ' '       2 2 2 2 2 2             '    B    Y   $, , , , ,y , , , , ,r   