
    ^h	                        S r SSKJr  SSKJrJr  SSKJr  SSKJ	r	  / SQr
 " S S5      r " S	 S
\S9r " S S\5      r " S S\5      rg)z'
Clipboard for command line interface.
    )annotations)ABCMetaabstractmethod)Callable)SelectionType)	ClipboardClipboardDataDummyClipboardDynamicClipboardc                  H    \ rS rSrSrS\R                  4     SS jjrSrg)r	      zk
Text on the clipboard.

:param text: string
:param type: :class:`~prompt_toolkit.selection.SelectionType`
 c                    Xl         X l        g Ntexttype)selfr   r   s      W/home/james-whalen/.local/lib/python3.13/site-packages/prompt_toolkit/clipboard/base.py__init__ClipboardData.__init__   s     		    r   N)r   strr   r   returnNone)	__name__
__module____qualname____firstlineno____doc__r   
CHARACTERSr   __static_attributes__ r   r   r	   r	      s6     M4L4L$1	 r   r	   c                  T    \ rS rSrSr\S	S j5       rS
S jrSS jr\SS j5       r	Sr
g)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                    g)zM
Set data to the clipboard.

:param data: :class:`~.ClipboardData` instance.
Nr#   r   datas     r   set_dataClipboard.set_data*       r   c                8    U R                  [        U5      5        g)z/
Shortcut for setting plain text on clipboard.
N)r)   r	   r   r   s     r   set_textClipboard.set_text2   s     	mD)*r   c                    g)z'
For Emacs mode, rotate the kill ring.
Nr#   r   s    r   rotateClipboard.rotate8   r+   r   c                    g)z
Return clipboard data.
Nr#   r1   s    r   get_dataClipboard.get_data=   r+   r   r#   Nr(   r	   r   r   r   r   r   r   r   r   r   r	   )r   r   r   r   r    r   r)   r.   r2   r5   r"   r#   r   r   r   r   #   s9      +
  r   r   )	metaclassc                  @    \ rS rSrSrS	S jrS
S jrSS jrSS jrSr	g)r
   D   z:
Clipboard implementation that doesn't remember anything.
c                    g r   r#   r'   s     r   r)   DummyClipboard.set_dataI       r   c                    g r   r#   r-   s     r   r.   DummyClipboard.set_textL   r@   r   c                    g r   r#   r1   s    r   r2   DummyClipboard.rotateO   r@   r   c                    [        5       $ r   )r	   r1   s    r   r5   DummyClipboard.get_dataR   s
    r   r#   Nr7   r8   r9   r:   )
r   r   r   r   r    r)   r.   r2   r5   r"   r#   r   r   r
   r
   D   s    r   r
   c                  T    \ rS rSrSrSS jrSS jrSS jrSS jrSS jr	SS jr
S	rg
)r   V   z
Clipboard class that can dynamically returns any Clipboard.

:param get_clipboard: Callable that returns a :class:`.Clipboard` instance.
c                    Xl         g r   get_clipboard)r   rK   s     r   r   DynamicClipboard.__init__]   s    *r   c                D    U R                  5       =(       d
    [        5       $ r   )rK   r
   r1   s    r   
_clipboardDynamicClipboard._clipboard`   s    !!#7~'77r   c                B    U R                  5       R                  U5        g r   )rN   r)   r'   s     r   r)   DynamicClipboard.set_datac       ""4(r   c                B    U R                  5       R                  U5        g r   )rN   r.   r-   s     r   r.   DynamicClipboard.set_textf   rR   r   c                @    U R                  5       R                  5         g r   )rN   r2   r1   s    r   r2   DynamicClipboard.rotatei   s      "r   c                >    U R                  5       R                  5       $ r   )rN   r5   r1   s    r   r5   DynamicClipboard.get_datal   s     ))++r   rJ   N)rK   zCallable[[], Clipboard | None]r   r   )r   r   r7   r8   r9   r:   )r   r   r   r   r    r   rN   r)   r.   r2   r5   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>r^      sN    # '  2 ' BY $,y ,r   