Repository URL to install this package:
| 
      
        
        
        Version: 
        
         
          
          3.0.176  ▾
        
         | 
| 
    
    tvault-contego-common
  
    /
        
    home
  
        /
        
    tvault
  
        /
        
    .virtenv
  
        /
        
    lib
  
        /
        
    python2.7
  
        /
        
    site-packages
  
        /
        
    fasteners
  
        /
        _utils.pyc
   | 
|---|
ó
ìEYc           @   s¢   d  d l  Z  d  d l Z d  d l m Z d Z e  j e  Z d   Z d e	 f d     YZ
 d e f d     YZ d	 e	 f d
     YZ
 d e	 f d     YZ d S(
   iÿÿÿÿN(   t	   monotonici   c          G   s%   x |  D] } | d k	 r | Sq Wd S(   sE   Returns first of values that is *not* None (or None if all are/were).N(   t   None(   t   valuest   val(    (    sE   /home/tvault/.virtenv/lib/python2.7/site-packages/fasteners/_utils.pyt   pick_first_not_none   s    
t	   LockStackc           B   s5   e  Z d  Z d d  Z d   Z d   Z d   Z RS(   sã   Simple lock stack to get and release many locks.
    An instance of this should **not** be used by many threads at the
    same time, as the stack that is maintained will be corrupted and
    invalid if that is attempted.
    c         C   s   g  |  _  t | t  |  _ d  S(   N(   t   _stackR   t   LOGt   _logger(   t   selft   logger(    (    sE   /home/tvault/.virtenv/lib/python2.7/site-packages/fasteners/_utils.pyt   __init__.   s    	c         C   s)   | j    } | r% |  j j |  n  | S(   N(   t   acquireR   t   append(   R	   t   lockt   gotten(    (    sE   /home/tvault/.virtenv/lib/python2.7/site-packages/fasteners/_utils.pyt   acquire_lock2   s    c         C   s   |  S(   N(    (   R	   (    (    sE   /home/tvault/.virtenv/lib/python2.7/site-packages/fasteners/_utils.pyt	   __enter__8   s    c         C   sz   t  |  j  } | } x^ |  j ru |  j j   } y | j   Wn' t k
 rg |  j j d | |  n X| d 8} q Wd  S(   Ns6   Failed releasing lock %s from lock stack with %s locksi   (   t   lenR   t   popt   releaset	   ExceptionR   t	   exception(   R	   t   exc_typet	   exc_valuet   exc_tbt   am_leftt   tot_amR   (    (    sE   /home/tvault/.virtenv/lib/python2.7/site-packages/fasteners/_utils.pyt   __exit__;   s    
N(   t   __name__t
   __module__t   __doc__R   R   R   R   R   (    (    (    sE   /home/tvault/.virtenv/lib/python2.7/site-packages/fasteners/_utils.pyR   &