o
    i$                     @  sB   d dl mZ d dlmZ ddlmZmZ dgZG dd deZdS )    )annotations)deque   )	ClipboardClipboardDataInMemoryClipboardc                   @  s:   e Zd ZdZddd
dZdddZdddZdddZdS )r   z
    Default clipboard implementation.
    Just keep the data in memory.

    This implements a kill-ring, for Emacs mode.
    N<   dataClipboardData | Nonemax_sizeintreturnNonec                 C  s4   |dksJ || _ t | _|d ur| | d S d S )Nr   )r   r   _ringset_data)selfr	   r    r   _/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/prompt_toolkit/clipboard/in_memory.py__init__   s   zInMemoryClipboard.__init__r   c                 C  s>   | j | t| j | jkr| j   t| j | jksd S d S N)r   
appendleftlenr   pop)r   r	   r   r   r   r      s   
zInMemoryClipboard.set_datac                 C  s   | j r| j d S t S )Nr   )r   r   r   r   r   r   get_data#   s   
zInMemoryClipboard.get_datac                 C  s    | j r| j | j   d S d S r   )r   appendpopleftr   r   r   r   rotate)   s   zInMemoryClipboard.rotate)Nr   )r	   r
   r   r   r   r   )r	   r   r   r   )r   r   )r   r   )__name__
__module____qualname____doc__r   r   r   r   r   r   r   r   r      s    
	
N)	
__future__r   collectionsr   baser   r   __all__r   r   r   r   r   <module>   s    