
     h	                        d Z ddlmZ ddlmZmZ ddlmZ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Optional)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      Y/var/www/html/Sam_Eipo/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_text1   s$     	mD))*****r   c                    dS )z7
        For Emacs mode, rotate the kill ring.
        Nr   r   s    r   rotatezClipboard.rotate7   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_dataH       r   r   r   c                    d S r   r   r'   s     r   r(   zDummyClipboard.set_textK   r5   r   c                    d S r   r   r*   s    r   r+   zDummyClipboard.rotateN   r5   r   c                    t                      S r   )r
   r*   s    r   r-   zDummyClipboard.get_dataQ   s    r   Nr.   r/   r0   r1   )r   r   r   r   r$   r(   r+   r-   r   r   r   r   r   C   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   )r:   )r   r:   s     r   r   zDynamicClipboard.__init__\   s    *r   r	   c                F    |                                  pt                      S r   )r:   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_datab   &    ""4(((((r   r   r   c                T    |                                                      |           d S r   )r>   r(   r'   s     r   r(   zDynamicClipboard.set_texte   r@   r   c                R    |                                                                   d S r   )r>   r+   r*   s    r   r+   zDynamicClipboard.rotateh   s$      """""r   c                N    |                                                                  S r   )r>   r-   r*   s    r   r-   zDynamicClipboard.get_datak   s      ))+++r   N)r:   r;   r   r   )r   r	   r.   r/   r0   r1   )
r   r   r   r   r   r>   r$   r(   r+   r-   r   r   r   r   r   U   s         + + + +8 8 8 8) ) ) )) ) ) )# # # #, , , , , ,r   r   N)r   
__future__r   abcr   r   typingr   r   prompt_toolkit.selectionr   __all__r
   r	   r   r   r   r   r   <module>rI      s,    # " " " " " ' ' ' ' ' ' ' ' % % % % % % % % 2 2 2 2 2 2             '    B    Y   $, , , , ,y , , , , ,r   