
    %Qc	                         d 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.
    )ABCMetaabstractmethod)CallableOptional)SelectionType)	ClipboardClipboardDataDummyClipboardDynamicClipboardc                   6    e Zd ZdZdej        fdededdfdZdS )r	   z{
    Text on the clipboard.

    :param text: string
    :param type: :class:`~prompt_toolkit.selection.SelectionType`
     texttypereturnNc                 "    || _         || _        d S N)r   r   )selfr   r   s      =lib/python3.11/site-packages/prompt_toolkit/clipboard/base.py__init__zClipboardData.__init__   s     				    )__name__
__module____qualname____doc__r   
CHARACTERSstrr    r   r   r	   r	      sY          M4L $1	     r   r	   c                   f    e Zd ZdZededdfd            ZdeddfdZd
dZ	edef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   Nc                     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   c                 J    |                      t          |                     dS )z?
        Shortcut for setting plain text on clipboard.
        N)r"   r	   r   r   s     r   set_textzClipboard.set_text0   s$     	mD))*****r   c                     dS )z7
        For Emacs mode, rotate the kill ring.
        Nr   r   s    r   rotatezClipboard.rotate6   r#   r   c                     dS )z(
        Return clipboard data.
        Nr   r(   s    r   get_datazClipboard.get_data;   r#   r   r   N)r   r   r   r   r   r	   r"   r   r&   r)   r+   r   r   r   r   r   !   s          ] t    ^+S +T + + + +   
 -    ^  r   r   )	metaclassc                   F    e Zd ZdZdeddfdZdeddfdZd
dZdefd	Z	dS )r
   zB
    Clipboard implementation that doesn't remember anything.
    r   r   Nc                     d S r   r   r!   s     r   r"   zDummyClipboard.set_dataG       r   r   c                     d S r   r   r%   s     r   r&   zDummyClipboard.set_textJ   r0   r   c                     d S r   r   r(   s    r   r)   zDummyClipboard.rotateM   r0   r   c                     t                      S r   )r	   r(   s    r   r+   zDummyClipboard.get_dataP   s    r   r,   )
r   r   r   r   r	   r"   r   r&   r)   r+   r   r   r   r
   r
   B   s         ] t    S T       -      r   r
   c                   ~    e Zd ZdZdeg ee         f         ddfdZdefdZde	ddfdZ
d	eddfd
ZddZde	f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_clipboardr   Nc                     || _         d S r   )r5   )r   r5   s     r   r   zDynamicClipboard.__init__[   s    *r   c                 F    |                                  pt                      S r   )r5   r
   r(   s    r   
_clipboardzDynamicClipboard._clipboard^   s    !!##7~'7'77r   r   c                 T    |                                                      |           d S r   )r8   r"   r!   s     r   r"   zDynamicClipboard.set_dataa   &    ""4(((((r   r   c                 T    |                                                      |           d S r   )r8   r&   r%   s     r   r&   zDynamicClipboard.set_textd   r:   r   c                 R    |                                                                   d S r   )r8   r)   r(   s    r   r)   zDynamicClipboard.rotateg   s$      """""r   c                 N    |                                                                  S r   )r8   r+   r(   s    r   r+   zDynamicClipboard.get_dataj   s      ))+++r   r,   )r   r   r   r   r   r   r   r   r8   r	   r"   r   r&   r)   r+   r   r   r   r   r   T   s         +hr8I3F/F&G +D + + + +8I 8 8 8 8)] )t ) ) ) ))S )T ) ) ) )# # # #,- , , , , , ,r   r   N)r   abcr   r   typingr   r   prompt_toolkit.selectionr   __all__r	   r   r
   r   r   r   r   <module>rB      s    ( ' ' ' ' ' ' ' % % % % % % % % 2 2 2 2 2 2              '    B    Y   $, , , , ,y , , , , ,r   