ó
­Í6Sc           @   s<   d  d l  Z  d e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   iÿÿÿÿNt   KeyDatac           B   s   e  Z d  „  Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   t   secrett   nonce(   t   selfR   R   (    (    s+   D:\projects\nommiebot\btcesim\keyhandler.pyt   __init__   s    	(   t   __name__t
   __module__R   (    (    (    s+   D:\projects\nommiebot\btcesim\keyhandler.pyR       s   t
   KeyHandlerc           B   s†   e  Z d  Z d e d „ Z d „  Z d „  Z d „  Z d „  Z	 e
 d „  ƒ Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z RS(   s¦   KeyHandler handles the tedious task of managing nonces associated
    with a BTC-e API key/secret pair.
    The getNextNonce method is threadsafe, all others are not.c         C   s`   | s t  j d ƒ n  i  |  _ t |  _ | |  _ | d k	 r\ | |  _ |  j d d d ƒ n  d S(   sd   The given file is assumed to be a text file with three lines
        (key, secret, nonce) per entry.sT   The resaveOnDeletion argument to KeyHandler will default to True in future versions.t    N(   t   warningst   warnt   _keyst   Falset   resaveOnDeletiont   filenamet   Nonet   addKey(   R   R   R   (    (    s+   D:\projects\nommiebot\btcesim\keyhandler.pyR      s    				c         C   s   |  j  ƒ  d  S(   N(   t   close(   R   (    (    s+   D:\projects\nommiebot\btcesim\keyhandler.pyt   __del__$   s    c         C   s    |  j  r |  j |  j ƒ n  d  S(   N(   R   t   saveR   (   R   (    (    s+   D:\projects\nommiebot\btcesim\keyhandler.pyR   '   s    	c         C   s   |  S(   N(    (   R   (    (    s+   D:\projects\nommiebot\btcesim\keyhandler.pyt	   __enter__+   s    c         C   s   |  j  ƒ  d  S(   N(   R   (   R   t   exc_typet	   exc_valuet	   traceback(    (    s+   D:\projects\nommiebot\btcesim\keyhandler.pyt   __exit__.   s    c         C   s   |  j  j ƒ  S(   N(   R   t   keys(   R   (    (    s+   D:\projects\nommiebot\btcesim\keyhandler.pyR   1   s    c         C   s   |  j  j ƒ  S(   N(   R   R   (   R   (    (    s+   D:\projects\nommiebot\btcesim\keyhandler.pyt   getKeys5   s    c         C   s   d  S(   N(    (   R   R   (    (    s+   D:\projects\nommiebot\btcesim\keyhandler.pyR   8   s    c         C   s   t  | | ƒ |  j | <d  S(   N(   R    R   (   R   t   keyR   t
   next_nonce(    (    s+   D:\projects\nommiebot\btcesim\keyhandler.pyR   >   s    c         C   sM   |  j  j | ƒ } | d  k r1 t d | ƒ ‚ n  | j } | j d 7_ | S(   Ns   Key not found: %ri   (   R   t   getR   t	   ExceptionR   (   R   R   t   dataR   (    (    s+   D:\projects\nommiebot\btcesim\keyhandler.pyt   getNextNonceA   s    	c         C   s8   |  j  j | ƒ } | d  k r1 t d | ƒ ‚ n  | j S(   Ns   Key not found: %r(   R   R   R   R   R   (   R   R   R   (    (    s+   D:\projects\nommiebot\btcesim\keyhandler.pyt	   getSecretK   s    c         C   s>   |  j  j | ƒ } | d  k r1 t d | ƒ ‚ n  | | _ d  S(   Ns   Key not found: %r(   R   R   R   R   R   (   R   R   R   R   (    (    s+   D:\projects\nommiebot\btcesim\keyhandler.pyt   setNextNonceR   s    N(   R   R   t   __doc__R   t   TrueR   R   R   R   R   t   propertyR   R   R   R   R    R!   R"   (    (    (    s+   D:\projects\nommiebot\btcesim\keyhandler.pyR      s   								
	(   R	   t   objectR    R   (    (    (    s+   D:\projects\nommiebot\btcesim\keyhandler.pyt   <module>   s   