
    f	                        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y)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y)r	   z{
    Text on the clipboard.

    :param text: string
    :param type: :class:`~prompt_toolkit.selection.SelectionType`
     c                     || _         || _        y N)texttype)selfr   r   s      X/var/www/cvtools/html/venv/lib/python3.12/site-packages/prompt_toolkit/clipboard/base.py__init__zClipboardData.__init__   s     		    N)r   strr   r   returnNone)__name__
__module____qualname____doc__r   
CHARACTERSr    r   r   r	   r	      s1     M4L4L$1	r   r	   c                  D    e Zd ZdZedd       ZddZd	dZed
d       Zy)r   z
    Abstract baseclass for clipboards.
    (An implementation can be in memory, it can share the X11 or Windows
    keyboard, or can be persistent.)
    c                     y)ze
        Set data to the clipboard.

        :param data: :class:`~.ClipboardData` instance.
        Nr   r   datas     r   set_datazClipboard.set_data*       r   c                8    | j                  t        |             y)z?
        Shortcut for setting plain text on clipboard.
        N)r#   r	   r   r   s     r   set_textzClipboard.set_text2   s     	mD)*r   c                     y)z7
        For Emacs mode, rotate the kill ring.
        Nr   r   s    r   rotatezClipboard.rotate8   r$   r   c                     y)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   #   s9      +
  r   r   )	metaclassc                  0    e Zd ZdZddZddZd	dZd
dZy)r
   zB
    Clipboard implementation that doesn't remember anything.
    c                     y r   r   r!   s     r   r#   zDummyClipboard.set_dataI       r   c                     y r   r   r&   s     r   r'   zDummyClipboard.set_textL   r4   r   c                     y 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   s    r   r
   c                  @    e Zd ZdZd	dZd
dZddZddZddZddZ	y)r   z
    Clipboard class that can dynamically returns any Clipboard.

    :param get_clipboard: Callable that returns a :class:`.Clipboard` instance.
    c                    || _         y r   )get_clipboard)r   r:   s     r   r   zDynamicClipboard.__init__]   s
    *r   c                :    | j                         xs
 t               S r   )r:   r
   r)   s    r   
_clipboardzDynamicClipboard._clipboard`   s    !!#7~'77r   c                B    | j                         j                  |       y r   )r<   r#   r!   s     r   r#   zDynamicClipboard.set_datac       ""4(r   c                B    | j                         j                  |       y r   )r<   r'   r&   s     r   r'   zDynamicClipboard.set_textf   r>   r   c                @    | j                         j                          y r   )r<   r*   r)   s    r   r*   zDynamicClipboard.rotatei   s      "r   c                >    | j                         j                         S r   )r<   r,   r)   s    r   r,   zDynamicClipboard.get_datal   s     ))++r   N)r:   zCallable[[], Clipboard | None]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))#,r   r   N)r   
__future__r   abcr   r   typingr   prompt_toolkit.selectionr   __all__r	   r   r
   r   r   r   r   <module>rG      sN    # '  2 ' BY $,y ,r   