Ñò
6»‚Uc           @   s³  d  Z  d d d g Z d d k Z d d k Z d d k Z d d k Z d d k Z e Z y d d k l	 Z	 Wn3 e
 j
 o' e i d j o d „  Z	 q¡ ‚  n Xh e i d	 6d
 e i d  d 6e i i d d ƒ d d 6e i d 6e i ƒ  d 6e i ƒ  d 6e	 ƒ  d 6d d 6Z xE e e i ƒ  ƒ D]1 Z d e j o e e e e i d d ƒ <q%q%Wd „  Z d e i f d „  ƒ  YZ d „  Z d „  Z e i ƒ  Z d „  Z d d „ Z d S(   sì  Interpret PEP 345 environment markers.

EXPR [in|==|!=|not in] EXPR [or|and] ...

where EXPR belongs to any of those:

    python_version = '%s.%s' % (sys.version_info[0], sys.version_info[1])
    python_full_version = sys.version.split()[0]
    os.name = os.name
    sys.platform = sys.platform
    platform.version = platform.version()
    platform.machine = platform.machine()
    platform.python_implementation = platform.python_implementation()
    a free string, like '2.6', or 'win32'
t   default_environmentt   compilet	   interpretiÿÿÿÿN(   t   python_implementationt   javac           C   s   d S(   Nt   Jython(    (    (    (    s6   /usr/lib/python2.6/site-packages/_markerlib/markers.pyR   !   s    s   sys.platforms   %s.%si   t   python_versiont    i   i    t   python_full_versions   os.names   platform.versions   platform.machines   platform.python_implementationt   extrat   .t   _c           C   s
   t  t ƒ S(   s2   Return copy of default PEP 385 globals dictionary.(   t   dictt   _VARS(    (    (    s6   /usr/lib/python2.6/site-packages/_markerlib/markers.pyR    8   s    t   ASTWhitelistc           B   s©   e  Z d  „  Z e i e i e i e i e i e i	 f Z
 e
 e i e i f 7Z
 e
 e i e i e i e i e i e i e i e i e i e i f
 7Z
 d „  Z d „  Z RS(   c         C   s   | |  _  d  S(   N(   t	   statement(   t   selfR   (    (    s6   /usr/lib/python2.6/site-packages/_markerlib/markers.pyt   __init__=   s    c         C   sN   t  | |  i ƒ p( t d |  i d | i d f ƒ ‚ n t i i |  | ƒ S(   s-   Ensure statement only contains allowed nodes.s)   Not allowed in environment markers.
%s
%sR   t   ^(   t
   isinstancet   ALLOWEDt   SyntaxErrorR   t
   col_offsett   astt   NodeTransformert   visit(   R   t   node(    (    s6   /usr/lib/python2.6/site-packages/_markerlib/markers.pyR   F   s
    c         C   s8   t  i d | i i | i f | i ƒ } t  i | | ƒ S(   s&   Flatten one level of attribute access.s   %s.%s(   R   t   Namet   valuet   idt   attrt   ctxt   copy_location(   R   R   t   new_node(    (    s6   /usr/lib/python2.6/site-packages/_markerlib/markers.pyt   visit_AttributeN   s    ((   t   __name__t
   __module__R   R   t   Comparet   BoolOpt	   AttributeR   t   Loadt   StrR   t   Andt   Ort   Eqt   Gtt   GtEt   Int   Ist   IsNott   Ltt   LtEt   NotEqt   NotInR   R"   (    (    (    s6   /usr/lib/python2.6/site-packages/_markerlib/markers.pyR   <   s   	*F	c         C   s.   t  i |  d d ƒ} t |  ƒ i | ƒ } | S(   Nt   modet   eval(   R   t   parseR   t   generic_visit(   t   markert   treet   new_tree(    (    s6   /usr/lib/python2.6/site-packages/_markerlib/markers.pyt   parse_markerS   s    c         C   s   t  |  d d d t ƒS(   Ns   <environment marker>R7   t   dont_inherit(   t   _builtin_compilet   True(   t   parsed_marker(    (    s6   /usr/lib/python2.6/site-packages/_markerlib/markers.pyt   compile_markerX   s    c            s„   y t  |  SWn t j
 o n X|  i ƒ  p d d d „ } n( t t |  ƒ ƒ ‰  d d ‡  f d † } |  | _ | t  |  <t  |  S(   sC   Return compiled marker as a function accepting an environment dict.c         S   s   t  S(   t    (   R@   (   t   environmentt   override(    (    s6   /usr/lib/python2.6/site-packages/_markerlib/markers.pyt	   marker_fne   s    c            sK   | d j o
 h  } n |  d j o t ƒ  }  n |  i | ƒ t ˆ  |  ƒ S(   s   override updates environmentN(   t   NoneR    t   updateR7   (   RD   RE   (   t   compiled_marker(    s6   /usr/lib/python2.6/site-packages/_markerlib/markers.pyRF   j   s    
N(   t   _cachet   KeyErrort   stripRG   RB   R=   t   __doc__(   R:   RF   (    (   RI   s6   /usr/lib/python2.6/site-packages/_markerlib/markers.pyR   ^   s    	
c         C   s   t  |  ƒ | ƒ S(   N(   R   (   R:   RD   (    (    s6   /usr/lib/python2.6/site-packages/_markerlib/markers.pyR   v   s    (   RM   t   __all__R   t   ost   platformt   syst   weakrefR   R?   R   t   ImportErrort   namet   version_infot   versiont   splitt   machineRG   R   t   listt   keyst   vart   replaceR    R   R   R=   RB   t   WeakValueDictionaryRJ   R   (    (    (    s6   /usr/lib/python2.6/site-packages/_markerlib/markers.pyt   <module>   s@   


 "				