<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
ž
7’Res•  c               @   s  d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l m Z d  d l	 Z	 d  d l
 Z
 d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d d l m Z m Z d d l m Z m Z m Z m Z m Z d d l m Z d d l m  Z  m! Z! d d	 l" m# Z# m$ Z$ m% Z% m& Z& m' Z' m( Z( m) Z) m* Z* m+ Z+ d d
 l, m- Z- m. Z. e j/ e0 ƒ Z1 e2 a3 e4 e d ƒ r»d Z5 n9 e j6 j7 d ƒ rÖd Z5 n e j6 d k rîd Z5 n d Z5 e j8 d ƒ Z9 e9 r$d e j: d d … Z9 n  d e9 Z; e5 e9 Z< e j" j= ƒ  j> d d ƒ j> d d ƒ Z? e j8 d ƒ Z@ e@ o€e@ j7 d ƒ r˜e@ j> d d ƒ Z@ n d d „  ZA eA ƒ  Z@ [A e jB d e jC e jD Bƒ ZE e jB d e jC e jD Bƒ ZF e jB d ƒ ZG e jH d  k rd! d" „  ZI n d# d" „  ZI Gd$ d% „  d% eJ ƒ ZK eK ƒ  ZL Gd& d' „  d' eJ ƒ ZM d( d) „  ZN eN ƒ  ZO [N e2 d* d+ „ ZP d S(,   i    (   u   unicode_literalsN(   u   message_from_filei   (   u   __version__u   DistlibException(   u	   sysconfigu   ZipFileu   fsdecodeu	   text_typeu   filter(   u   InstalledDistribution(   u   Metadatau   METADATA_FILENAME(	   u   FileOperatoru   convert_pathu	   CSVReaderu	   CSVWriteru   Cacheu   cached_propertyu   get_cache_baseu   read_exportsu   tempdir(   u   NormalizedVersionu   UnsupportedVersionErroru   pypy_version_infou   ppu   javau   jyu   cliu   ipu   cpu   py_version_nodotu   %s%si   u   pyu   -u   _u   .u   SOABIu   cpython-c              C   s|   d t  g }  t j d ƒ r+ |  j d ƒ n  t j d ƒ rJ |  j d ƒ n  t j d ƒ d k ro |  j d ƒ n  d	 j |  ƒ S(
   Nu   cpu   Py_DEBUGu   du   WITH_PYMALLOCu   mu   Py_UNICODE_SIZEi   u   uu    (   u
   VER_SUFFIXu	   sysconfigu   get_config_varu   appendu   join(   u   parts(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   _derive_abi;   s    u   _derive_abiur   
(?P<nm>[^-]+)
-(?P<vn>\d+[^-]*)
(-(?P<bn>\d+[^-]*))?
-(?P<py>\w+\d+(\.\w+\d+)*)
-(?P<bi>\w+)
-(?P<ar>\w+)
\.whl$
u7   
(?P<nm>[^-]+)
-(?P<vn>\d+[^-]*)
(-(?P<bn>\d+[^-]*))?$
s   \s*#![^\r\n]*u   /c             C   s   |  S(   N(    (   u   o(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   <lambda>Z   s    u   <lambda>c             C   s   |  j  t j d ƒ S(   Nu   /(   u   replaceu   osu   sep(   u   o(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   <lambda>\   s    c             B   sS   |  Ee  Z d  Z d d „  Z d d „  Z d d „  Z d d d „ Z d	 d
 „  Z d S(   u   Mounterc             C   s   i  |  _  i  |  _ d  S(   N(   u   impure_wheelsu   libs(   u   self(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   __init__`   s    	u   Mounter.__init__c             C   s!   | |  j  | <|  j j | ƒ d  S(   N(   u   impure_wheelsu   libsu   update(   u   selfu   pathnameu
   extensions(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   addd   s    u   Mounter.addc             C   sI   |  j  j | ƒ } x0 | D]( \ } } | |  j k r |  j | =q q Wd  S(   N(   u   impure_wheelsu   popu   libs(   u   selfu   pathnameu
   extensionsu   ku   v(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   removeh   s    u   Mounter.removec             C   s"   | |  j  k r |  } n d  } | S(   N(   u   libsu   None(   u   selfu   fullnameu   pathu   result(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   find_modulen   s    	u   Mounter.find_modulec             C   s›   | t  j k r t  j | } nx | |  j k rA t d | ƒ ‚ n  t j | |  j | ƒ } |  | _ | j d d ƒ } t | ƒ d k r— | d | _	 n  | S(   Nu   unable to find extension for %su   .i   i    (
   u   sysu   modulesu   libsu   ImportErroru   impu   load_dynamicu
   __loader__u   rsplitu   lenu   __package__(   u   selfu   fullnameu   resultu   parts(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   load_moduleu   s    	u   Mounter.load_moduleN(	   u   __name__u
   __module__u   __qualname__u   __init__u   addu   removeu   Noneu   find_moduleu   load_module(   u
   __locals__(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   Mounter_   s
   u   Mounterc             B   sd  |  Ee  Z d  Z d Z d1 Z d Z d0 d2 d2 d d „ Z e	 d d „  ƒ Z
 e	 d d	 „  ƒ Z e	 d
 d „  ƒ Z e d d „  ƒ Z d d „  Z e d d „  ƒ Z d d „  Z d0 d d „ Z d d „  Z d d „  Z d d „  Z d0 d0 d d „ Z d d „  Z d  d! „  Z d" d# „  Z d$ d% „  Z d& d' „  Z d2 d( d) „ Z d* d+ „  Z d, d- „  Z d0 d. d/ „ Z d0 S(3   u   Wheelu@   
    Class to build and install from Wheel files (PEP 427).
    i   u   sha256c             C   sÄ  | |  _  | |  _ d |  _ t g |  _ d g |  _ d g |  _ t j ƒ  |  _	 | d k r{ d |  _ d |  _ |  j |  _ nEt j | ƒ } | rá | j d ƒ } | d |  _ | d j d d	 ƒ |  _ | d
 |  _ |  j |  _ nß t j j | ƒ \ } } t j | ƒ } | s!t d | ƒ ‚ n  | r?t j j | ƒ |  _	 n  | |  _ | j d ƒ } | d |  _ | d |  _ | d
 |  _ | d j d ƒ |  _ | d j d ƒ |  _ | d j d ƒ |  _ d S(   uB   
        Initialise an instance using a (valid) filename.
        u    u   noneu   anyu   dummyu   0.1u   nmu   vnu   _u   -u   bnu   Invalid name or filename: %ru   pyu   .u   biu   arN(   u   signu   should_verifyu   buildveru   PYVERu   pyveru   abiu   archu   osu   getcwdu   dirnameu   Noneu   nameu   versionu   filenameu	   _filenameu   NAME_VERSION_REu   matchu	   groupdictu   replaceu   pathu   splitu   FILENAME_REu   DistlibExceptionu   abspath(   u   selfu   filenameu   signu   verifyu   mu   infou   dirname(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   __init__   sB    						u   Wheel.__init__c             C   s‡   |  j  r d |  j  } n d } d j |  j ƒ } d j |  j ƒ } d j |  j ƒ } |  j j d d ƒ } d |  j | | | | | f S(   uJ   
        Build and return a filename from the various components.
        u   -u    u   .u   _u   %s-%s%s-%s-%s-%s.whl(   u   buildveru   joinu   pyveru   abiu   archu   versionu   replaceu   name(   u   selfu   buildveru   pyveru   abiu   archu   version(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   filename¶   s    	u   Wheel.filenamec             C   s+   t  j j |  j |  j ƒ } t  j j | ƒ S(   N(   u   osu   pathu   joinu   dirnameu   filenameu   isfile(   u   selfu   path(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   existsÇ   s    u   Wheel.existsc             c   sN   xG |  j  D]< } x3 |  j D]( } x |  j D] } | | | f Vq* Wq Wq
 Wd  S(   N(   u   pyveru   abiu   arch(   u   selfu   pyveru   abiu   arch(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   tagsÌ   s    u
   Wheel.tagsc             C   s-  t  j j |  j |  j ƒ } d |  j |  j f } d | } t j d ƒ } t	 | d ƒ Î } |  j
 | ƒ } | d j d d ƒ } t d d	 „  | Dƒ ƒ } | d k  r¯ d
 }	 n t }	 yI t j | |	 ƒ }
 | j |
 ƒ " } | | ƒ } t d | ƒ } Wd  QXWn" t k
 r"t d |	 ƒ ‚ Yn XWd  QX| S(   Nu   %s-%su   %s.dist-infou   utf-8u   ru   Wheel-Versionu   .i   c             S   s   g  |  ] } t  | ƒ ‘ q S(    (   u   int(   u   .0u   i(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu
   <listcomp>Ü   s   	 u"   Wheel.metadata.<locals>.<listcomp>u   METADATAu   fileobju$   Invalid wheel, because %s is missing(   i   i   (   u   osu   pathu   joinu   dirnameu   filenameu   nameu   versionu   codecsu	   getreaderu   ZipFileu   get_wheel_metadatau   splitu   tupleu   METADATA_FILENAMEu	   posixpathu   openu   Metadatau   KeyErroru
   ValueError(   u   selfu   pathnameu   name_veru   info_diru   wrapperu   zfu   wheel_metadatau   wvu   file_versionu   fnu   metadata_filenameu   bfu   wfu   result(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   metadataÓ   s(    
	u   Wheel.metadatac          	   C   su   d |  j  |  j f } d | } t j | d ƒ } | j | ƒ ( } t j d ƒ | ƒ } t | ƒ } Wd  QXt | ƒ S(   Nu   %s-%su   %s.dist-infou   WHEELu   utf-8(	   u   nameu   versionu	   posixpathu   joinu   openu   codecsu	   getreaderu   message_from_fileu   dict(   u   selfu   zfu   name_veru   info_diru   metadata_filenameu   bfu   wfu   message(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   get_wheel_metadataë   s    
u   Wheel.get_wheel_metadatac          	   C   sF   t  j j |  j |  j ƒ } t | d ƒ  } |  j | ƒ } Wd  QX| S(   Nu   r(   u   osu   pathu   joinu   dirnameu   filenameu   ZipFileu   get_wheel_metadata(   u   selfu   pathnameu   zfu   result(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   infoô   s    u
   Wheel.infoc             C   s¬   t  j | ƒ } | r2 d | | j ƒ  d  … } nv | j d ƒ } | j d ƒ } | d k  sh | | k rq d } n) | | | d … d k r” d } n d } d | | } | S(   Ns   #!pythons   s   
i    i   s   
(   u
   SHEBANG_REu   matchu   endu   find(   u   selfu   datau   mu   cru   lfu   term(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   process_shebangû   s    		u   Wheel.process_shebangc             C   s   | d  k r |  j } n  y t t | ƒ } Wn" t k
 rO t d | ƒ ‚ Yn X| | ƒ j ƒ  } t j | ƒ j	 d ƒ j
 d ƒ } | | f S(   Nu   Unsupported hash algorithm: %rs   =u   ascii(   u   Noneu	   hash_kindu   getattru   hashlibu   AttributeErroru   DistlibExceptionu   digestu   base64u   urlsafe_b64encodeu   rstripu   decode(   u   selfu   datau	   hash_kindu   hasheru   result(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   get_hash  s    !u   Wheel.get_hashc             C   sh   t  | ƒ V } x | D] } | j | ƒ q Wt t j j | | ƒ ƒ } | j | d d f ƒ Wd  QXd  S(   Nu    (   u	   CSVWriteru   writerowu   to_posixu   osu   pathu   relpath(   u   selfu   recordsu   record_pathu   baseu   writeru   rowu   p(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   write_record  s
    u   Wheel.write_recordc             C   sô   g  } | \ } } t  t |  j ƒ } xs | D]k \ } }	 t |	 d ƒ  }
 |
 j ƒ  } Wd  QXd |  j | ƒ } t j j |	 ƒ } | j	 | | | f ƒ q+ Wt j j
 | d ƒ }	 |  j | |	 | ƒ t t j j
 | d ƒ ƒ } | j	 | |	 f ƒ d  S(   Nu   rbu   %s=%su   RECORD(   u   getattru   hashlibu	   hash_kindu   openu   readu   get_hashu   osu   pathu   getsizeu   appendu   joinu   write_recordu   to_posix(   u   selfu   infou   libdiru   archive_pathsu   recordsu   distinfou   info_diru   hasheru   apu   pu   fu   datau   digestu   size(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   write_records  s    u   Wheel.write_recordsc             C   s\   t  | d t j ƒ A } x7 | D]/ \ } } t j d | | ƒ | j | | ƒ q WWd  QXd  S(   Nu   wu   Wrote %s to %s in wheel(   u   ZipFileu   zipfileu   ZIP_DEFLATEDu   loggeru   debugu   write(   u   selfu   pathnameu   archive_pathsu   zfu   apu   p(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu	   build_zip.  s    u   Wheel.build_zipc       !         sõ  | d k r i  } n  t t ‡  f d d †  d% ƒ ƒ d } | d k rj d } t g } t g } t g } n! d } t g } d g } d	 g } | j d
 | ƒ |  _ | j d | ƒ |  _	 | j d | ƒ |  _
 ˆ  | }	 d |  j |  j f }
 d |
 } d |
 } g  } xKd& D]C} | ˆ  k r#qn  ˆ  | } t j j | ƒ rxt j | ƒ D]ø \ } } } xæ | D]Þ } t t j j | | ƒ ƒ } t j j | | ƒ } t t j j | | | ƒ ƒ } | j | | f ƒ | d k re| j d ƒ ret | d ƒ  } | j ƒ  } Wd QX|  j | ƒ } t | d ƒ  } | j | ƒ Wd QXqeqeWqOWqqW|	 } d } xt j | ƒ D]÷ \ } } } | | k röxU t | ƒ D]G \ } } t | ƒ } | j d ƒ r–t j j | | ƒ } | | =Pq–q–W| söt d ƒ ‚ n  xl | D]d } t | ƒ j d' ƒ rqýn  t j j | | ƒ } t t j j | | ƒ ƒ } | j | | f ƒ qýWqnWt j | ƒ } xf | D]^ } | d( k rt t j j | | ƒ ƒ } t t j j | | ƒ ƒ } | j | | f ƒ qqWd | pð|  j d t d  | g } x4 |  j  D]) \ } } } | j d! | | | f ƒ qWt j j | d" ƒ } t | d# ƒ  } | j d$ j | ƒ ƒ Wd QXt t j j | d" ƒ ƒ } | j | | f ƒ |  j! | | f |	 | ƒ t j j |  j" |  j# ƒ }  |  j$ |  | ƒ |  S()   u‰   
        Build a wheel from files in specified paths, and use any specified tags
        when determining the name of the wheel.
        c                s
   |  ˆ  k S(   N(    (   u   o(   u   paths(    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   <lambda><  s    u   Wheel.build.<locals>.<lambda>u   purelibu   platlibi    u   falseu   trueu   noneu   anyu   pyveru   abiu   archu   %s-%su   %s.datau   %s.dist-infou   datau   headersu   scriptsu   .exeu   rbNu   wbu
   .dist-infou(   .dist-info directory expected, not foundu   .pycu   .pyou   RECORDu	   INSTALLERu   SHAREDu   Wheel-Version: %d.%du   Generator: distlib %su   Root-Is-Purelib: %su   Tag: %s-%s-%su   WHEELu   wu   
(   u   purelibu   platlib(   u   datau   headersu   scripts(   u   .pycu   .pyo(   u   RECORDu	   INSTALLERu   SHARED(%   u   Noneu   listu   filteru   IMPVERu   ABIu   ARCHu   PYVERu   getu   pyveru   abiu   archu   nameu   versionu   osu   pathu   isdiru   walku   fsdecodeu   joinu   relpathu   to_posixu   appendu   endswithu   openu   readu   process_shebangu   writeu	   enumerateu   AssertionErroru   listdiru   wheel_versionu   __version__u   tagsu   write_recordsu   dirnameu   filenameu	   build_zip(!   u   selfu   pathsu   tagsu   wheel_versionu   libkeyu   is_pureu   default_pyveru   default_abiu   default_archu   libdiru   name_veru   data_diru   info_diru   archive_pathsu   keyu   pathu   rootu   dirsu   filesu   fnu   pu   rpu   apu   fu   datau   distinfou   iu   dnu   wheel_metadatau   pyveru   abiu   archu   pathname(    (   u   pathsu2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   build4  s”    	%					



%u   Wheel.buildc       B   I   K   s	  | j  } | j d ƒ } | j d d9 ƒ } t j j |  j |  j ƒ } d |  j |  j	 f } d | }	 d | }
 t
 j |
 t ƒ } t
 j |
 d ƒ } t
 j |
 d ƒ } t j d ƒ } t | d	 ƒ ¶} | j | ƒ  } | | ƒ } t | ƒ } Wd
 QX| d j d d ƒ } t d d „  | Dƒ ƒ } | |  j k rM| rM| |  j | ƒ n  | d d k rj| d } n
 | d } i  } | j | ƒ D } t d | ƒ , } x" | D] } | d } | | | <q¥WWd
 QXWd
 QXt
 j |	 d ƒ } t
 j |
 d ƒ } t
 j |	 d d ƒ } t d | ƒ } d: | _ t j } g  }  t j ƒ  }! |! | _ d
 | _ zyãx˜| j ƒ  D]Š}" |" j }# t  |# t! ƒ rˆ|# }$ n |# j" d ƒ }$ |$ j# d ƒ r¬qan  | |$ } | d rìt$ |" j% ƒ | d k rìt& d |$ ƒ ‚ n  | d rp| d j d d ƒ \ }% }& | j |# ƒ  } | j' ƒ  }' Wd
 QX|  j( |' |% ƒ \ }( }) |) |& k rpt& d |# ƒ ‚ qpn  | r¡|$ j) | | f ƒ r¡t* j+ d |$ ƒ qan  |$ j) | ƒ o½|$ j# d ƒ }* |$ j) | ƒ r|$ j d  d ƒ \ }( }+ }, t j j | |+ t, |, ƒ ƒ }- n3 |$ | | f k r$qan  t j j | t, |$ ƒ ƒ }- |* sL| j |# ƒ  } | j- | |- ƒ Wd
 QX|  j. |- ƒ | ré| d rét |- d! ƒ J } | j' ƒ  }' |  j( |' |% ƒ \ }( }. |. |) k ràt& d" |- ƒ ‚ n  Wd
 QXn  | rë|- j# d# ƒ rëy  | j/ |- ƒ }/ |  j. |/ ƒ WqIt0 k
 rEt* j1 d$ d% d: ƒYqIXqëqat j j2 t, |# ƒ ƒ }0 t j j |! |0 ƒ }1 | j |# ƒ  } | j- | |1 ƒ Wd
 QXt j j |- ƒ \ }2 }0 |2 | _ | j3 |0 ƒ }3 | j4 |3 ƒ |  j5 |3 ƒ qaW| rt* j+ d& ƒ d
 }4 n$d
 }5 |  j6 d } | d' k r&t
 j |
 d( ƒ }6 yÅ | j |6 ƒ  } t7 | ƒ }7 Wd
 QXi  }5 x” d; D]Œ }8 d+ |8 }9 |9 |7 k rpi  |5 d, |8 <}: x[ |7 |9 j8 ƒ  D]F }; d- |; j9 |; j: f }< |; j; rè|< d. |; j; 7}< n  |< |: |; j <q¯WqpqpWWqˆt0 k
 r"t* j1 d/ ƒ YqˆXnb y@ | j | ƒ + } | | ƒ } t< j= | ƒ j d0 ƒ }5 Wd
 QXWn t0 k
 r‡t* j1 d1 ƒ Yn X|5 r«|5 j d2 i  ƒ }= |5 j d3 i  ƒ }> |= s¾|> r«| j d d ƒ }? t j j> |? ƒ sñt? d4 ƒ ‚ n  |? | _ xF |= j@ ƒ  D]8 \ }9 }; d5 |9 |; f }@ | j3 |@ ƒ }3 | j4 |3 ƒ qW|> r¨i d: d* 6}A xL |> j@ ƒ  D]; \ }9 }; d5 |9 |; f }@ | j3 |@ |A ƒ }3 | j4 |3 ƒ qcWq¨q«n  t j j | |
 ƒ } tA | ƒ }4 tB | ƒ } | d =| d =| | d6 <|4 jC | | ƒ } | r	|  j. | ƒ n  |4 jD |  | d7 | ƒ |4 SWn, t0 k
 rb	t* jE d8 ƒ | jF ƒ  ‚  Yn XWd
 tG jH |! ƒ XWd
 QXd
 S(<   uÁ  
        Install a wheel to the specified paths. If kwarg ``warner`` is
        specified, it should be a callable, which will be called with two
        tuples indicating the wheel version of this software and the wheel
        version in the file, if there is a discrepancy in the versions.
        This can be used to issue any warnings to raise any exceptions.
        If kwarg ``lib_only`` is True, only the purelib/platlib files are
        installed, and the headers, scripts, data and dist-info metadata are
        not written.

        The return value is a :class:`InstalledDistribution` instance unless
        ``options.lib_only`` is True, in which case the return value is ``None``.
        u   warneru   lib_onlyu   %s-%su   %s.datau   %s.dist-infou   WHEELu   RECORDu   utf-8u   rNu   Wheel-Versionu   .i   c             S   s   g  |  ] } t  | ƒ ‘ q S(    (   u   int(   u   .0u   i(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu
   <listcomp>¿  s   	 u!   Wheel.install.<locals>.<listcomp>u   Root-Is-Purelibu   trueu   purelibu   platlibu   streami    u    u   scriptsu   dry_runu   /RECORD.jwsi   u   size mismatch for %su   =u   digest mismatch for %su   lib_only: skipping %su   .exeu   /u   rbu   digest mismatch on write for %su   .pyu   Byte-compilation failedu   exc_infou   lib_only: returning Noneu   1.0u   entry_points.txtu   consoleu   guiu
   %s_scriptsu   wrap_%su   %s:%su    %suA   Unable to read legacy script metadata, so cannot generate scriptsu   commandsu8   Unable to read JSON metadata, so cannot generate scriptsu   wrap_consoleu   wrap_guiu   Valid script path not specifiedu   %s = %su   libu   prefixu   installation failed.FT(   u   consoleu   gui(I   u   dry_runu   getu   Falseu   osu   pathu   joinu   dirnameu   filenameu   nameu   versionu	   posixpathu   METADATA_FILENAMEu   codecsu	   getreaderu   ZipFileu   openu   message_from_fileu   splitu   tupleu   wheel_versionu	   CSVReaderu   FileOperatoru   Trueu   recordu   sysu   dont_write_bytecodeu   tempfileu   mkdtempu
   source_diru   Noneu
   target_diru   infolistu
   isinstanceu	   text_typeu   decodeu   endswithu   stru	   file_sizeu   DistlibExceptionu   readu   get_hashu
   startswithu   loggeru   debugu   convert_pathu   copy_streamu   appendu   byte_compileu	   Exceptionu   warningu   basenameu   makeu   set_executable_modeu   extendu   infou   read_exportsu   valuesu   prefixu   suffixu   flagsu   jsonu   loadu   isdiru
   ValueErroru   itemsu   InstalledDistributionu   dictu   write_shared_locationsu   write_installed_filesu	   exceptionu   rollbacku   shutilu   rmtree(B   u   selfu   pathsu   makeru   kwargsu   dry_runu   warneru   lib_onlyu   pathnameu   name_veru   data_diru   info_diru   metadata_nameu   wheel_metadata_nameu   record_nameu   wrapperu   zfu   bwfu   wfu   messageu   wvu   file_versionu   libdiru   recordsu   bfu   readeru   rowu   pu   data_pfxu   info_pfxu
   script_pfxu   fileopu   bcu   outfilesu   workdiru   zinfou   arcnameu	   u_arcnameu   kindu   valueu   datau   _u   digestu	   is_scriptu   whereu   rpu   outfileu	   newdigestu   pycu   fnu   worknameu   dnu	   filenamesu   distu   commandsu   epu   epdatau   keyu   ku   du   vu   su   console_scriptsu   gui_scriptsu
   script_diru   scriptu   options(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   installœ  s>   	



	
				
#
"		
	"	

u   Wheel.installc             C   sM   t  d  k rI t j j t ƒ  t d ƒ t j d  d … ƒ } t	 | ƒ a  n  t  S(   Nu   dylib-cachei   (
   u   cacheu   Noneu   osu   pathu   joinu   get_cache_baseu   stru   sysu   versionu   Cache(   u   selfu   base(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   _get_dylib_cache~  s
    u   Wheel._get_dylib_cachec             C   sï  t  j j |  j |  j ƒ } d |  j |  j f } d | } t j | d ƒ } t j	 d ƒ } g  } t
 | d ƒ x} y\| j | ƒ G} | | ƒ }	 t j |	 ƒ }
 |  j ƒ  } | j | ƒ } t  j j | j | ƒ } t  j j | ƒ sù t  j | ƒ n  xÍ |
 j ƒ  D]¿ \ } } t  j j | t | ƒ ƒ } t  j j | ƒ sHd } nQ t  j | ƒ j } t j j | ƒ } | j | ƒ } t j | j Œ  } | | k } | r²| j | | ƒ n  | j | | f ƒ qWWd  QXWn t k
 räYn XWd  QX| S(   Nu   %s-%su   %s.dist-infou
   EXTENSIONSu   utf-8u   rT(    u   osu   pathu   joinu   dirnameu   filenameu   nameu   versionu	   posixpathu   codecsu	   getreaderu   ZipFileu   openu   jsonu   loadu   _get_dylib_cacheu   prefix_to_diru   baseu   isdiru   makedirsu   itemsu   convert_pathu   existsu   Trueu   statu   st_mtimeu   datetimeu   fromtimestampu   getinfou	   date_timeu   extractu   appendu   KeyError(   u   selfu   pathnameu   name_veru   info_diru   arcnameu   wrapperu   resultu   zfu   bfu   wfu
   extensionsu   cacheu   prefixu
   cache_baseu   nameu   relpathu   destu   extractu	   file_timeu   infou
   wheel_time(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   _get_extensions‡  s>    
	!u   Wheel._get_extensionsc             C   s
   t  |  ƒ S(   uM   
        Determine if a wheel is compatible with the running system.
        (   u   is_compatible(   u   self(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   is_compatible©  s    u   Wheel.is_compatiblec             C   s   d S(   uP   
        Determine if a wheel is asserted as mountable by its metadata.
        T(   u   True(   u   self(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   is_mountable¯  s    u   Wheel.is_mountablec             C   s
  t  j j t  j j |  j |  j ƒ ƒ } |  j ƒ  sL d | } t | ƒ ‚ n  |  j ƒ  sq d | } t | ƒ ‚ n  | t	 j k r“ t
 j d | ƒ ns | r¬ t	 j j | ƒ n t	 j j d | ƒ |  j ƒ  } | rt t	 j k ró t	 j j t ƒ n  t j | | ƒ n  d  S(   Nu)   Wheel %s not compatible with this Python.u$   Wheel %s is marked as not mountable.u   %s already in pathi    (   u   osu   pathu   abspathu   joinu   dirnameu   filenameu   is_compatibleu   DistlibExceptionu   is_mountableu   sysu   loggeru   debugu   appendu   insertu   _get_extensionsu   _hooku	   meta_pathu   add(   u   selfu   appendu   pathnameu   msgu
   extensions(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   mountµ  s"    '

u   Wheel.mountc             C   sª   t  j j t  j j |  j |  j ƒ ƒ } | t j k rI t j d | ƒ n] t j j	 | ƒ | t
 j k rx t
 j	 | ƒ n  t
 j s¦ t
 t j k r¦ t j j	 t
 ƒ q¦ n  d  S(   Nu   %s not in path(   u   osu   pathu   abspathu   joinu   dirnameu   filenameu   sysu   loggeru   debugu   removeu   _hooku   impure_wheelsu	   meta_path(   u   selfu   pathname(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   unmountÊ  s    '	u   Wheel.unmountc          $   C   sŸ  t  j j |  j |  j ƒ } d |  j |  j f } d | } d | } t j | t ƒ } t j | d ƒ } t j | d ƒ } t	 j
 d ƒ } t | d ƒ  }	 |	 j | ƒ  }
 | |
 ƒ } t | ƒ } Wd  QX| d j d	 d
 ƒ } t d d „  | Dƒ ƒ } i  } |	 j | ƒ D } t d | ƒ , } x" | D] } | d } | | | <q,WWd  QXWd  QXx<|	 j ƒ  D].} | j } t | t ƒ rŠ| } n | j d ƒ } d | k r¸t d | ƒ ‚ n  | j d ƒ rÍqcn  | | } | d rt | j ƒ | d k rt d | ƒ ‚ n  | d
 rc| d
 j d d
 ƒ \ } } |	 j | ƒ  } | j ƒ  } Wd  QX|  j | | ƒ \ } } | | k r‘t d | ƒ ‚ q‘qcqcWWd  QXd  S(   Nu   %s-%su   %s.datau   %s.dist-infou   WHEELu   RECORDu   utf-8u   ru   Wheel-Versionu   .i   c             S   s   g  |  ] } t  | ƒ ‘ q S(    (   u   int(   u   .0u   i(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu
   <listcomp>ç  s   	 u    Wheel.verify.<locals>.<listcomp>u   streami    u   ..u   invalid entry in wheel: %ru   /RECORD.jwsi   u   size mismatch for %su   =u   digest mismatch for %s(   u   osu   pathu   joinu   dirnameu   filenameu   nameu   versionu	   posixpathu   METADATA_FILENAMEu   codecsu	   getreaderu   ZipFileu   openu   message_from_fileu   splitu   tupleu	   CSVReaderu   infolistu
   isinstanceu	   text_typeu   decodeu   DistlibExceptionu   endswithu   stru	   file_sizeu   readu   get_hash(   u   selfu   pathnameu   name_veru   data_diru   info_diru   metadata_nameu   wheel_metadata_nameu   record_nameu   wrapperu   zfu   bwfu   wfu   messageu   wvu   file_versionu   recordsu   bfu   readeru   rowu   pu   zinfou   arcnameu	   u_arcnameu   kindu   valueu   datau   _u   digest(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   verifyÖ  sT    


		
#
u   Wheel.verifyc             K   sœ  d d „  } d d „  } t  j j |  j |  j ƒ } d |  j |  j f } d | } t j | d ƒ }	 t ƒ  (}
 t	 | d ƒ º } i  } xª | j
 ƒ  D]œ } | j } t | t ƒ r½ | } n | j d	 ƒ } | |	 k rÞ q– n  d
 | k rý t d | ƒ ‚ n  | j | |
 ƒ t  j j |
 t | ƒ ƒ } | | | <q– WWd QX| | | ƒ \ } } | | |  } | r’| | | ƒ \ } } | r| | k r| | | ƒ n  | d k rÝt j d d d d d |
 ƒ \ } } t  j | ƒ n= t  j j | ƒ st d | ƒ ‚ n  t  j j | |  j ƒ } t | j ƒ  ƒ } t  j j |
 | ƒ } | | f } |  j | |
 | ƒ |  j | | ƒ | d k r’t j | | ƒ q’n  Wd QX| S(   u‘  
        Update the contents of a wheel in a generic way. The modifier should
        be a callable which expects a dictionary argument: its keys are
        archive-entry paths, and its values are absolute filesystem paths
        where the contents the corresponding archive entries can be found. The
        modifier is free to change the contents of the files pointed to, add
        new entries and remove entries, before returning. This method will
        extract the entire contents of the wheel to a temporary location, call
        the modifier, and then use the passed (and possibly updated)
        dictionary to write a new wheel. If ``dest_dir`` is specified, the new
        wheel is written there -- otherwise, the original wheel is overwritten.

        The modifier should return True if it updated the wheel, else False.
        This method returns the same value the modifier returns.
        c             S   sh   d  } } d | t f } | |  k r3 d | } n  | |  k r^ |  | } t d | ƒ j } n  | | f S(   Nu   %s/%su   %s/PKG-INFOu   path(   u   Noneu   METADATA_FILENAMEu   Metadatau   version(   u   path_mapu   info_diru   versionu   pathu   key(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   get_version  s    

u!   Wheel.update.<locals>.get_versionc             S   s)  d  } y  t |  ƒ } |  j d ƒ } | d k  r= d |  } nh d d „  |  | d d  … j d ƒ Dƒ } | d d 7<d |  d  | … d j d	 d
 „  | Dƒ ƒ f } Wn" t k
 rÊ t j d |  ƒ Yn X| r%t d | ƒ } | | _	 | j
 t ƒ } | j d | d | ƒ t j d |  | ƒ n  d  S(   Nu   -i    u   %s-1c             S   s   g  |  ] } t  | ƒ ‘ q S(    (   u   int(   u   .0u   s(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu
   <listcomp>/  s   	 u8   Wheel.update.<locals>.update_version.<locals>.<listcomp>i   u   .u   %s-%sc             s   s   |  ] } t  | ƒ Vq d  S(   N(   u   str(   u   .0u   i(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu	   <genexpr>2  s    u7   Wheel.update.<locals>.update_version.<locals>.<genexpr>u0   Cannot update non-compliant (PEP-440) version %ru   pathu   legacyu   Version updated from %r to %riÿÿÿÿ(   u   Noneu   NormalizedVersionu   findu   splitu   joinu   UnsupportedVersionErroru   loggeru   debugu   Metadatau   versionu   endswithu   METADATA_FILENAMEu   write(   u   versionu   pathu   updatedu   vu   iu   partsu   mdu   legacy(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   update_version'  s(    *$		u$   Wheel.update.<locals>.update_versionu   %s-%su   %s.dist-infou   RECORDu   ru   utf-8u   ..u   invalid entry in wheel: %rNu   suffixu   .whlu   prefixu   wheel-update-u   diru   Not a directory: %r(   u   osu   pathu   joinu   dirnameu   filenameu   nameu   versionu	   posixpathu   tempdiru   ZipFileu   infolistu
   isinstanceu	   text_typeu   decodeu   DistlibExceptionu   extractu   convert_pathu   Noneu   tempfileu   mkstempu   closeu   isdiru   listu   itemsu   write_recordsu	   build_zipu   shutilu   copyfile(   u   selfu   modifieru   dest_diru   kwargsu   get_versionu   update_versionu   pathnameu   name_veru   info_diru   record_nameu   workdiru   zfu   path_mapu   zinfou   arcnameu	   u_arcnameu   pathu   original_versionu   _u   modifiedu   current_versionu   fdu   newpathu   archive_pathsu   distinfou   info(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   update  sX    

		u   Wheel.updateN(   i   i   F(    u   __name__u
   __module__u   __qualname__u   __doc__u   wheel_versionu	   hash_kindu   Noneu   Falseu   __init__u   propertyu   filenameu   existsu   tagsu   cached_propertyu   metadatau   get_wheel_metadatau   infou   process_shebangu   get_hashu   write_recordu   write_recordsu	   build_zipu   buildu   installu   _get_dylib_cacheu   _get_extensionsu   is_compatibleu   is_mountableu   mountu   unmountu   verifyu   update(   u
   __locals__(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   Wheel…   s2   )	hâ	"6u   Wheelc              C   s†  t  g }  t  d } xG t t j d d d d ƒ D]( } |  j d j | t | ƒ g ƒ ƒ q1 Wg  } xL t j ƒ  D]> \ } } } | j	 d ƒ rp | j | j
 d d ƒ d ƒ qp qp W| j ƒ  t d k rÛ | j d t ƒ n  | j d ƒ g  } t g } t j d k r=t j d	 t ƒ } | r=| j ƒ  \ }	 } } }
 t | ƒ } |
 g } |
 d k rg| j d ƒ n  |
 d k rƒ| j d ƒ n  |
 d k rŸ| j d ƒ n  |
 d k r»| j d ƒ n  |
 d k r×| j d ƒ n  x` | d k r6x@ | D]8 } d |	 | | | f } | t k rí| j | ƒ qíqíW| d 8} qÚWq=n  xH | D]@ } x7 | D]/ }
 | j d j t |  d f ƒ | |
 f ƒ qQWqDWxw t |  ƒ D]i \ } } | j d j t | f ƒ d d f ƒ | d k r•| j d j t | d f ƒ d d f ƒ q•q•Wxw t |  ƒ D]i \ } } | j d j d | f ƒ d d f ƒ | d k r| j d j d | d f ƒ d d f ƒ qqWt | ƒ S(   uG   
    Return (pyver, abi, arch) tuples compatible with this Python.
    i    i   u    u   .abiu   .i   u   noneu   darwinu   (\w+)_(\d+)_(\d+)_(\w+)$u   i386u   ppcu   fatu   x86_64u   fat3u   ppc64u   fat64u   intelu	   universalu   %s_%s_%s_%su   anyu   pyiÿÿÿÿiÿÿÿÿ(   u   i386u   ppc(   u   i386u   ppcu   x86_64(   u   ppc64u   x86_64(   u   i386u   x86_64(   u   i386u   x86_64u   intelu   ppcu   ppc64(   u
   VER_SUFFIXu   rangeu   sysu   version_infou   appendu   joinu   stru   impu   get_suffixesu
   startswithu   splitu   sortu   ABIu   insertu   ARCHu   platformu   reu   matchu   groupsu   intu
   IMP_PREFIXu	   enumerateu   set(   u   versionsu   majoru   minoru   abisu   suffixu   _u   resultu   archesu   mu   nameu   archu   matchesu   matchu   su   abiu   iu   version(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   compatible_tagsq  s`    	
$&$
		1%0%0u   compatible_tagsc             C   sŽ   t  |  t ƒ s t |  ƒ }  n  d } | d  k r9 t } n  xN | D]F \ } } } | |  j k r@ | |  j k r@ | |  j k r@ d } Pq@ q@ W| S(   NFT(	   u
   isinstanceu   Wheelu   Falseu   Noneu   COMPATIBLE_TAGSu   pyveru   abiu   archu   True(   u   wheelu   tagsu   resultu   veru   abiu   arch(    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   is_compatible´  s    	-u   is_compatible(Q   u
   __future__u   unicode_literalsu   base64u   codecsu   datetimeu   distutils.utilu	   distutilsu   emailu   message_from_fileu   hashlibu   impu   jsonu   loggingu   osu	   posixpathu   reu   shutilu   sysu   tempfileu   zipfileu    u   __version__u   DistlibExceptionu   compatu	   sysconfigu   ZipFileu   fsdecodeu	   text_typeu   filteru   databaseu   InstalledDistributionu   metadatau   Metadatau   METADATA_FILENAMEu   utilu   FileOperatoru   convert_pathu	   CSVReaderu	   CSVWriteru   Cacheu   cached_propertyu   get_cache_baseu   read_exportsu   tempdiru   versionu   NormalizedVersionu   UnsupportedVersionErroru	   getLoggeru   __name__u   loggeru   Noneu   cacheu   hasattru
   IMP_PREFIXu   platformu
   startswithu   get_config_varu
   VER_SUFFIXu   version_infou   PYVERu   IMPVERu   get_platformu   replaceu   ARCHu   ABIu   _derive_abiu   compileu
   IGNORECASEu   VERBOSEu   FILENAME_REu   NAME_VERSION_REu
   SHEBANG_REu   sepu   to_posixu   objectu   Mounteru   _hooku   Wheelu   compatible_tagsu   COMPATIBLE_TAGSu   is_compatible(    (    (    u2   /tmp/pip-zej_zi-build/pip/_vendor/distlib/wheel.pyu   <module>   sx   (@			

'		#	ÿ ÿ î>	