
                            S SK JrJrJrJr  S SKrS SKrS SKrS SKr\R                   V s/ s H  o \R                  5       S4;  d  M  U PM     sn \l	        S SKrS SK7  S SKJr  S SKJrJrJr  S SKJr  S SKJr  \S	:w  a  \" S
5      eSr\S	:w  a  \" S
5      e\R6                  S:  a  \rO\r\R6                  S:  a   " S S5      r " S S5      r \R6                  S:  a  S SKJ!r!J"r"JrJ r   \R6                  S:  a  \#" 5       r$O\#" SS9r$\R6                  S:  d  \RJ                  " 5       S:X  a
   " S S5      r&\RN                  RQ                  SS5      S:X  a  S r)OS r)S r*S r+\+" \,R[                  SS5      5      r.S/r/S  r0\.S!   r\0" \5      r1 " S" S#\R(                  5      r2 " S$ S%\5      r3 S S&K4J5r6   " S' S(\65      r7S)r8 " S+ S,\:5      r; " S- S.\:5      r<S/ r=\=" 5         gs  sn f ! \9 a    S*r8 N0f = f)0    )print_functionabsolute_importdivisionunicode_literalsN )*)parse)setup	ExtensionDistribution)install_lib)sdist__main__zshould never include setup.py   r      c                       \ rS rSrSrg)Bytes)    N__name__
__module____qualname____firstlineno____static_attributes__r       $lib/third_party/ruamel/yaml/setup.pyr   r   )       r   r   c                       \ rS rSrSrg)NameConstant,   r   Nr   r   r   r   r"   r"   ,   r    r   r"   )r      )StrNumr   r"   utf-8)encoding)      Jythonc                       \ rS rSrSrg)Set=   r   Nr   r   r   r   r-   r-   =   r    r   r-   DVDEBUGc                      g Nr   )argskws     r   debugr4   C   s    r   c                     [        [        R                  S   S5       nUR                  5       nX#S'   [	        SR                  [        R                  R                  5       5      USS9  [	        U 0 UD6  S S S 5        g ! , (       d  f       g = f)Nr/   afilez{:%Y-%d-%mT%H:%M:%S} )r7   end)openosenvironcopyprintformatdatetimenow)r2   r3   fpkw1s       r   r4   r4   I   sj    "**Y'-'')CK(//0A0A0E0E0GHrWZ[43	 .--s   AA==
Bc                    ^^ SSSS.m[        U [        5      (       a
  [        U SS9n [        U [        5      (       a  U R                  n O[        S5      eUU4S jmT" U 5      $ )	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                 	  > [        U [        5      (       aZ  [        R                  S:  a:  [        U R                  [
        5      (       d  U R                  R                  S5      $ U R                  $ [        U [        5      (       a  U R                  $ [        U [        5      (       a  U R                  $ [        U [        5      (       a  [        [        TU R                  5      5      $ [        U [        5      (       a  [        [        TU R                  5      5      $ [        U [         5      (       a  [#        [        TU R                  5      5      $ [        U [$        5      (       a3  ['        U4S j[)        U R*                  U R,                  5       5       5      $ [        U [.        5      (       a  U R0                  $ [        R                  S:  a6  [        U [2        5      (       a!  U R4                  T;   a  TU R4                     $ GO][        U [6        5      (       a  [        U R8                  [:        [<        45      (       aa  [        U R>                  [        [6        [@        45      (       a7  T" U R>                  5      n[        U R8                  [:        5      (       a  U7$ U* $ [        U [@        5      (       a  [        U R8                  [B        [D        45      (       a  [        U RF                  [        [6        [@        45      (       au  [        U RH                  [        [6        [@        45      (       aK  T" U RH                  5      nT" U RF                  5      n[        U R8                  [B        5      (       a  X#-   $ X#-
  $ [        U [J        5      (       a  [M        U RN                  SS 5      nUS:X  a  ['        U4S jU RP                   5       5      $ US:X  a  [#        T" U RR                  S	   5      5      $ US
:X  a4  [T        RV                  " U RR                   Vs/ s H  nT" U5      PM     sn6 $ US:X  a4  [T        RT                  " U RR                   Vs/ s H  nT" U5      PM     sn6 $ [Y        S[[        U 5      -   5      nSUl.        U R^                  Ul/        U R`                  Ul1        [[        U 5      Ul2        Xl3        Ues  snf s  snf )Nr   r'   c              3   H   >#    U  H  u  pT" U5      T" U5      4v   M     g 7fr1   r   ).0kv_converts      r   	<genexpr>1literal_eval.<locals>._convert.<locals>.<genexpr>s   s"     [?Ztq!hqk2?Zs   "r   iddictc              3   ^   >#    U  H"  oR                   T" UR                  5      4v   M$     g 7fr1   )argvalue)rL   rM   rO   s     r   rP   rQ      s!     N1UUHQWW$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-   rW   DictrS   zipkeysvaluesr"   rV   NamerR   UnaryOpopUAddUSuboperandBinOpAddSubrightleftCallgetattrfunckeywordsr2   r@   rX   SyntaxErrorreprfilenamelineno
col_offsetoffsettextnode)	r   ro   rt   rs   func_idrM   errrO   _safe_namess	          r   rO   literal_eval.<locals>._convertc   s^   dC  $&z$&&'/J/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+Aww+%"477++ & tW%%477T4L114<<#w)>??t||,G$''4((xxtU##477S#J//4::We'<==499sGU&;<<DII&DTZZ(E$''3''|#|#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   R7	R<)rY   string_typer	   
Expressionbody	TypeError)node_or_stringrO   r   s    @@r   literal_evalr   Q   sa      >K.+..~F;.*--',,<==<| N##r   c                 p   0 n[        U 40 [        D6 nSn/ nUR                  5        GH  n[        R                  S:  a  UR                  S5      nUR                  S5      (       aL  SU;   a  SnUR                  S5        O0UR                  S5      (       a  SnUR                  S	5        O[        eM  U(       d  M  US:X  an  UR                  S
5      (       d  UR                  S5      (       a.  UR                  U5         [        SR                  U5      5      n  OUR                  U5        GM  [        e   S S S 5        U$ ! [         a  nSnUR                  US-   -
  nUR                  US-
  -   n	[        [        U	5      5      n
[!        U5       H  u  pXs=::  a  U	::  d  M  O  M  [#        SR%                  XU5      R'                  S5      SS9  XR                  S-
  :X  d  MT  [#        SR%                  SU
SUR(                  -  UR*                  5      5        M     e S nAff = f! , (       d  f       U$ = f)NFr   r'   _package_datazdict(pythonzdict(
z= {
z{
)}r   r)      z{0:{1}}: {2})r9   z{0:{1}}  {2}^--- {3}r8   )r:   open_kw	readlinesrZ   r[   r^   
startswithappendendswithNotImplementedErrorr   joinry   r|   lenstr	enumerater>   r?   encoder~   r   )fndatarB   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+;KE(<W<< %$2$9$9%D$I$P$PQX$Y(*!" $)HHqL#8$)(>(E(E,/C!((NAFF)*%& ,< #/ 
	Z Ks=   C,H& EH&
H#AH$=H%9HH##H&&
H5setup.py__init__.pyc                    [        U S   5      nSnSnSnU SS  H  n[        U[        5      (       a-  US-  nUS:  a  [        SU-   5      eX[        U5      -   -  nSnME  US   R	                  5       nSnUS	;   a%  U(       a  [        S
U-   5      eSnXS:X  a  SOU-  nM  US;   a  SnSnXS:X  a  SOS-  nM  [        SU-   S-   5      e   US:X  a  U(       a  US-  nU$ )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   rY   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#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   r[   c                       \ rS rSrS rSrg)MyInstallLibi  c                 l   [         S   R                  S5      n[         Vs/ s H#  n[        R                  R
                  " X/-   6 PM%     nn/ n[        R                  R                  U 5      nU H;  nU H!  nXb;   d  M
  [        R                  " U5          M(     UR                  U5        M=     U$ s  snf )Nfull_package_namer   )
pkg_datasplitexclude_filesr;   pathr   r   installremover   )selffppr   full_exclude_files	alt_filesoutfilesfull_exclude_files          r   r   MyInstallLib.install  s    *+11#6BOP-QbggllS3Y8-P	**2248A%7!$)IIaL &8
   #   Qs   *B1r   N)r   r   r   r   r   r   r   r   r   r   r     s    r   r   c                       \ rS rSrS rSrg)MySdisti  c                 :   [         R                  " U 5        [        R                  R	                  S5      n[        [        U SU 5      SS 5      nU(       aG  U(       a?  [        SR                  X5      5        [        R                  R                  X5      U l
        g g g N
PYDISTBASEnspr   zsetting  distdir {}/{})_sdistinitialize_optionsr;   r<   getrv   r>   r?   r   r   dist_dirr   	dist_basefpns      r   r   MySdist.initialize_options  sp    !!$'
 JJNN<0	gdE402EtL9*11)ABGGLL8DM 3r   r   Nr   r   r   r   r   r   r   r   r   r   r     s    
9r   r   )bdist_wheelc                       \ rS rSrS rSrg)MyBdistWheeli&  c                 :   [         R                  " U 5        [        R                  R	                  S5      n[        [        U SU 5      SS 5      nU(       aG  U(       a?  [        SR                  X5      5        [        R                  R                  X5      U l
        g g g r   )_bdist_wheelr   r;   r<   r   rv   r>   r?   r   r   r   r   s      r   r   MyBdistWheel.initialize_options'  sn    ++D1

|4I'$t46I4PCy.55iEF "Y < !sr   r   Nr   r   r   r   r   r   &  s    	=r   r   TFc                   @    \ rS rSrS
S jrS rS rS rS rSS jr	S	r
g)InMemoryZipFilei5  Nc                     SSK Jn  SS KnX0l        Xl        U" 5       U l        U R                  R                  U R                  SU R                  R                  S5      U l        SU R                  l        g ! [         a	    SSKJn   Nf = f)Nr   )StringIO)BytesIOr   Fr   )	cStringIOr   ImportErrorior   zipfilezip_file
_file_namein_memory_dataZipFileZIP_DEFLATEDin_memory_zipr4   )r   	file_namer   r   s       r   __init__InMemoryZipFile.__init__6  sw    	/* 	#&j!]]22dmm&@&@%
 $%   	/.	/s   A7 7B
	B
c                 <    U R                   R                  X5        U $ )z\Appends 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   InMemoryZipFile.appendG  s     	##OCr   c                    U R                   R                   H
  nSUl        M     U R                   R                  5         [	        US5       nUR                  U R                  R                  5       5        SSS5        g! , (       d  f       g= f)z#Writes the in-memory zip to a file.r   wbN)r   filelistcreate_systemcloser:   writer   getvalue)r   r{   zfilefs       r   write_to_fileInMemoryZipFile.write_to_fileM  sg     ''00E"#E 1  "(D!QGGD''0023 "!!s   *A>>
Bc                     U $ r1   r   r   s    r   	__enter__InMemoryZipFile.__enter__W  s    r   c                 V    U R                   c  g U R                  U R                   5        g r1   )r   r  )r   exc_type	exc_value	tracebacks       r   __exit__InMemoryZipFile.__exit__Z  s!    ??"4??+r   c                    U(       a*  [        U[        5      (       a  SSKnUR                  U5      nU(       a  [        U[        5      (       d  U/nO/ nU R
                  R                  U R                  5       nUR                  5        H  nUR                  U;   a  UR                  UR                  5        M0  U(       a"  UR                  UR                  5      (       a  MY  U R                  UR                  UR                  U5      5        M     U(       aU  [        SR                  [!        U5      S:X  a  SOSSR#                  U Vs/ s H  n[%        U5      PM     sn5      5      5      e SSS5        gs  snf ! , (       d  f       g= f)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   r\   z, )rY   r   recompilere   r   r   r   infolistr{   r   matchr   readIOErrorr?   r   r   rz   )r   pattern
file_namesr  zflr  s          r   delete_from_zip_file$InMemoryZipFile.delete_from_zip_file_  s'    z';77jj)Gj$//(\
J]]""4??3r[[]::+%%ajj1w}}QZZ88AJJ
3 # 299!*o2		J"?Jq47J"?@   43 #@ 43s   9CE=
E8E=8E==
F)r   r   r   r   r1   NN)r   r   r   r   r   r   r  r  r  r  r   r   r   r   r   r   5  s     %"4,
r   r   c                      \ rS rSrS rS r\S 5       r\S 5       rS"S jr	\S 5       r
S	 rS
 rS rS#S jr\S 5       r\S 5       r\S 5       r\S 5       rS r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r \S 5       r!S  r"S!r#g)$NameSpacePackageri  c                    [        U[        5      (       d   eXl        U R                  U R                  S   5      U l        S U l        U R                  R                  S5      U l        U R                  R                  SS5      U l	        S U l
        U R                  5         S S /U l        [        R                  S   S:X  a  [        R                  S   S:X  a  S	[        R                  ;  a  [        R                   R                  S
S 5      S:X  a,  [        R"                  " S5        [        R$                  " S5        [        R                   R                  SS5      (       d!  ['        S5        [        R$                  " S5        U R                  R                  S5      (       a  S [(        l        OS [(        l        [        R                   H  nUS   S:X  d  US:X  a  M  X l
          g    g )Nr   r   nestedFr   r   r   r   z#--single-version-externally-managedREADTHEDOCSrF   zpip install .RUAMEL_NO_PIP_INSTALL_CHECKz/error: you have to install with "pip install ."	universalc                      g)NTr   r2   s    r   <lambda>,NameSpacePackager.__init__.<locals>.<lambda>  s    r   c                      g)NFr   r%  s    r   r&  r'    s    r   -)rY   rS   	_pkg_datapnr   _splitcountdepthr   r   commandpython_version_pkgrZ   argvr;   r<   systemexitr>   r   is_pure)r   r   r   s      r   r   NameSpacePackager.__init__  s_   (D))))!!%8K)L!M++11#6
nn((594L	HHQK:%y(5SXXEzz~~mT2f<		/*::>>"?GGGH >>k**#5L #6L Ats{a:oL	 r   c                 z    [         R                  S:  a&  [        U[        5      (       a  UR	                  S5      $ U$ )Nr   r'   )rZ   r[   rY   r]   r   r   r\   s     r   r+  NameSpacePackager.pn  s0    d"z!W'='=88G$$r   c                    / nU R                   Gc  U R                  R                  S5      n/ U l         U(       a9  U R                   R                  SSR	                  U5      5        USS nU(       a  M9  [        [        R                  " S5      5       H  n[        R                  R                  U5      (       a  X0R                   S   :X  d	  US   S;   a  MD  [        R                  R	                  US5      n[        R                  R                  U5      (       d  M  [        U5      nUR                  SS5      (       a  UR                  U5        M  U R                   R                  U R                  S-   U-   5        M     [        R                  S	:  aH  U R                    Vs/ s H+  n[!        U["        5      (       a  UR%                  S
5      OUPM-     snU l         U(       a   U R                   $ s  snf )zsplit 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   sortedr;   listdirr   isdirexistsr   r   r   rZ   r[   rY   r]   r   )r   skipr   dr   r   ys          r   r   NameSpacePackager.split  s~    ;;((..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   "2G0c                 4    U R                   S U R                   $ r1   )r   r.  r  s    r   namespace_packages$NameSpacePackager.namespace_packages  s    zz,DJJ''r   Nc                     / n[        U R                  SU 5       HK  u  p4US:  a,  [        R                  R                  " UR                  S5      6 nUR                  SU-   5        MM     U$ )zPreturn list of directories where the namespace should be created /
can be found
Nr   r   )r   r   r;   r   r   r   )r   r.  resr   rB  s        r   namespace_directories'NameSpacePackager.namespace_directories  s]     !$**Ve"45HEqyGGLL!''#,/JJsQw	 6
 
r   c                     U R                   S0nSU R                  ;   a  U$ [        U R                  5      S:  a#  U R	                  S5      S   XR                  S   '   U$ )Nr   extra_packagesr   r   )r   r*  r   r   rJ  )r   rB  s     r   package_dirNameSpacePackager.package_dir  s^     ""C
 t~~-Htzz?Q#99!<Q?Ajjmr   c                    U R                  U R                  5      nU(       d  g[        R                  R	                  US   5      (       dd  U H]  n[        R
                  " U5        [        [        R                  R                  US5      S5       nUR                  S5        SSS5        M_     gg! , (       d  f       Mr  = f)z8create the directories necessary for namespace packagingNr   r   r   z?import pkg_resources
pkg_resources.declare_namespace(__name__)
)	rJ  r.  r;   r   r@  mkdirr:   r   r   )r   directoriesrB  rB   s       r   create_dirsNameSpacePackager.create_dirs  s    00<ww~~k!n-- "'',,q-8#>"HH^ ?> ! . ?>s   B00
B?	c                 @   U R                   R                  S5      nUc  g [        U5      S:X  a  US   nO(U H!  nUS   [        R                  S   :X  d  M  Un  O   g [        R                  U:  a.  [        S[        U5      -   5        [        R                  " S5        g g )N	supportedr   r   zminimum python version(s): )r*  r   r   rZ   r[   r>   r   r4  )r   rV  minimumr   s       r   r0   NameSpacePackager.python_version  s    NN&&{3	y>QlGQ43++A..G 
 g%/#i.@AHHQK &r   c                     SSK Jn  U R                  S;  a  g U R                  S   n[        X"R                  SS5      /5      n[        R                   GH  nU(       d  M  [        R                  R                  [        R                  R                  US5      5      (       a  MQ  [        R                  R                  U5      (       d  Mw  UR                  S5      (       a  M  [        R                  " U5       GH)  nU H  nUR                  U5      (       d  M    O   M'  [        R                  R                  XE5      nXR:X  aL  [        R                  R                  U5      (       a(  U R                  S:X  a  U" S	R                  U5      5      eOXR:X  a  U" S
R                  XT5      5      eU Vs/ s H  oS-   PM	     sn H  nUR                  U5      (       d  M    O   M  UR!                  S5      (       d  GM  U R                  S:X  d  GM  U" SR                  U5      5      e   GM     g ! [         a     g f = fs  snf )Nr   )InstallationError)r   develop_r)  r   z/tmp/r[  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.exceptionsrZ  r   r/  r   rW   replacerZ   r   r;   r@  r   r?  r   r>  r?   r   )	r   rZ  prefixprefixesr   r   pre	full_namer   s	            r   checkNameSpacePackager.check  s   	8 <<55 AsC 89:Aww~~bggll1j9::77==##||G$$jjm#C}}S)) $ GGLL/	<BGGMM)$<$<||y0/HHNr
  1
 \+,N,U,UVX,\]]-56XGX6C}}S)) 7 ;;w''DLLI,E+99? / $   		L 7s   H- 0H=-
H:9H:c                 $   S nU R                   R                  SS5      n[        U[        5      (       a  U$ Uc  gUS;  a  SU;   a  SU/0$ UnUc  U R                  nU(       d  UR                  S5      S	   nSS
R                  X" U5      5      /0$ )a  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                 z    SR                  U [        R                  R                  S5      (       a  S5      $ S5      $ )Nz{0}{1}:mainz__main__.pyz	.__main__r   )r?   r;   r   r@  )names    r   pckg_entry_point8NameSpacePackager.entry_points.<locals>.pckg_entry_pointE  s9     ''RWW^^M%B%Bk HJ r   entry_pointsTN)Tr   =console_scriptsr   r;  z	{0} = {1})r*  r   rY   rS   r   r   r?   )r   script_namepackage_namerh  eps        r   rj  NameSpacePackager.entry_points8  s    	
 ^^5b$I:Yby *B400K11L&,,S1"5K"";0@0NO 
 	
r   c                     U R                   R                  S5      (       a  U R                   R                  SS5      nOSU R                   /nSR                  " U6 $ )Nzruamel.r   r   ruamelzhttps://bitbucket.org/{0}/{1})r   r   r   r?   )r   sps     r   urlNameSpacePackager.url`  sR    !!,,Y77''--c15BD223B.55r::r   c                      U R                   S   $ )Nauthorr*  r  s    r   rw  NameSpacePackager.authorh  s    ~~h''r   c                      U R                   S   $ )Nauthor_emailrx  r  s    r   r{  NameSpacePackager.author_emaill  s    ~~n--r   c                 D    U R                   R                  S5      nUc  gU$ )z;return the license field from _package_data, None means MITlicensezMIT licenser*  r   )r   lics     r   r~  NameSpacePackager.licensep  s'     nn  +; !
r   c                      SU R                   ;   $ )NMIT)r~  r  s    r   has_mit_licNameSpacePackager.has_mit_licz  s    $$r   c                      U R                   S   $ )Ndescriptionrx  r  s    r   r  NameSpacePackager.description}  s    ~~m,,r   c                     U R                   R                  SS5      R                  5       nUS;   a  gUS;   a  gSUR                  5       ;   a  g[        e)	Nstatus   β)u   αalpha)r   Alpha)r  beta)r   Betastable)   zProduction/Stable)r*  r   r   r   )r   r  s     r   r  NameSpacePackager.status  sP     ##Hd399;_$~%'+!!r   c                    [        [        SR                  " U R                  6 SSU R	                  5       (       a  SOS-   S-   SS/U R
                  R                  S	/ 5       Vs/ s H  oR                  U5      PM     sn-   5      5      $ s  snf )
zthis 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=  rW   r?   r  r  r*  r   r+  )r   r   s     r   r  NameSpacePackager.classifiers  s     5<<dkkJ5!040@0@0B0B,H[] ! 94 (,~~'9'9-'LM'L!771:'LM	N
 	
 Ns   #B
c                 X    U R                  U R                  R                  S/ 5      5      $ )Nrx   )r+  r*  r   r  s    r   rx   NameSpacePackager.keywords  s"    wwt~~))*b9::r   c                      U R                   S   $ )*list of packages required for installationr   _analyse_packagesr  s    r   install_requires"NameSpacePackager.install_requires       %%a((r   c                      U R                   S   $ )r  r   r  r  s    r   install_preNameSpacePackager.install_pre  r  r   c                    U R                   S   c  / U R                   S'   / U R                   S'   U R                  R                  S5      nUc  U R                   $ [        U[        5      (       a  XR                   S'   U R                   $ UR                  S/ 5      n[        U[
        5      (       a  UR                  5       nU R                  (       a5  U R                  R                  SS5      S   nX2;  a  UR                  U5        [        R                  " 5       nUS:X  a  SR                  " [        R                  6 nO'US	:X  a  [        R                  S
:  a  SOSnOUS:X  a  SnUR!                  UR                  W/ 5      5        U HM  nUS   S:X  a#  USS nU R                   S   R                  U5        U R                   S   R                  U5        MO     U R                   $ )a  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   r  anyr   CPythonzpy{0}{1}PyPyr   pypypypy3r+   jythonr   )r1  r*  r   rY   re   r   r   r   r   rsplitr   platformpython_implementationr?   rZ   r[   extend)r   irpackages
parent_pkgimplementationpyverr   s          r   r  #NameSpacePackager._analyse_packages  s    99Q<DIIaLDIIaL^^ 23:99b$IIaL9966%$h,,~~'H;;//66sA>qAJ)
+!779Y&%%s'7'78Ev%!..5F7Ex'Eub)*A ts{abE		!##A&IIaL"  yyr   c                 <    U R                   R                  S5      nU$ )ae  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   ro  s     r   r   NameSpacePackager.extras_require  s     ^^ 01	r   c                     U R                   R                  S/ 5      nU R                  5       (       a  UR                  S5        U(       d  g SU4/$ )N
data_filesLICENSEr   )r*  r   r  r   )r   dfs     r   r  NameSpacePackager.data_files  sE    ^^b1IIi b	{r   c                    U R                   R                  S/ 5      nU R                  5       (       a&  UR                  S5        [        R                  S5        U R                   R                  S0 5      nU(       a  XU R
                  '   [        R                  S:  a=  U H7  n[        U[        5      (       d  M  UR                  U5      U[        U5      '   M9     U$ )Nr  r  package_datar   )r*  r   r  r   r   r   rZ   r[   rY   r]   popr   )r   r  r   rM   s       r   r  NameSpacePackager.package_data  s    ^^b1IIi   +^^3)+t%%&d" a))!#Bs1vJ 
 	r   c                 V    U R                   nXR                  R                  S/ 5      -   $ )NrM  )r   r*  r   r8  s     r   r  NameSpacePackager.packages  s(    JJ >>%%&6;;;r   c                 :    U R                   R                  SS 5      $ )Npython_requiresr  r  s    r   r  !NameSpacePackager.python_requires  s    ~~!!"3T::r   c                    [        U S5      (       a  U R                  $ S[        R                  ;   a  g[        R
                  " 5       S:X  a  g [        R                  R                  S5      nS[        R                  US-      ;   a  g / U l        SnS	[        R                  ;   a  S
nOS[        R                  ;   a  S
nU(       a  U R                  R                  S/ 5       H  n[        U R                  US   5      US    Vs/ s H  o@R                  U5      PM     snUR                  S5       Vs/ s H  o@R                  U5      PM     snS9nU R                  R                  U5        M     U R                  $ [        S[        R                  5        SSKnSSKnSSKJn  SSKn	SSKn	SSKJn
Jn  U R                  R                  S/ 5       GHz  n[        U R                  US   5      US    Vs/ s H  o@R                  U5      PM     snUR                  S5       Vs/ s H  o@R                  U5      PM     snS9nSU;  a  U R                  R                  U5        M  [        R.                  SS S:X  aJ  [        R0                  " 5       S:X  a1  S[2        R4                  ;  a  U R                  R                  U5        M  U" US   5      n UR7                  SS9nSU R                  US   5      -   n[        SU5        [2        R8                  R;                  XS-   5      n[=        US5       nUR?                  U5        SSS5        U	R@                  RC                  5       n[E        UU	R@                  RF                  5      (       d   eU	RH                  RK                  U5        URM                  [2        RN                  " 5       5        [        R.                  S:  a  URQ                  S 5      nUn URS                  URU                  U/US!9UUURV                  S"9  U R                  R                  U5        UR[                  W5        GM}     U R                  $ ! [         a     GNf = fs  snf s  snf s  snf s  snf ! , (       d  f       GND= f! U
 a.    [Y        S#U5        [        S#U5         UR[                  U5        GM  U a.    [Y        S$U5        [        S$U5         UR[                  U5        GM'  f = f! [\         ah  n[Y        S%U5        [        S%U5        [        R.                  SS S:X  a.  [        R0                  " 5       S:X  a  [^        R`                  " 5          SnAGN/SnAff = f! UR[                  W5        f = f)&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_modulesrg  srclib)sources	librarieszsys.argvr   )dedent)CompileError	LinkErrortestr)   r   WindowsFORCE_C_BUILD_TESTtmp_ruamel_)r_  ztest compilingz.cr   r   r'   )
output_dir)r  r  zcompile error:z
link errorz
Exception:)1hasattrr  rZ   r2  r  r  r   r   r*  r   r   r+  r   r>   tempfileshutiltextwrapr  distutils.sysconfigdistutils.ccompilerdistutils.errorsr  r  r[   r3  r;   r<   mkdtempr   r   r:   r   	ccompilernew_compilerrY   	CCompiler	sysconfigcustomize_compileradd_include_dirgetcwdr   link_executabler  r  r4   rmtree	Exceptionr  	print_exc)r   platno_test_compiletargetr   extr  r  r  	distutilsr  r  c_codetmp_dirbin_file_namer   rB   compilercompile_out_dirr   s                       r   r  NameSpacePackager.ext_modules  s    4(($$$#(("))+x7	88>>-0D** + 388+"O "O..,,]B?GGF6N+17?AWWQZ?39::e3DE3Dawwqz3DE
 !!((- @ $$$j#((##""<nn((;Fv'-3E];]];/5zz%/@A/@!771:/@AC V#!!((-#v-(//2Cy2P'rzz9%%,,S1F6N+F('"**-*@ &)@ @&6GGLL$2FG	)S)RHHV$ * %..;;=!(I,?,?,I,IJ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   9Q Q-3Q24Q7#Q<A S<2RB/S<4+RS<
Q*)Q*
R	S<S91S<S9#S<8S99S<<
U.AU)#U1)U..U11Vc                 8    U R                   R                  S5      $ )N
test_suiter  r  s    r   r  NameSpacePackager.test_suite  s    ~~!!,//r   c                 @   S[         R                  ;  a  gSn[        R                  R	                  U5      (       a  g[        US5       n[        R                  R	                  S5      (       a  UR                  S5        O[        S5        U R                  R                  S5      (       a  UR                  S	5        S
S
S
5         U" S0 UD6   [        R                  " U5        g! , (       d  f       N/= f! [         a    e f = f! [        R                  " U5        f = f)zotemporary 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   )rZ   r2  r;   r   r@  r:   r   r>   r*  r   r  r   )r   r3   r
   r   rB   s        r   wheelNameSpacePackager.wheel  s     (	77>>)$$)S!Rww~~i((?@CD~~!!+..9: "	!KBK IIi  "!  		 IIi s%   	A3C%C6 %
C36DD D)r  r1  r*  r,  r/  r.  r   r   r1   r  )$r   r   r   r   r   r+  propertyr   rF  rJ  rN  rS  r0  rc  rj  rt  rw  r{  r~  r  r  r  r  rx   r  r  r  r  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                  :   Sn U [         R                  ;   ah  SS KnSS KnSS Kn[        S[         R                  5        [        SUR                  5        [        SUR                  5        [        SUR                  5        [        [        5      nUR                  5         UR                  5         U[        l        [        R                  S5      (       a  [        R                  S5      [        l        [!        ["        [        S9n[$        (       a  U[&        l        [&        US	'   [!        S30 S
UR(                  _SUR*                  _S[,        _SUR.                  _SUR0                  _SUR2                  _SUR4                  _SUR6                  _SU_SUR8                  _SUR;                  5       _SUR<                  _SUR>                  _SUR@                  _SURB                  _SURD                  _SURF                  _SURH                  _SURJ                  _SURL                  _6nS[         R                  ;  aX  S[         R                  ;   d  U [         R                  ;   a0  [O        U5       H!  nXg   n[        S RQ                  Xx5      5        M#     U [         R                  ;   a  [         R                  RS                  U 5         [U        S!5       n	U	RW                  5       US"'   S S S 5        UR                  U[Z        5      (       a  UR\                  (       a  S	[         R                  ;   a   [         R                  [         R                  R_                  S#5      S$-      n
[b        Rj                  " U
5       H  nS'[,        -   S'-   nURm                  S(5      (       d  M'  X;   d  M.  [b        Rf                  Ri                  X5      n[        S)U5        [o        U5       nURq                  UR(                  S*-   5        S S S 5          g    g S+ H  nU[         R                  ;  d  M    GOS   URr                   GH@  nSS K:n[b        Rf                  Rh                  " URw                  S,5      S-/-   6 n[b        Rf                  Ry                  [         Rz                  5      n[}        U5      S$:  d  Mv  [b        Rf                  Ri                  UU5      n[b        Rf                  R                  U5      (       aV  [         Rz                  R                  S.S/5      nUS0[b        Rf                  Ry                  U5      /nUR                  U5        GM  [b        Rf                  Ry                  U5      n[}        U5      S$:  a  M  GMC     [[        S30 UD6  UR\                  (       a  [         R                  S S1 S2S	/:X  a  [         R                  [         R                  R_                  S#5      S$-      n
[b        Rj                  " U
5       Hx  nURm                  S(5      (       d  M  [b        Rf                  Ri                  X5      n[        S)U5        [o        U5       nURq                  UR(                  S*-   5        S S S 5          g    g g g ! , (       d  f       GN= f! [X         a     GNf = f! [`         aX    [b        Rd                  R                  S%5      nU(       a,  [b        Rf                  Ri                  XR(                  5      n
 GNS&n
 GNf = f! , (       d  f       GN
= f! , (       d  f       N= f)4Nz	--dump-kwr   zpython:    zsetuptools:zdistutils: zwheel:     tarfmt)r   r   r   rg  rF  versionr  r  rt  rw  r{  cmdclassrN  rj  r  r  r  r~  r  rx   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   )BrZ   r2  r  r  
setuptoolsr>   r  __version__r  r   rc  rS  r   r   r   r  rS   r   _bdist_wheel_availabler   r   rF  version_strr  r  rt  rw  r{  rN  rj  r  r  r  r~  r  rx   r  r  r  r=  r?   r   r:   r  r  r
   r   r   r   r;   r<   r   r   r>  r   r   r  r  
subprocessr   dirname
executabler   r@  r^  check_output)dump_kwr  r  r  r   r  r3   rM   rN   rB   rB  r   r   	dashed_vsrb  imzr   r  
setup_pathtry_dirfull_path_setup_pyr  cmds                          r   mainr    sr   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A#**101 
 #(( ,2%'WWYB!"  
 yyU::-3883HHSXX^^D1A56 ZZ]+-3	::f%%). "Q 2I.	:(3s001F1F1QR 4 # 	=CHH > A qwws|zl'BCJggoocnn5Gg,"%'WW\\':%F"77>>"455..005AC	277??;M+NOC ++C0''//'2 g,"" !  
KBK
zzchhrlt]&;;HHSXX^^D)A-.AAzz&!!GGLL.	*I6$Y/3,,S-B-BX-MN 0  <za     JJNN<8	Y0E0EFAA 43D 0/sa   Z Y2"Z +3Z [:\2
Z<Z Z 
ZZA[71[76[7:
\		
\	)>
__future__r   r   r   r   rZ   r;   r@   r  r   r  r  _astastr	   r  r
   r   r   setuptools.commandr   setuptools.command.sdistr   r   r   r   r   r[   
basestringr   r   r   r"   r%   r&   rS   r   r  r-   r<   r   r4   r   r   __file__r^  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GXTbiik25F)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(4G- -G87G8