ó
’›V]c           @   s0   d  e  f d „  ƒ  YZ d e  f d „  ƒ  YZ d S(   t   BaseContextc           B   s   e  Z d d  „ Z d „  Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   t	   evaluatort   parent_context(   t   selfR   R   (    (    s2   lib/python2.7/site-packages/jedi/common/context.pyt   __init__   s    	c         C   s3   |  } x& t  r. | j d  k r" | S| j } q	 Wd  S(   N(   t   TrueR   t   None(   R   t   context(    (    s2   lib/python2.7/site-packages/jedi/common/context.pyt   get_root_context   s
    	N(   t   __name__t
   __module__R   R   R   (    (    (    s2   lib/python2.7/site-packages/jedi/common/context.pyR       s   t   BaseContextSetc           B   s‰   e  Z d  „  Z e d „  ƒ Z e d „  ƒ Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d	 „  Z d
 „  Z d „  Z d „  Z RS(   c         C   s:   t  | ƒ |  _ x$ | D] } t | t ƒ s t ‚ q Wd  S(   N(   t	   frozensett   _sett
   isinstanceR   t   AssertionError(   R   t   iterableR   (    (    s2   lib/python2.7/site-packages/jedi/common/context.pyR      s    c         C   s   |  j  |  ƒ } | | _ | S(   N(   t   __new__R   (   t   clst
   frozenset_R   (    (    s2   lib/python2.7/site-packages/jedi/common/context.pyt   _from_frozen_set   s    	c         C   s\   t  ƒ  } x= | D]5 } t | t ƒ r5 | | j O} q | t | ƒ O} q W|  j t | ƒ ƒ S(   s7   
        Used to work with an iterable of set.
        (   t   setR   R   R   R   R   (   R   t   setst
   aggregatedt   set_(    (    s2   lib/python2.7/site-packages/jedi/common/context.pyt	   from_sets   s    	c         C   s   |  j  |  j | j Bƒ S(   N(   R   R   (   R   t   other(    (    s2   lib/python2.7/site-packages/jedi/common/context.pyt   __or__'   s    c         C   s   |  j  |  j | j @ƒ S(   N(   R   R   (   R   R   (    (    s2   lib/python2.7/site-packages/jedi/common/context.pyt   __and__*   s    c         c   s   x |  j  D] } | Vq
 Wd  S(   N(   R   (   R   t   element(    (    s2   lib/python2.7/site-packages/jedi/common/context.pyt   __iter__-   s    c         C   s   t  |  j ƒ S(   N(   t   boolR   (   R   (    (    s2   lib/python2.7/site-packages/jedi/common/context.pyt   __bool__1   s    c         C   s   t  |  j ƒ S(   N(   t   lenR   (   R   (    (    s2   lib/python2.7/site-packages/jedi/common/context.pyt   __len__4   s    c         C   s   d d j  d „  |  j Dƒ ƒ S(   Ns   S{%s}s   , c         s   s   |  ] } t  | ƒ Vq d  S(   N(   t   str(   t   .0t   s(    (    s2   lib/python2.7/site-packages/jedi/common/context.pys	   <genexpr>8   s    (   t   joinR   (   R   (    (    s2   lib/python2.7/site-packages/jedi/common/context.pyt   __repr__7   s    c         C   s   |  j  t | |  j ƒ ƒ S(   N(   t	   __class__t   filterR   (   R   t   filter_func(    (    s2   lib/python2.7/site-packages/jedi/common/context.pyR)   :   s    c            s   ‡  ‡ f d †  } | S(   Nc             s&   ˆ j  ‡  ‡ ‡ f d †  ˆ j Dƒ ƒ S(   Nc         3   s'   |  ] } t  | ˆ ƒ ˆ  ˆ Ž  Vq d  S(   N(   t   getattr(   R$   R   (   t   argst   kwargst   name(    s2   lib/python2.7/site-packages/jedi/common/context.pys	   <genexpr>@   s   (   R   R   (   R,   R-   (   R.   R   (   R,   R-   s2   lib/python2.7/site-packages/jedi/common/context.pyt   mapper>   s    (    (   R   R.   R/   (    (   R.   R   s2   lib/python2.7/site-packages/jedi/common/context.pyt   __getattr__=   s    c         C   s   |  j  | j  k S(   N(   R   (   R   R   (    (    s2   lib/python2.7/site-packages/jedi/common/context.pyt   __eq__E   s    c         C   s   t  |  j ƒ S(   N(   t   hashR   (   R   (    (    s2   lib/python2.7/site-packages/jedi/common/context.pyt   __hash__H   s    (   R	   R
   R   t   classmethodR   R   R   R   R   R    R"   R'   R)   R0   R1   R3   (    (    (    s2   lib/python2.7/site-packages/jedi/common/context.pyR      s   										N(   t   objectR    R   (    (    (    s2   lib/python2.7/site-packages/jedi/common/context.pyt   <module>   s   