ó
±xYc           @   sF   d  d l  m Z m Z d d l m Z d Z d e f d     YZ d S(   i   (   t	   Clipboardt   ClipboardDatai’’’’(   t   dequet   InMemoryClipboardc           B   s8   e  Z d  Z d d d  Z d   Z d   Z d   Z RS(   s   
    Default clipboard implementation.
    Just keep the data in memory.

    This implements a kill-ring, for Emacs mode.
    i<   c         C   sh   | d  k s! t | t  s! t  | d k s3 t  | |  _ t   |  _ | d  k	 rd |  j |  n  d  S(   Ni   (   t   Nonet
   isinstanceR   t   AssertionErrort   max_sizeR   t   _ringt   set_data(   t   selft   dataR   (    (    sA   lib/python2.7/site-packages/prompt_toolkit/clipboard/in_memory.pyt   __init__   s    !	c         C   sU   t  | t  s t  |  j j |  x) t |  j  |  j k rP |  j j   q( Wd  S(   N(   R   R   R   R   t
   appendleftt   lenR   t   pop(   R
   R   (    (    sA   lib/python2.7/site-packages/prompt_toolkit/clipboard/in_memory.pyR	      s    c         C   s   |  j  r |  j  d St   Sd  S(   Ni    (   R   R   (   R
   (    (    sA   lib/python2.7/site-packages/prompt_toolkit/clipboard/in_memory.pyt   get_data!   s    	c         C   s)   |  j  r% |  j  j |  j  j    n  d  S(   N(   R   t   appendt   popleft(   R
   (    (    sA   lib/python2.7/site-packages/prompt_toolkit/clipboard/in_memory.pyt   rotate'   s    	N(   t   __name__t
   __module__t   __doc__R   R   R	   R   R   (    (    (    sA   lib/python2.7/site-packages/prompt_toolkit/clipboard/in_memory.pyR   
   s
   			N(   R   (   t   baseR    R   t   collectionsR   t   __all__R   (    (    (    sA   lib/python2.7/site-packages/prompt_toolkit/clipboard/in_memory.pyt   <module>   s   