
                         :    S SK JrJr  SSKJr  Sr " S S\5      rg)   )	ClipboardClipboardData    )deque)InMemoryClipboardc                   4    \ rS rSrSrS	S jrS rS rS rSr	g)
r   
   zo
Default clipboard implementation.
Just keep the data in memory.

This implements a kill-ring, for Emacs mode.
Nc                     Ub  [        U[        5      (       d   eUS:  d   eX l        [        5       U l        Ub  U R                  U5        g g )Nr   )
isinstancer   max_sizer   _ringset_data)selfdatar   s      5lib/third_party/prompt_toolkit/clipboard/in_memory.py__init__InMemoryClipboard.__init__   sJ    |z$>>>>1}} W
MM$     c                 .   [        U[        5      (       d   eU R                  R                  U5        [	        U R                  5      U R
                  :  a@  U R                  R                  5         [	        U R                  5      U R
                  :  a  M?  g g N)r   r   r   
appendleftlenr   pop)r   r   s     r   r   InMemoryClipboard.set_data   s_    $....

d#$**o-JJNN $**o-r   c                 V    U R                   (       a  U R                   S   $ [        5       $ )Nr   )r   r   r   s    r   get_dataInMemoryClipboard.get_data!   s    ::::a=  ?"r   c                     U R                   (       a4  U R                   R                  U R                   R                  5       5        g g r   )r   appendpopleftr   s    r   rotateInMemoryClipboard.rotate'   s-    ::JJdjj0023 r   )r   r   )N<   )
__name__
__module____qualname____firstlineno____doc__r   r   r   r"   __static_attributes__ r   r   r   r   
   s     #4r   r   N)baser   r   collectionsr   __all__r   r+   r   r   <module>r/      s    * 
 4	  4r   