î
É X‹  ã               @   sÆ  d  Z  d d d g Z d d l Z d d l Z d d l Z d d l Z d d l Z e Z y d d l m	 Z	 Wn3 e
 k
 r  e j d k r™ d d	 „  Z	 n ‚  Yn Xi e j d
 6d e j d d … d 6e j j d d ƒ d d 6e j d 6e j ƒ  d 6e j ƒ  d 6e	 ƒ  d 6d d 6Z xC e e j ƒ  ƒ D]/ Z d e k r+e e e e j d d ƒ <q+q+Wd d „  Z Gd d „  d e j ƒ Z d d „  Z d d „  Z e j ƒ  Z d d „  Z d d  d „ Z d S)!aì  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'
Údefault_environmentÚcompileÚ	interpreté    N)Úpython_implementationÚjavac               C   s   d S)NÚJython© r   r   r   úD/home/ubuntu/projects/ifolica/build/setuptools/_markerlib/markers.pyr   !   s    r   zsys.platformz%s.%sé   Úpython_versionú é   Úpython_full_versionzos.namezplatform.versionzplatform.machinezplatform.python_implementationÚextraÚ.Ú_c               C   s
   t  t ƒ S)z2Return copy of default PEP 385 globals dictionary.)ÚdictÚ_VARSr   r   r   r	   r   8   s    c               @   sº   e  Z d  Z d d „  Z e j e j e j e j e j	 e j
 f Z e e j e j f 7Z e e j e j e j e j e j e j e j e j e j e j f
 7Z d d „  Z d d „  Z d S)ÚASTWhitelistc             C   s   | |  _  d  S)N)Ú	statement)Úselfr   r   r   r	   Ú__init__=   s    zASTWhitelist.__init__c             C   sL   t  | |  j ƒ s9 t d |  j d | j d f ƒ ‚ n  t j j |  | ƒ S)z-Ensure statement only contains allowed nodes.z)Not allowed in environment markers.
%s
%sr   ú^)Ú
isinstanceÚALLOWEDÚSyntaxErrorr   Ú
col_offsetÚastÚNodeTransformerÚvisit)r   Únoder   r   r	   r   F   s
    zASTWhitelist.visitc             C   s8   t  j d | j j | j f | j ƒ } t  j | | ƒ S)z&Flatten one level of attribute access.z%s.%s)r   ÚNameÚvalueÚidÚattrÚctxÚcopy_location)r   r    Únew_noder   r   r	   Úvisit_AttributeN   s    (zASTWhitelist.visit_AttributeN)Ú__name__Ú
__module__Ú__qualname__r   r   ÚCompareÚBoolOpÚ	Attributer!   ÚLoadÚStrr   ÚAndÚOrÚEqÚGtÚGtEÚInÚIsÚIsNotÚLtÚLtEÚNotEqÚNotInr   r(   r   r   r   r	   r   <   s   *Fr   c             C   s.   t  j |  d d ƒ} t |  ƒ j | ƒ } | S)NÚmodeÚeval)r   Úparser   Úgeneric_visit)ÚmarkerÚtreeÚnew_treer   r   r	   Úparse_markerS   s    rD   c             C   s   t  |  d d d d ƒS)Nz<environment marker>r>   Údont_inheritT)Ú_builtin_compile)Úparsed_markerr   r   r	   Úcompile_markerX   s    rH   c                s‡   y t  |  SWn t k
 r  Yn X|  j ƒ  sB d d d d „ } n* t t |  ƒ ƒ ‰  d d ‡  f d d † } |  | _ | t  |  <t  |  S)zCReturn compiled marker as a function accepting an environment dict.Nc             S   s   d S)Ú Tr   )ÚenvironmentÚoverrider   r   r	   Ú	marker_fne   s    zcompile.<locals>.marker_fnc                sG   | d k r i  } n  |  d k r- t  ƒ  }  n  |  j | ƒ t ˆ  |  ƒ S)zoverride updates environmentN)r   Úupdater>   )rJ   rK   )Úcompiled_markerr   r	   rL   j   s    	)Ú_cacheÚKeyErrorÚstriprH   rD   Ú__doc__)rA   rL   r   )rN   r	   r   ^   s    	
c             C   s   t  |  ƒ | ƒ S)N)r   )rA   rJ   r   r   r	   r   v   s    )rR   Ú__all__r   ÚosÚplatformÚsysÚweakrefr   rF   r   ÚImportErrorÚnameÚversion_infoÚversionÚsplitÚmachiner   ÚlistÚkeysÚvarÚreplacer   r   r   rD   rH   ÚWeakValueDictionaryrO   r   r   r   r   r	   Ú<module>   s>   


!