
U]                 @   s  d  d l  Z  d  d l m Z d  d l m Z d  d l m Z d  d l m Z m	 Z	 d d g d	 d  d! g d d" g i Z
 d d# d	 d$ d d% i Z e  j d  Z d d   Z d d   Z e d  Z e d
  Z e d  r e d  e d <e d  r e d  e d	 <e d re d e
 d <e d r-e d e
 d	 <e d k rd  d l m Z m Z e e  d
 k r{e d d e e d  e d d k re d j d d   e e d D   n8 e d d k re d j d d   e
 e d D   d S)&    N)ConfigParser)environ)exists)PopenPIPEcpython2      cpython3         ZpypyZdhpythonc             C   s  d  d  g } |  d k r d n d } t  j d j |   } t  j d j |   } | sb | r t   } | j d j |   | s | j d d d	 d d
 d   } | s | j d d d	 d j d d  } | r;y* t d d   | j d  D  | d <Wn5 t k
 r:} z t	 j
 d |  WYd  d  } ~ Xn X| ry* t d d   | j d  D  | d <Wn5 t k
 r} z t	 j
 d |  WYd  d  } ~ Xn X| S)Nr    3zDEBPYTHON{}_SUPPORTEDzDEBPYTHON{}_DEFAULTz#/usr/share/python{}/debian_defaultsDEFAULTzdefault-versionZfallback   zsupported-versionspythonc             s   s   |  ] } t  |  Vq d  S)N)int).0i r   */usr/share/dh-python/dhpython/_defaults.py	<genexpr>7   s    z#cpython_versions.<locals>.<genexpr>.r   z invalid debian_defaults file: %sc             s   s7   |  ]- } t  d  d   | j   j d  D  Vq d S)c             s   s   |  ] } t  |  Vq d  S)N)r   )r   jr   r   r   r   <   s    z-cpython_versions.<locals>.<genexpr>.<genexpr>r   N)tuplestripsplit)r   r   r   r   r   r   <   s   ,   )r   getformatr   readreplacer   r   	Exceptionlogwarn)majorresultZver	supporteddefaultconfigerrr   r   r   cpython_versions(   s0    	"*##r-   c          
   C   s|   t  |   s t d |    d j |   } t | d d d t ( } | j   \ } } t | d  } Wd  QRXt |  d  S)Nzmissing interpreter: %sz{} --versionshellTstdoutzutf-8)r   
ValueErrorr!   r   r   Zcommunicatestrprint)ZfpathZcommandZprocessr/   stderrr   r   r   	from_fileC   s    r4   r   __main__)argvr3   zinvalid number of argumentsfiler*   r   c             c   s   |  ] } t  |  Vq d  S)N)r1   )r   r   r   r   r   r   a   s    r   r)   r   c             c   s+   |  ]! } d  j  d d   | D  Vq d S)r   c             s   s   |  ] } t  |  Vq d  S)N)r1   )r   r   r   r   r   r   c   s    z<genexpr>.<genexpr>N)join)r   vr   r   r   r   c   s    )r   r	   )r   r   )r   r   )r   r   )r   r	   )r   r   )r   r   )Zloggingconfigparserr   osr   os.pathr   
subprocessr   r   Z	SUPPORTEDr   Z	getLoggerr%   r-   r4   r   r
   __name__sysr6   r3   lenr2   exitr8   r   r   r   r   <module>   s@   	




+