PNG  IHDR* pHYs+ IDATx]n#; cdLb Ǚ[at¤_:uP}>!Usă cag޿ ֵNu`ݼTâabO7uL&y^wFٝA"l[|ŲHLN밪4*sG3|Dv}?+y߉{OuOAt4Jj.u]Gz*҉sP'VQKbA1u\`& Af;HWj hsO;ogTu uj7S3/QzUr&wS`M$X_L7r2;aE+ώ%vikDA:dR+%KzƉo>eOth$z%: :{WwaQ:wz%4foɹE[9<]#ERINƻv溂E%P1i01 |Jvҗ&{b?9g=^wζXn/lK::90KwrюO\!ջ3uzuGv^;騢wq<Iatv09:tt~hEG`v;3@MNZD.1]L:{ծI3`L(÷ba")Y.iljCɄae#I"1 `3*Bdz>j<fU40⨬%O$3cGt]j%Fߠ_twJ;ABU8vP3uEԑwQ V:h%))LfraqX-ۿX]v-\9I gl8tzX ]ecm)-cgʒ#Uw=Wlێn(0hPP/ӨtQ“&J35 $=]r1{tLuǮ*i0_;NƝ8;-vݏr8+U-kruȕYr0RnC]*ެ(M:]gE;{]tg(#ZJ9y>utRDRMdr9㪩̞zֹb<ģ&wzJM"iI( .ꮅX)Qw:9,i좜\Ԛi7&N0:asϓc];=ΗOӣ APqz93 y $)A*kVHZwBƺnWNaby>XMN*45~ղM6Nvm;A=jֲ.~1}(9`KJ/V F9[=`~[;sRuk]rєT!)iQO)Y$V ی ۤmzWz5IM Zb )ˆC`6 rRa}qNmUfDsWuˤV{ Pݝ'=Kֳbg,UҘVz2ﴻnjNgBb{? ߮tcsͻQuxVCIY۠:(V뺕 ٥2;t`@Fo{Z9`;]wMzU~%UA蛚dI vGq\r82iu +St`cR.6U/M9IENDB`3 \)@s.dZddlZddlZGdddZddZdS)zmdistutils.extension Provides the Extension class, used to describe C/C++ extension modules in setup scripts.Nc@s"eZdZdZdddZddZdS) Extensiona Just a collection of attributes that describes an extension module and everything needed to build it (hopefully in a portable way, but there are hooks that let you be as unportable as you need). Instance attributes: name : string the full name of the extension, including any packages -- ie. *not* a filename or pathname, but Python dotted name sources : [string] list of source filenames, relative to the distribution root (where the setup script lives), in Unix form (slash-separated) for portability. Source files may be C, C++, SWIG (.i), platform-specific resource files, or whatever else is recognized by the "build_ext" command as source for a Python extension. include_dirs : [string] list of directories to search for C/C++ header files (in Unix form for portability) define_macros : [(name : string, value : string|None)] list of macros to define; each macro is defined using a 2-tuple, where 'value' is either the string to define it to or None to define it without a particular value (equivalent of "#define FOO" in source or -DFOO on Unix C compiler command line) undef_macros : [string] list of macros to undefine explicitly library_dirs : [string] list of directories to search for C/C++ libraries at link time libraries : [string] list of library names (not filenames or paths) to link against runtime_library_dirs : [string] list of directories to search for C/C++ libraries at run time (for shared extensions, this is when the extension is loaded) extra_objects : [string] list of extra files to link with (eg. object files not implied by 'sources', static library that must be explicitly specified, binary resource files, etc.) extra_compile_args : [string] any extra platform- and compiler-specific information to use when compiling the source files in 'sources'. For platforms and compilers where "command line" makes sense, this is typically a list of command-line arguments, but for other platforms it could be anything. extra_link_args : [string] any extra platform- and compiler-specific information to use when linking object files together to create the extension (or to create a new static Python interpreter). Similar interpretation as for 'extra_compile_args'. export_symbols : [string] list of symbols to be exported from a shared extension. Not used on all platforms, and not generally necessary for Python extensions, which typically export exactly one symbol: "init" + extension_name. swig_opts : [string] any extra options to pass to SWIG if a source file has the .i extension. depends : [string] list of files that the extension depends on language : string extension language (i.e. "c", "c++", "objc"). Will be detected from the source extensions if not provided. optional : boolean specifies that a build failure in the extension should not abort the build process, but simply not install the failing extension. NcKst|tstdt|to,tdd|Ds6td||_||_|pHg|_|pRg|_|p\g|_ |pfg|_ |ppg|_ |pzg|_ | pg|_ | pg|_| pg|_| pg|_| pg|_|pg|_||_||_t|dkrdd|D}djt|}d |}tj|dS) Nz'name' must be a stringcss|]}t|tVqdS)N) isinstancestr).0vr+/usr/lib64/python3.6/distutils/extension.py jsz%Extension.__init__..z#'sources' must be a list of stringsrcSsg|] }t|qSr)repr)rZoptionrrr sz&Extension.__init__..z, zUnknown Extension options: %s)rrAssertionErrorlistallnamesources include_dirs define_macros undef_macros library_dirs librariesruntime_library_dirs extra_objectsextra_compile_argsextra_link_argsexport_symbols swig_optsdependslanguageoptionallenjoinsortedwarningswarn)selfrrrrrrrrrrrrrrrrkwZoptionsmsgrrr__init__Vs4              zExtension.__init__cCsd|jj|jj|jt|fS)Nz<%s.%s(%r) at %#x>) __class__ __module__ __qualname__rid)r$rrr__repr__s zExtension.__repr__)NNNNNNNNNNNNNN)__name__r)r*__doc__r'r,rrrrrs ? !rcCsddlm}m}m}ddlm}ddlm}||}||dddddd}zhg}x\|j} | dkrfP|j | rrqT| d| d$kodknr|j d | qT|| |} || } | d} t | g} d} x| ddD]}| dk r| j |d} qt jj|d}|dd }|d d}|d%kr8| jj |q|dkrP| jj |q|dkr|jd}|d&kr| jj |dfn$| jj |d|||d dfq|dkr| jj |q|dkr| jj |q|dkr| jj |q|dkr| jj |q|dkr| jj |q|dkr0| j} q|dkrB| j} q|dkrT| j} q|dkrx| jj ||s| j} q|d'kr| jj |q|j d#|qW|j | qTWWd|jX|S)(z3Reads a Setup file and returns Extension instances.r)parse_makefileexpand_makefile_vars _variable_rx)TextFile) split_quoted)Zstrip_commentsZ skip_blanksZ join_linesZ lstrip_wsZ rstrip_wsN*z'%s' lines not handled yet.c.cc.cpp.cxx.c++.m.mmz-Iz-D=z-Uz-Cz-lz-Lz-Rz-rpathz-Xlinkerz -Xcompilerz-u.a.so.sl.o.dylibzunrecognized argument '%s')r7r8r9r:r;r<r=rD)r?r@rArBrC)Zdistutils.sysconfigr/r0r1Zdistutils.text_filer2Zdistutils.utilr3readlinematchr#rappendospathsplitextrrfindrrrrrrrrclose)filenamer/r0r1r2r3varsfile extensionslineZwordsmoduleZextZappend_next_wordZwordsuffixZswitchvalueZequalsrrrread_setup_files                          rU)r.rHr"rrUrrrrs z