
    f$                    H    d dl mZ d dlmZ ddlmZmZ dgZ G d de      Zy)    )annotations)deque   )	ClipboardClipboardDataInMemoryClipboardc                  2    e Zd ZdZdddZd	dZd
dZddZy)r   z
    Default clipboard implementation.
    Just keep the data in memory.

    This implements a kill-ring, for Emacs mode.
    Nc                f    |dk\  sJ || _         t               | _        || j                  |       y y )Nr   )max_sizer   _ringset_data)selfdatar   s      ]/var/www/cvtools/html/venv/lib/python3.12/site-packages/prompt_toolkit/clipboard/in_memory.py__init__zInMemoryClipboard.__init__   s5    1}} +07
MM$     c                    | j                   j                  |       t        | j                         | j                  kD  r>| j                   j	                          t        | j                         | j                  kD  r=y y N)r   
appendleftlenr   pop)r   r   s     r   r   zInMemoryClipboard.set_data   sL    

d#$**o-JJNN $**o-r   c                L    | j                   r| j                   d   S t               S )Nr   )r   r   r   s    r   get_datazInMemoryClipboard.get_data#   s    ::::a=  ?"r   c                    | j                   r4| j                   j                  | j                   j                                y y r   )r   appendpopleftr   s    r   rotatezInMemoryClipboard.rotate)   s-    ::JJdjj0023 r   )N<   )r   zClipboardData | Noner   intreturnNone)r   r   r!   r"   )r!   r   )r!   r"   )__name__
__module____qualname____doc__r   r   r   r    r   r   r   r      s     #4r   N)	
__future__r   collectionsr   baser   r   __all__r   r'   r   r   <module>r,      s&    "  * 
 4	  4r   