
                            d dl mZmZmZmZ d dlZd dlZd dlZd dlZej                  D  cg c]  } | ej                         dfvs|  c} e_	        d dlZd dl d dlmZ d dlmZmZmZ d dlmZ d dlmZ ed	k7  r ed
      dZed	k7  r ed
      ej6                  dk  reZneZej6                  dk  r G d d      Z G d d      Z ej6                  dk\  rd dlm!Z!m"Z"mZm Z  ej6                  dk  r e#       Z$n	 e#d      Z$ej6                  dk  s ejJ                         dk(  r
 G d d      Z&ejN                  jQ                  dd      dk(  rd Z)nd Z)d Z*d Z+ e+e,j[                  dd            Z.dgZ/d  Z0e.d!   Z e0e      Z1 G d" d#ej(                        Z2 G d$ d%e      Z3	 d d&l4m5Z6  G d' d(e6      Z7d)Z8 G d+ d,e:      Z; G d- d.e:      Z<d/ Z= e=        yc c} w # e9$ r d*Z8Y /w xY w)0    )print_functionabsolute_importdivisionunicode_literalsN )*)parse)setup	ExtensionDistribution)install_lib)sdist__main__zshould never include setup.py   r      c                       e Zd Zy)BytesN__name__
__module____qualname__     $lib/third_party/ruamel/yaml/setup.pyr   r   )       r   r   c                       e Zd Zy)NameConstantNr   r   r   r   r   r   ,   r   r   r   )r      )StrNumr   r   utf-8)encoding)      Jythonc                       e Zd Zy)SetNr   r   r   r   r)   r)   =   r   r   r)   DVDEBUGc                       y Nr   )argskws     r   debugr/   C   s    r   c                     t        t        j                  d   d      5 }|j                         }||d<   t	        dj                  t        j                  j                               |d       t	        | i | d d d        y # 1 sw Y   y xY w)Nr*   afilez{:%Y-%d-%mT%H:%M:%S} )r2   end)openosenvironcopyprintformatdatetimenow)r-   r.   fpkw1s       r   r/   r/   I   sl    "**Y'-'')CCK(//0A0A0E0E0GHrWZ[43	 .--s   ABB
c                     ddddt        | t              rt        | d      } t        | t              r| j                  } nt        d      fd |       S )	a  
    Safely evaluate an expression node or a string containing a Python
    expression.  The string or node provided may only consist of the following
    Python literal structures: strings, bytes, numbers, tuples, lists, dicts,
    sets, booleans, and None.

    Even when passing in Unicode, the resulting Str types parsed are 'str' in Python 2.
    I don't now how to set 'unicode_literals' on parse -> Str is explicitly converted.
    NTF)NoneTrueFalseeval)modez"only string or AST nodes supportedc                    t        | t              rTt        j                  dk  r5t        | j                  t
              s| j                  j                  d      S | j                  S t        | t              r| j                  S t        | t              r| j                  S t        | t              rt        t        | j                              S t        | t              rt        t        | j                              S t        | t               rt#        t        | j                              S t        | t$              r2t'        fdt)        | j*                  | j,                        D              S t        | t.              r| j0                  S t        j                  dk  r.t        | t2              r| j4                  v r/| j4                     S t        | t6              rwt        | j8                  t:        t<        f      rWt        | j>                  t        t6        t@        f      r2 | j>                        }t        | j8                  t:              r|S | S t        | t@              rt        | j8                  tB        tD        f      rt        | jF                  t        t6        t@        f      rmt        | jH                  t        t6        t@        f      rH | jH                        } | jF                        }t        | j8                  tB              r||z   S ||z
  S t        | tJ              rtM        | jN                  dd       }|dk(  rt'        fd| jP                  D              S |dk(  rt#         | jR                  d	               S |d
k(  r0tU        jV                  | jR                  D cg c]
  } |       c} S |dk(  r0tU        jT                  | jR                  D cg c]
  } |       c} S tY        dt[        |       z         }d|_.        | j^                  |_/        | j`                  |_1        t[        |       |_2        | |_3        |c c}w c c}w )Nr   r#   c              3   D   K   | ]  \  }} |       |      f  y wr,   r   ).0kv_converts      r   	<genexpr>z1literal_eval.<locals>._convert.<locals>.<genexpr>s   s%     [?Ztq!!hqk2?Zs    r   iddictc              3   Z   K   | ]"  }|j                    |j                        f $ y wr,   )argvalue)rG   rH   rJ   s     r   rK   z1literal_eval.<locals>._convert.<locals>.<genexpr>   s$     N1QUUHQWW$56s   (+setr   dater;   zmalformed node or string: z<string>)4
isinstancer!   sysversion_infosunicodedecoder   r"   nTupletuplemapeltsListlistr)   rQ   DictrM   zipkeysvaluesr   rP   NamerL   UnaryOpopUAddUSuboperandBinOpAddSubrightleftCallgetattrfunckeywordsr-   r;   rR   SyntaxErrorreprfilenamelineno
col_offsetoffsettextnode)	rz   ri   rn   rm   func_idrH   errrJ   _safe_namess	          r   rJ   zliteral_eval.<locals>._convertc   s!   dC $&z$&&'/Jvv}}W--66Me$66Mc"66Me$Xtyy122d#Hdii011c"s8TYY/00d#[s499dkk?Z[[[l+::&:dD+Aww+%"477++tW%477T4L14<<#w)>?t||,G$''4(xxtU#477S#J/4::We'<=499sGU&;<DII&DTZZ(E$''3'e|#e|#d#diit4G& NNNNE!8DIIaL122F"}}DII&FIqx{I&FGGJ&((		*J	18A;	*JKK6dCD![[
__
:	 'G*Js   "QQ)rS   string_typer	   
Expressionbody	TypeError)node_or_stringrJ   r}   s    @@r   literal_evalr   Q   s[      >K.+.~F;.*-',,<==<| N##r   c                    i }t        | fi t        5 }d}g }|j                         D ]  }t        j                  dk  r|j                  d      }|j                  d      rDd|v rd}|j                  d       n+|j                  d      rd}|j                  d	       nt        ||s|dk(  rb|j                  d
      s|j                  d      r.|j                  |       	 t        dj                  |            } n|j                  |       t         d d d        |S # t        $ r}d}|j                  |dz   z
  }|j                  |dz
  z   }	t        t        |	            }
t!        |      D ]  \  }}||cxk  r|	k  sn t#        dj%                  ||
|      j'                  d      d       ||j                  dz
  k(  sUt#        dj%                  d|
d|j(                  z  |j*                                 d }~ww xY w# 1 sw Y   |S xY w)NFr   r#   _package_datazdict(pythonzdict(
z= {
z{
)}r   r%      z{0:{1}}: {2})r4   z{0:{1}}  {2}^--- {3}r3   )r5   open_kw	readlinesrT   rU   rX   
startswithappendendswithNotImplementedErrorr   joinrs   rv   lenstr	enumerater9   r:   encoderx   rz   )fndatar=   parsinglineslineecontext	from_lineto_linewindexs               r   r   r      s   D	b	G	LLND$&{{7+/d?&GLL+]]7+&GLL'--("??3'4??3+?LL&+BGGEN;& T"))S # 
Z K- ' "#$%HH!$<	"#((gk":G-+4U+;KE4(E<W< %$2$9$9%D$I$P$PQX$Y(*!" $)AHHqL#8$)(>(E(E,/C!((NAFF)*%& ,< #/ 
Z Ks>   CH D:H	G>(AG9?AG97G99G>>HHsetup.py__init__.pyc                    t        | d         }d}d}d}| dd D ]  }t        |t              r,|dz  }|dkD  rt        d|z         ||t        |      z   z  }d}?|d   j	                         }d}|d	v r|rt        d
|z         d}||dk(  rdn|z  }w|dv rd}d}||dk(  rdndz  }t        d|z   dz          |dk(  r|r|dz  }|S )z@Create a PEP 386 pseudo-format conformant string from tuple tup.r   .Fr   Nr%   z"too many consecutive digits after r   abcrz(release level specified after post/dev: rrcpdTpz.postz.devzFirst letter of "z" not recognised0)r   rS   int
ValueErrorlower)tupret_valnext_sep	nr_digitspost_devxfirst_letters          r   _check_convert_versionr      s   #a&kGHIHWaNI1} !E!OPPx#a&((GHtzz|6! !NQR!RSSI|s2tDGT!IH,#"5w6AG0147IIJJ) , A~(3Nr   rU   c                       e Zd Zd Zy)MyInstallLibc                 X   t         d   j                  d      }t        D cg c]"  }t        j                  j
                  ||gz    $ }}g }t        j                  j                  |       }|D ]5  }|D ]  }||v st        j                  |        $ |j                  |       7 |S c c}w )Nfull_package_namer   )
pkg_datasplitexclude_filesr6   pathr   r   installremover   )selffppr   full_exclude_files	alt_filesoutfilesfull_exclude_files          r   r   zMyInstallLib.install  s    *+11#6BOP-QbggllSA3Y8-P	**2248A%7!$)IIaL &8
   #   Qs   'B'N)r   r   r   r   r   r   r   r   r     s    r   r   c                       e Zd Zd Zy)MySdistc                 (   t        j                  |        t        j                  j	                  d      }t        t        | d|       dd       }|rD|rAt        dj                  ||             t        j                  j                  ||      | _
        y y y N
PYDISTBASEnspr   zsetting  distdir {}/{})_sdistinitialize_optionsr6   r7   getrp   r9   r:   r   r   dist_dirr   	dist_basefpns      r   r   zMySdist.initialize_options  st    !!$'
 JJNN<0	gdE402EtL9*11)SABGGLLC8DM 3r   Nr   r   r   r   r   r   r   r   r     s    
9r   r   )bdist_wheelc                       e Zd Zd Zy)MyBdistWheelc                 (   t        j                  |        t        j                  j	                  d      }t        t        | d|       dd       }|rD|rAt        dj                  ||             t        j                  j                  ||      | _
        y y y r   )_bdist_wheelr   r6   r7   r   rp   r9   r:   r   r   r   r   s      r   r   zMyBdistWheel.initialize_options'  sr    ++D1

|4I'$t46I4PCy.55iEF "Y < !sr   Nr   r   r   r   r   r   &  s    	=r   r   TFc                   4    e Zd ZddZd Zd Zd Zd Zd	dZy)
InMemoryZipFileNc                    	 ddl m} dd l}|| _        || _         |       | _        | j                  j                  | j                  d| j                  j                  d      | _        d| j                  _        y # t        $ r	 ddlm} Y w xY w)Nr   )StringIO)BytesIOr   Fr   )	cStringIOr   ImportErrorior   zipfilezip_file
_file_namein_memory_dataZipFileZIP_DEFLATEDin_memory_zipr/   )r   	file_namer   r   s       r   __init__zInMemoryZipFile.__init__6  s{    	/* 	#&j!]]22dmm&@&@%
 $%   	/.	/s   A9 9B
Bc                 >    | j                   j                  ||       | S )zdAppends a file with name filename_in_zip and contents of
        file_contents to the in-memory zip.)r   writestr)r   filename_in_zipfile_contentss      r   r   zInMemoryZipFile.appendG  s     	##O]Cr   c                    | j                   j                  D ]	  }d|_         | j                   j                          t	        |d      5 }|j                  | j                  j                                ddd       y# 1 sw Y   yxY w)z#Writes the in-memory zip to a file.r   wbN)r   filelistcreate_systemcloser5   writer   getvalue)r   ru   zfilefs       r   write_to_filezInMemoryZipFile.write_to_fileM  sg     ''00E"#E 1  "(D!QGGD''0023 "!!s   	*A<<Bc                     | S r,   r   r   s    r   	__enter__zInMemoryZipFile.__enter__W  s    r   c                 T    | j                   y | j                  | j                          y r,   )r   r   )r   exc_type	exc_value	tracebacks       r   __exit__zInMemoryZipFile.__exit__Z  s!    ??"4??+r   c                    |r%t        |t              rddl}|j                  |      }|rt        |t              s|g}ng }| j
                  j                  | j                        5 }|j                         D ]u  }|j                  |v r|j                  |j                         -|r|j                  |j                        rK| j                  |j                  |j                  |             w |rQt        dj                  t!        |      dk(  rdnddj#                  |D cg c]  }t%        |       c}                  	 ddd       yc c}w # 1 sw Y   yxY w)z
        zip_file can be a string or a zipfile.ZipFile object, the latter will be closed
        any name in file_names is deleted, all file_names provided have to be in the ZIP
        archive or else an IOError is raised
        r   Nz[Errno 2] No such file{}: {}r   r   rV   z, )rS   r~   recompiler_   r   r   r   infolistru   r   matchr   readIOErrorr:   r   r   rt   )r   pattern
file_namesr   zflr   s          r   delete_from_zip_filez$InMemoryZipFile.delete_from_zip_file_  s    z';7jj)Gj$/(\
J]]""4??3r[[]::+%%ajj1w}}QZZ8AJJ
3 # 299!*o2		J"?Jq47J"?@   43 #@ 43s   %B;E E2EEEr,   NN)	r   r   r   r   r   r   r   r   r
  r   r   r   r   r   5  s     %"4,
r   r   c                      e Zd Zd Zd Zed        Zed        Zd dZed        Z	d Z
d	 Zd
 Zd!dZed        Zed        Zed        Zed        Zd Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Z d Z!y)"NameSpacePackagerc                    t        |t              sJ || _        | j                  | j                  d         | _        d | _        | j                  j                  d      | _        | j                  j                  dd      | _	        d | _
        | j                          d d g| _        t        j                  d   dk(  rt        j                  d   dk(  rd	t        j                  vrt        j                   j                  d
d       dk(  r*t        j"                  d       t        j$                  d       t        j                   j                  dd      s t'        d       t        j$                  d       | j                  j                  d      rd t(        _        nd t(        _        t        j                  D ]  }|d   dk(  s|dk(  r|| _
         y  y )Nr   r   nestedFr   r   r   r   z#--single-version-externally-managedREADTHEDOCSrA   zpip install .RUAMEL_NO_PIP_INSTALL_CHECKz/error: you have to install with "pip install ."	universalc                       y)NTr   r-   s    r   <lambda>z,NameSpacePackager.__init__.<locals>.<lambda>  s    r   c                       y)NFr   r  s    r   r  z,NameSpacePackager.__init__.<locals>.<lambda>  s    r   -)rS   rM   	_pkg_datapnr   _splitcountdepthr   r  commandpython_version_pkgrT   argvr6   r7   systemexitr9   r   is_pure)r   r   r   s      r   r   zNameSpacePackager.__init__  sZ   (D)))!!%8K)L!M++11#6
nn((594L	HHQK:%y(5SXXEzz~~mT2f<		/*::>>"?GGH >>k*#5L #6L Ats{a:oDL	 r   c                 n    t         j                  dk  r!t        |t              r|j	                  d      S |S )Nr   r#   )rT   rU   rS   rW   r   r   rV   s     r   r  zNameSpacePackager.pn  s-    d"z!W'=88G$$r   c                    g }| j                   | j                  j                  d      }g | _         |r3| j                   j                  ddj	                  |             |dd }|r3t        t        j                  d            D ]  }t        j                  j                  |      r|| j                   d   k(  s|d   dv r<t        j                  j	                  |d      }t        j                  j                  |      s|t        |      }|j                  dd      r|j                  |       | j                   j                  | j                  dz   |z           t        j                  d	k  r@| j                   D cg c]%  }t!        |t"              r|j%                  d
      n|' c}| _         |r	 | j                   S c c}w )a  split the full package name in list of compontents traditionally
        done by setuptools.find_packages. This routine skips any directories
        with __init__.py, for which the name starts with "_" or ".", or contain a
        setup.py/tox.ini (indicating a subpackage)
        Nr   r   z._r   r  Fr   r#   )r  r   r   insertr   sortedr6   listdirr   isdirexistsr   r   r   rT   rU   rS   rW   r   )r   skipr   dr   r   ys          r   r   zNameSpacePackager.split  sr    ;;((..s3CDK""1chhsm4#2h  BJJsO,ww}}Q'1A+>!A$$,GGLLM277>>!$&q)Bvvh.A KK&&t'='='Ca'GH - $&RVR]R]R]Q*Q*@QXXg&aGR]  {{s   >*F?c                 4    | j                   d | j                   S r,   )r   r  r   s    r   namespace_packagesz$NameSpacePackager.namespace_packages  s    zz,DJJ''r   Nc                     g }t        | j                  d|       D ]I  \  }}|dkD  r+t        j                  j                  |j                  d       }|j                  d|z          K |S )z`return list of directories where the namespace should be created /
        can be found
        Nr   r   )r   r   r6   r   r   r   )r   r  resr   r.  s        r   namespace_directoriesz'NameSpacePackager.namespace_directories  s_     !$**Ve"45HE1qyGGLL!''#,/JJsQw	 6
 
r   c                     | j                   di}d| j                  v r|S t        | j                        dkD  r$| j	                  d      d   || j                  d   <   |S )Nr   extra_packagesr   r   )r   r  r   r   r4  )r   r.  s     r   package_dirzNameSpacePackager.package_dir  s`     ""C
 t~~-Htzz?Q#99!<Q?Adjjmr   c                 ^   | j                  | j                        }|syt        j                  j	                  |d         sa|D ][  }t        j
                  |       t        t        j                  j                  |d      d      5 }|j                  d       ddd       ] yy# 1 sw Y   ixY w)z8create the directories necessary for namespace packagingNr   r   r   z?import pkg_resources
pkg_resources.declare_namespace(__name__)
)	r4  r  r6   r   r,  mkdirr5   r   r   )r   directoriesr.  r=   s       r   create_dirszNameSpacePackager.create_dirs  s    00<ww~~k!n- "'',,q-8#>"HH^ ?> ! . ?>s   B##B,	c                 2   | j                   j                  d      }|y t        |      dk(  r|d   }n%|D ]  }|d   t        j                  d   k(  s|} n y t        j                  |k  r-t        dt        |      z          t        j                  d       y y )N	supportedr   r   zminimum python version(s): )r  r   r   rT   rU   r9   r   r"  )r   r=  minimumr   s       r   r  z NameSpacePackager.python_version  s    NN&&{3	y>QlGQ43++A..G 
 g%/#i.@AHHQK &r   c                    	 ddl m} | j                  dvry | j                  d   }t        ||j                  dd      g      }t        j                  D ]  }|st        j                  j                  t        j                  j                  |d            rEt        j                  j                  |      se|j                  d      rwt        j                  |      D ]  }|D ]  }|j                  |      s n t        j                  j                  ||      }||k(  rEt        j                  j                  |      r&| j                  dk(  r4 |d	j                  |            ||k(  r |d
j                  ||            |D cg c]  }|dz   	 c}D ]  }|j                  |      s n |j!                  d      s| j                  dk(  s |dj                  |              y # t        $ r Y y w xY wc c}w )Nr   )InstallationError)r   develop_r  r   z/tmp/rA  zSCannot mix develop (pip install -e),
with non-develop installs for package name {0}z non directory package {0} in {1}r   z-linkr   zRCannot mix non-develop with develop
(pip install -e) installs for package name {0})pip.exceptionsr@  r   r  r   rQ   replacerT   r   r6   r,  r   r+  r   r*  r:   r   )	r   r@  prefixprefixesr   r   pre	full_namer   s	            r   checkzNameSpacePackager.check  s   	8 <<55 AsC 89:Aww~~bggll1j9:77==#||G$jjm#C}}S) $ GGLLB/	<BGGMM)$<||y0/HHNr
  6\+,N,U,UVXZ[,\]]-56XAGX6C}}S) 7 ;;w'DLLI,E+99? / $   		L 7s   G/ 	G>/	G;:G;c                    d }| j                   j                  dd      }t        |t              r|S |y|dvrd|v rd|giS |}|| j                  }|s|j                  d      d	   }dd
j                  | ||            giS )aT  normally called without explicit script_name and package name
        the default console_scripts entry depends on the existence of __main__.py:
        if that file exists then the function main() in there is used, otherwise
        the in __init__.py.

        the _package_data entry_points key/value pair can be explicitly specified
        including a "=" character. If the entry is True or 1 the
        scriptname is the last part of the full package path (split on '.')
        if the ep entry is a simple string without "=", that is assumed to be
        the name of the script.
        c                 p    dj                  | t        j                  j                  d      rd      S d      S )Nz{0}{1}:mainz__main__.pyz	.__main__r   )r:   r6   r   r,  )names    r   pckg_entry_pointz8NameSpacePackager.entry_points.<locals>.pckg_entry_pointE  s6     ''RWW^^M%Bk HJ r   entry_pointsTN)Tr   =console_scriptsr   r'  z	{0} = {1})r  r   rS   rM   r   r   r:   )r   script_namepackage_namerM  eps        r   rN  zNameSpacePackager.entry_points8  s    	
 ^^5b$I:Yby *B400K11L&,,S1"5K"";0@0NO 
 	
r   c                     | j                   j                  d      r| j                   j                  dd      }nd| j                   g} dj                  | S )Nzruamel.r   r   ruamelzhttps://bitbucket.org/{0}/{1})r   r   r   r:   )r   sps     r   urlzNameSpacePackager.url`  sR    !!,,Y7''--c15BD223B5.55r::r   c                      | j                   d   S )Nauthorr  r   s    r   rY  zNameSpacePackager.authorh  s    ~~h''r   c                      | j                   d   S )Nauthor_emailrZ  r   s    r   r\  zNameSpacePackager.author_emaill  s    ~~n--r   c                 B    | j                   j                  d      }|y|S )z;return the license field from _package_data, None means MITlicensezMIT licenser  r   )r   lics     r   r^  zNameSpacePackager.licensep  s'     nn  +; !
r   c                     d| j                   v S )NMIT)r^  r   s    r   has_mit_liczNameSpacePackager.has_mit_licz  s    $$r   c                      | j                   d   S )NdescriptionrZ  r   s    r   re  zNameSpacePackager.description}  s    ~~m,,r   c                     | j                   j                  dd      j                         }|dv ry|dv ryd|j                         v ryt        )	Nstatus   β)u   αalpha)r   Alpha)rh  beta)r   Betastable)   zProduction/Stable)r  r   r   r   )r   rg  s     r   rg  zNameSpacePackager.status  sP     ##Hd399;_$~%'+!!r   c                    t        t         dj                  | j                   dd| j	                         rdndz   dz   ddg| j
                  j                  d	g       D cg c]  }| j                  |       c}z               S c c}w )
a   this needs more intelligence, probably splitting the classifiers from _pkg_data
        and only adding defaults when no explicit entries were provided.
        Add explicit Python versions in sync with tox.env generation based on python_requires?
        zDevelopment Status :: {0} - {1}zIntended Audience :: DeveloperszLicense :: zOSI Approved :: MITzOther/Proprietaryz Licensez"Operating System :: OS IndependentzProgramming Language :: Pythonclassifiers)r)  rQ   r:   rg  rc  r  r   r  )r   r   s     r   rp  zNameSpacePackager.classifiers  s     <5<<dkkJ5!040@0@0B,H[] ! 94 (,~~'9'9-'LM'L!4771:'LM	N
 	
 Ns   Bc                 X    | j                  | j                  j                  dg             S )Nrr   )r  r  r   r   s    r   rr   zNameSpacePackager.keywords  s"    wwt~~))*b9::r   c                      | j                   d   S )*list of packages required for installationr   _analyse_packagesr   s    r   install_requiresz"NameSpacePackager.install_requires       %%a((r   c                      | j                   d   S )rs  r   rt  r   s    r   install_prezNameSpacePackager.install_pre  rw  r   c                    | j                   d   g | j                   d<   g | j                   d<   | j                  j                  d      }|| j                   S t        |t              r|| j                   d<   | j                   S |j                  dg       }t        |t
              r|j                         }| j                  r4| j                  j                  dd      d   }||vr|j                  |       t        j                         }|dk(  r dj                  t        j                   }n$|d	k(  rt        j                  d
k  rdnd}n|dk(  rd}|j!                  |j                  g              |D ]K  }|d   dk(  r#|dd }| j                   d   j                  |       | j                   d   j                  |       M | j                   S )a4  gather from configuration, names starting with * need
        to be installed explicitly as they are not on PyPI
        install_requires should be  dict, with keys 'any', 'py27' etc
        or a list (which is as if only 'any' was defined

        ToDo: update with: pep508 conditional dependencies
        r   Nr   rv  anyr   CPythonzpy{0}{1}PyPyr   pypypypy3r'   jythonr   )r  r  r   rS   r_   r~   r   r  r   rsplitr   platformpython_implementationr:   rT   rU   extend)r   irpackages
parent_pkgimplementationpyverr   s          r   ru  z#NameSpacePackager._analyse_packages  s    99Q<DIIaLDIIaL^^ 23:99b$DIIaL9966%$h,~~'H;;//66sA>qAJ)
+!779Y&%J%%s'7'78Ev%!..5F7Ex'Eub)*A ts{abE		!##A&IIaL"  yyr   c                 <    | j                   j                  d      }|S )a  dict of conditions -> extra packages informaton required for installation
        as of setuptools 33 doing `package ; python_version<=2.7' in install_requires
        still doesn't work

        https://www.python.org/dev/peps/pep-0508/
        https://wheel.readthedocs.io/en/latest/index.html#defining-conditional-dependencies
        https://hynek.me/articles/conditional-python-dependencies/
        extras_requirer_  )r   rS  s     r   r  z NameSpacePackager.extras_require  s     ^^ 01	r   c                     | j                   j                  dg       }| j                         r|j                  d       |sy d|fgS )N
data_filesLICENSEr   )r  r   rc  r   )r   dfs     r   r  zNameSpacePackager.data_files  sB    ^^b1IIi b	{r   c                    | j                   j                  dg       }| j                         r&|j                  d       t        j                  d       | j                   j                  di       }|r||| j
                  <   t        j                  dk  r5|D ]0  }t        |t              s|j                  |      |t        |      <   2 |S )Nr  r  package_datar   )r  r   rc  r   r   r   rT   rU   rS   rW   popr   )r   r  r   rH   s       r   r  zNameSpacePackager.package_data  s    ^^b1IIi   +^^3)+Bt%%&d" a)!#Bs1vJ 
 	r   c                 X    | j                   }|| j                  j                  dg       z   S )Nr6  )r   r  r   r%  s     r   r  zNameSpacePackager.packages  s*    JJ 4>>%%&6;;;r   c                 :    | j                   j                  dd       S )Npython_requiresr_  r   s    r   r  z!NameSpacePackager.python_requires  s    ~~!!"3T::r   c                 
   t        | d      r| j                  S dt        j                  v ryt	        j
                         dk(  ry	 t        j                  j                  d      }dt        j                  |dz      v ry	 g | _        d}d	t        j                  v rd
}ndt        j                  v rd
}|r| j                  j                  dg       D ]  }t        | j                  |d         |d   D cg c]  }| j                  |       c}|j                  d      D cg c]  }| j                  |       c}      }| j                  j                  |        | j                  S t        dt        j                         ddl}ddl}ddlm} ddl}	ddl}	ddlm}
m} | j                  j                  dg       D ]r  }t        | j                  |d         |d   D cg c]  }| j                  |       c}|j                  d      D cg c]  }| j                  |       c}      }d|vr| j                  j                  |       t        j.                  dd dk(  rEt	        j0                         dk(  r.dt2        j4                  vr| j                  j                  |        ||d         }	 |j7                  d      }d| j                  |d         z   }t        d|       t2        j8                  j;                  ||dz         }t=        |d      5 }|j?                  |       ddd       |	j@                  jC                         }tE        ||	j@                  jF                        sJ |	jH                  jK                  |       |jM                  t3        jN                                t        j.                  dk  r|jQ                  d       }|}	 |jS                  |jU                  |g|!      |||jV                  "       | j                  j                  |       |j[                         u | j                  S # t        $ r Y w xY wc c}w c c}w c c}w c c}w # 1 sw Y   ;xY w# |
$ r- tY        d#|       t        d#|       Y |j[                  |       |$ r- tY        d$|       t        d$|       Y |j[                  |       w xY w# t\        $ rd}tY        d%|       t        d%|       t        j.                  dd dk(  r+t	        j0                         dk(  rt_        j`                          Y d}~d}~ww xY w# |j[                         w xY w)&a  
        Check if all modules specified in the value for 'ext_modules' can be build.
        That value (if not None) is a list of dicts with 'name', 'src', 'lib'
        Optional 'test' can be used to make sure trying to compile will work on the host

        creates and return the external modules as Extensions, unless that
        is not necessary at all for the action (like --version)

        test existence of compiler by using export CC=nonexistent; export CXX=nonexistent
        _ext_modules	--versionNr'   z--plat-namewinr   Fz--restructuredtextTr   ext_modulesrL  srclib)sources	librarieszsys.argvr   )dedent)CompileError	LinkErrortestr%   r   WindowsFORCE_C_BUILD_TESTtmp_ruamel_)rE  ztest compilingz.cr   r   r#   )
output_dir)r  r  zcompile error:z
link errorz
Exception:)1hasattrr  rT   r   r  r  r   r   r  r   r   r  r   r9   tempfileshutiltextwrapr  distutils.sysconfigdistutils.ccompilerdistutils.errorsr  r  rU   r!  r6   r7   mkdtempr   r   r5   r   	ccompilernew_compilerrS   	CCompiler	sysconfigcustomize_compileradd_include_dirgetcwdr   link_executabler  r  r/   rmtree	Exceptionr   	print_exc)r   platno_test_compiletargetr   extr  r  r  	distutilsr  r  c_codetmp_dirbin_file_namer   r=   compilercompile_out_dirr   s                       r   r  zNameSpacePackager.ext_modules  s    4($$$#(("))+x7	88>>-0D** + 388+"O "O..,,]B?GGF6N+17?ATWWQZ?39::e3DE3Datwwqz3DE
 !!((- @ $$$j#((##""<nn((;Fv'-3E];]];/5zz%/@A/@!4771:/@AC V#!!((-#v-(//2Cy2P'rzz9%%,,S1F6N+F('"**-*@ &)@ @&6GGLL-$2FG	)S)RHHV$ * %..;;=!(I,?,?,I,IJJJ##66x@((5##d*%nnW5G"),, (()(Q%#*"%--	 -  !!((- g&s <t    k  		 @E" <A$ *)( $ *I6*I6 g& ! ,	2,	2 g&
  *lA&lA&##BQ'61hoo6G96T'')	* g&s   7P< 0QQQ
Q1A$SQ 'B(S1Q-S<	Q	Q	 Q*	%S-S
SS:SSS	T?AT:4U:T??UUc                 8    | j                   j                  d      S )N
test_suiter_  r   s    r   r  zNameSpacePackager.test_suite  s    ~~!!,//r   c                    dt         j                  vryd}t        j                  j	                  |      ryt        |d      5 }t        j                  j	                  d      r|j                  d       nt        d       | j                  j                  d      r|j                  d	       d
d
d
       	  |di | 	 t        j                  |       y# 1 sw Y   )xY w# t        $ r  w xY w# t        j                  |       w xY w)ztemporary add setup.cfg if creating a wheel to include LICENSE file
        https://bitbucket.org/pypa/wheel/issues/47
        r   Fz	setup.cfgr   r  z"[metadata]
license-file = LICENSE
z'

>>>>>> LICENSE file not found <<<<<

r  z[bdist_wheel]
universal = 1
NTr   )rT   r   r6   r   r,  r5   r   r9   r  r   r  r   )r   r.   r
   r   r=   s        r   wheelzNameSpacePackager.wheel  s     (	77>>)$)S!Rww~~i(?@CD~~!!+.9: "	!KBK IIi  "!  		 IIi s%   A)C4C CC**C- -Dr,   r  )"r   r   r   r   r  propertyr   r1  r4  r7  r;  r  rI  rN  rW  rY  r\  r^  rc  re  rg  rp  rr   rv  ry  ru  r  r  r  r  r  r  r  r  r   r   r   r  r    s    D
    D ( (
 	 	"2h&
P ; ; ( ( . .  % - - 	" 	" 
 
( ; ; ) ) ) ) * *X 
 
    ( < < ; ; k! k!Z 0 0r   r  c                     d} | t         j                  v rhdd l}dd l}dd l}t        dt         j                         t        d|j                         t        d|j                         t        d|j                         t        t              }|j                          |j                          |t        _        t        j                  d      rt        j                  d      t        _        t!        t"        t              }t$        r|t&        _        t&        |d	<   t!        d3i d
|j(                  d|j*                  dt,        d|j.                  d|j0                  d|j2                  d|j4                  d|j6                  d|d|j8                  d|j;                         d|j<                  d|j>                  d|j@                  d|jB                  d|jD                  d|jF                  d|jH                  d|jJ                  d|jL                  }dt         j                  vrTdt         j                  v s| t         j                  v r0tO        |      D ]"  }||   }t        d jQ                  ||             $ | t         j                  v rt         j                  jS                  |        	 tU        d!      5 }	|	jW                         |d"<   d d d        |j                  |tZ              r|j\                  rd	t         j                  v r	 t         j                  t         j                  j_                  d#      d$z      }
tc        jj                  |
      D ]  }d't,        z   d'z   }|jm                  d(      s!||v s&tb        jf                  ji                  |
|      }t        d)|       to        |      5 }|jq                  |j(                  d*z          d d d         y  y d+D ]  }|t         j                  vs nE |jr                  D ]4  }dd l:}tc        jf                  jh                  |jw                  d,      d-gz    }tb        jf                  jy                  t         jz                        }t}        |      d$kD  sstb        jf                  ji                  ||      }tb        jf                  j                  |      rUt         jz                  j                  d.d/      }|d0tb        jf                  jy                  |      g}|j                  |       tb        jf                  jy                  |      }t}        |      d$kD  r7 t[        d3i | |j\                  rt         j                  d d1 d2d	gk(  rt         j                  t         j                  j_                  d#      d$z      }
tc        jj                  |
      D ]s  }|jm                  d(      stb        jf                  ji                  |
|      }t        d)|       to        |      5 }|jq                  |j(                  d*z          d d d         y  y y y # 1 sw Y   _xY w# tX        $ r Y nw xY w# t`        $ rR tb        jd                  j                  d%      }|r+tb        jf                  ji                  ||j(                        }
nd&}
Y dw xY w# 1 sw Y    y xY w# 1 sw Y    y xY w)4Nz	--dump-kwr   zpython:    zsetuptools:zdistutils: zwheel:     tarfmt)r   r   r   rL  r1  versionr  r  rW  rY  r\  cmdclassr7  rN  re  rv  r  r^  rp  rr   r  r  r  r  z	--verbosez  "{0}": "{1}",z
README.rstlong_descriptionz-dr   r   distr  z.whlzpatching .pth fromz.*.pth)-cegg_infoz
--egg-basezpip-egg-infor   r   r   pipr   r%   r  r   )BrT   r   r  r  
setuptoolsr9   r  __version__r  r   rI  r;  r   r   r   r  rM   r   _bdist_wheel_availabler   r   r1  version_strr  r  rW  rY  r\  r7  rN  re  rv  r  r^  rp  rr   r  r  r  r)  r:   r   r5   r  r  r
   r  r   r   r6   r7   r   r   r*  r   r   r
  ry  
subprocessr   dirname
executabler   r,  rD  check_output)dump_kwr  r  r  r   r  r.   rH   rI   r=   r.  r   r   	dashed_vsrH  imzr   r  
setup_pathtry_dirfull_path_setup_pyr  cmds                          r   mainr    sl   G#((mS[[)mZ334mY223mU../
H
%CIIKOOGK||H!h/G<H".	 
""
11
 
 	

 ++
 GG
 zz
 %%
 
 OO
 %%'
 OO
 --
 ))
 
  OO!
" #
$ %%%
& OO'
( >>)
B. #(("sxx(?7chhCVA1A#**1a01 
 #(( ,2%'WWYB!"  
 yyU::-3883HHSXX^^D1A56 ZZ]+-3	::f%)q. "Q 2I.	:(3s001F1F1QR 4 # 	=CHH > A qwws|zl'BCJggoocnn5Gg,"%'WW\\':%F"77>>"45..005AC	277??;M+NOC ++C0''//'2 g," !  
KBK
zzchhrlt]&;;HHSXX^^D)A-.AAzz&!GGLLA.	*I6$Y/3,,S-B-BX-MN 0  <za     JJNN<8	Y0E0EFAA 4> 0sU   2X; =X.X; 3Y 3Z)Z6.X83X; ;	YYAZ&%Z&)Z3	6[ 	)>
__future__r   r   r   r   rT   r6   r;   r   r   r  r  _astastr	   r  r
   r   r   setuptools.commandr   setuptools.command.sdistr   r   r   r   r   rU   
basestringr~   r   r   r   r!   r"   rM   r   r  r)   r7   r   r/   r   r   __file__rD  r   r   r   r  r   r   wheel.bdist_wheelr   r   r   r  r   objectr   r  r  )r   s   0r   <module>r     s    S R  	   XXGXTbiik25F)FDXG    5 5 * 4 z
=
>>  z
=
>>dKK f   v11 dfGG$G f > > > @H L  ::>>)R B& P$h/f ))*mDEB '$\2;**  9f 9 #==| = "Gf GT] ]Bpf M  HH	  #"#s   GG)G" "G,+G,