File: //opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/wheel.pyo
�
+�Rec           @   su   d  Z  d d l Z d d l m Z d d l m Z d d l m Z e r[ d d l m	 Z	 n  d e
 f d �  �  YZ d S(	   s`   Represents a wheel file and provides access to the various parts of the
name that have meaning.
i����N(   t   Tag(   t   InvalidWheelFilename(   t   MYPY_CHECK_RUNNING(   t   Listt   Wheelc           B   sG   e  Z d  Z e j d e j � Z d �  Z d �  Z d �  Z	 d �  Z
 RS(   s   A wheel files�   ^(?P<namever>(?P<name>.+?)-(?P<ver>.*?))
        ((-(?P<build>\d[^-]*?))?-(?P<pyver>.+?)-(?P<abi>.+?)-(?P<plat>.+?)
        \.whl|\.dist-info)$c            s�   �  j  j | � } | s0 t d j | � � � n  | �  _ | j d � j d d � �  _ | j d � j d d � �  _ | j d � �  _	 | j d � j
 d � �  _ | j d	 � j
 d � �  _ | j d
 � j
 d � �  _
 �  f d �  �  j D� �  _ d S(
   sX   
        :raises InvalidWheelFilename: when the filename is invalid for a wheel
        s!   {} is not a valid wheel filename.t   namet   _t   -t   vert   buildt   pyvert   .t   abit   platc            sB   h  |  ]8 } �  j  D]( } �  j D] } t | | | � � q  q q S(    (   t   abist   platsR    (   t   .0t   xt   yt   z(   t   self(    sK   /opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/wheel.pys	   <setcomp>/   s   	 N(   t
   wheel_file_ret   matchR   t   formatt   filenamet   groupt   replaceR   t   versiont	   build_tagt   splitt
   pyversionsR   R   t	   file_tags(   R   R   t
   wheel_info(    (   R   sK   /opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/wheel.pyt   __init__   s    	c         C   s   t  d �  |  j D� � S(   s4   Return the wheel's tags as a sorted list of strings.c         s   s   |  ] } t  | � Vq d  S(   N(   t   str(   R   t   tag(    (    sK   /opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/wheel.pys	   <genexpr>6   s    (   t   sortedR   (   R   (    (    sK   /opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/wheel.pyt   get_formatted_file_tags3   s    c            s   t  �  f d �  |  j D� � S(   s�  Return the lowest index that one of the wheel's file_tag combinations
        achieves in the given list of supported tags.
        For example, if there are 8 supported tags and one of the file tags
        is first in the list, then return 0.
        :param tags: the PEP 425 tags to check the wheel against, in order
            with most preferred first.
        :raises ValueError: If none of the wheel's file tags match one of
            the supported tags.
        c         3   s*   |  ]  } | �  k r �  j  | � Vq d  S(   N(   t   index(   R   R#   (   t   tags(    sK   /opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/wheel.pys	   <genexpr>F   s    (   t   minR   (   R   R'