o
    žD®f$  ã                   @  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/webapp/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    ÿ