ó
\K]c           @` sH   d  Z  d d l m Z m Z m Z d d l Z d e f d „  ƒ  YZ d S(   s!   
Implements:
- Threadlocal stack
i    (   t   print_functiont   absolute_importt   divisionNt   TLStackc           B` st   e  Z d  „  Z e d „  ƒ Z d „  Z d „  Z e d „  ƒ Z e d „  ƒ Z d „  Z	 d „  Z
 d „  Z d	 „  Z RS(
   c         C` s   t  j ƒ  |  _ d  S(   N(   t	   threadingt   local(   t   self(    (    s;   lib/python2.7/site-packages/numba/servicelib/threadlocal.pyt   __init__
   s    c         C` s9   y |  j  j SWn$ t k
 r4 g  |  j  _ |  j  j SXd  S(   N(   R   t   stackt   AttributeError(   R   (    (    s;   lib/python2.7/site-packages/numba/servicelib/threadlocal.pyR      s
    c         C` s   |  j  j | ƒ d  S(   N(   R   t   append(   R   t   item(    (    s;   lib/python2.7/site-packages/numba/servicelib/threadlocal.pyt   push   s    c         C` s   |  j  j ƒ  S(   N(   R   t   pop(   R   (    (    s;   lib/python2.7/site-packages/numba/servicelib/threadlocal.pyR      s    c         C` s   |  j  d S(   Niÿÿÿÿ(   R   (   R   (    (    s;   lib/python2.7/site-packages/numba/servicelib/threadlocal.pyt   top   s    c         C` s   |  j  S(   N(   R   (   R   (    (    s;   lib/python2.7/site-packages/numba/servicelib/threadlocal.pyt   is_empty!   s    c         C` s   |  j  S(   N(   R   (   R   (    (    s;   lib/python2.7/site-packages/numba/servicelib/threadlocal.pyt   __bool__%   s    c         C` s
   |  j  ƒ  S(   N(   R   (   R   (    (    s;   lib/python2.7/site-packages/numba/servicelib/threadlocal.pyt   __nonzero__(   s    c         C` s   t  |  j ƒ S(   N(   t   lenR   (   R   (    (    s;   lib/python2.7/site-packages/numba/servicelib/threadlocal.pyt   __len__+   s    c         C` s   |  j  ƒ  d  S(   N(   R   (   R   (    (    s;   lib/python2.7/site-packages/numba/servicelib/threadlocal.pyt   clear.   s    (   t   __name__t
   __module__R   t   propertyR   R   R   R   R   R   R   R   R   (    (    (    s;   lib/python2.7/site-packages/numba/servicelib/threadlocal.pyR   	   s   	
					(   t   __doc__t
   __future__R    R   R   R   t   objectR   (    (    (    s;   lib/python2.7/site-packages/numba/servicelib/threadlocal.pyt   <module>   s   