eaiovnaovbqoebvqoeavibavo  fc @s%ddlZddlZddlZddlZddlmZddlmZddl m Z ddl m Z m Z ddlmZddlmZddlmZdd lmZyddlmZed Wnek reZnXe d dd l mZd ZeZeZdZ ej!dkr;e"ZnIej#dkry#ddl$Z$e%e$dZZWqek rqXndZ&dZ'defdYZesej#dkrddddddddddd Z)n-dZ ddddddddddd Z)dZ*dS(iN(t build_ext(t copy_file(t new_compiler(tcustomize_compilertget_config_var(tDistutilsError(tlog(tLibrary(tsixsCython.Compiler.MaintLDSHARED(t _config_varscCsstjdkretj}z,dtd>RcCsNxGdtjDD]/\}}}d|kr6|S|dkr|SqWdS(s;Return the file extension for an abi3-compliant Extension()css(|]}|dtjkr|VqdS(iN(timpt C_EXTENSION(t.0R((s@/usr/lib/python2.7/site-packages/setuptools/command/build_ext.pys Css.abi3s.pydN(Rt get_suffixes(tsuffixt_((s@/usr/lib/python2.7/site-packages/setuptools/command/build_ext.pytget_abi3_suffixAs &  RcBseZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z ed ZRS( cCs@|jd}|_tj|||_|r<|jndS(s;Build extensions in build directory, then copy if --inplaceiN(tinplacet _build_exttruntcopy_extensions_to_source(tselft old_inplace((s@/usr/lib/python2.7/site-packages/setuptools/command/build_ext.pyR'Ks   c Cs|jd}x|jD]}|j|j}|j|}|jd}dj|d }|j|}tj j|tj j |}tj j|j |} t | |d|j d|j|jr|j|ptj|tqqWdS(Ntbuild_pyt.itverbosetdry_run(tget_finalized_commandt extensionstget_ext_fullnametnametget_ext_filenametsplittjointget_package_dirtostpathtbasenamet build_libRR-R.t _needs_stubt write_stubtcurdirtTrue( R)R+texttfullnametfilenametmodpathtpackaget package_dirt dest_filenamet src_filename((s@/usr/lib/python2.7/site-packages/setuptools/command/build_ext.pyR(Ss   cCstj||}||jkr|j|}tjoLt|doLt}|rtd}|t| }|t}nt |t rt j j |\}}|jj|tStr|jrt j j|\}}t j j|d|Sn|S(Ntpy_limited_apit EXT_SUFFIXsdl-(R&R3text_mapRtPY3tgetattrR$t_get_config_var_837tlent isinstanceRR7R8tsplitexttshlib_compilertlibrary_filenametlibtypet use_stubst_links_to_dynamicR4R5(R)R@RAR?tuse_abi3tso_exttfntd((s@/usr/lib/python2.7/site-packages/setuptools/command/build_ext.pyR3is"    cCs,tj|d|_g|_i|_dS(N(R&tinitialize_optionstNoneRPtshlibsRI(R)((s@/usr/lib/python2.7/site-packages/setuptools/command/build_ext.pyRY~s   cCstj||jpg|_|j|jg|jD]}t|tr9|^q9|_|jrs|jnx&|jD]}|j|j |_ q}Wx#|jD]}|j }||j |<||j |j dd<|jr|j |pt}|otot|t }||_||_|j|}|_tjjtjj|j|}|r||jkr|jj|n|rtrtj|jkr|jjtjqqWdS(NR,i(R&tfinalize_optionsR0tcheck_extensions_listRNRR[tsetup_shlib_compilerR1R2t _full_nameRIR4tlinks_to_dynamictFalseRSRTR;R3t _file_nameR7R8tdirnameR5R:t library_dirstappendR=truntime_library_dirs(R)R?R@tltdtnsRAtlibdir((s@/usr/lib/python2.7/site-packages/setuptools/command/build_ext.pyR\s.       $cCsdtd|jd|jd|j}|_t||jdk rW|j|jn|j dk rx*|j D]\}}|j ||qpWn|j dk rx!|j D]}|j |qWn|j dk r|j|j n|jdk r |j|jn|jdk r,|j|jn|jdk rN|j|jntj||_dS(NRR.tforce(RRR.RjRPRt include_dirsRZtset_include_dirstdefinet define_macrotundeftundefine_macrot librariest set_librariesRdtset_library_dirstrpathtset_runtime_library_dirst link_objectstset_link_objectstlink_shared_objectt__get__(R)RR2tvaluetmacro((s@/usr/lib/python2.7/site-packages/setuptools/command/build_ext.pyR^s(% cCs&t|tr|jStj||S(N(RNRtexport_symbolsR&tget_export_symbols(R)R?((s@/usr/lib/python2.7/site-packages/setuptools/command/build_ext.pyR}scCs|j|j}z`t|tr4|j|_ntj|||jrr|jdj }|j ||nWd||_XdS(NR+( t_convert_pyx_sources_to_langRRNRRPR&tbuild_extensionR;R/R:R<(R)R?t _compilertcmd((s@/usr/lib/python2.7/site-packages/setuptools/command/build_ext.pyRs   csntjg|jD]}|j^qdj|jjdd dgtfd|jDS(s?Return true if 'ext' links to a dynamic lib in the same packageR,iRc3s|]}|kVqdS(N((R tlibname(tlibnamestpkg(s@/usr/lib/python2.7/site-packages/setuptools/command/build_ext.pys s(tdicttfromkeysR[R_R5R4tanyRq(R)R?tlib((RRs@/usr/lib/python2.7/site-packages/setuptools/command/build_ext.pyR`s(&cCstj||jS(N(R&t get_outputst_build_ext__get_stubs_outputs(R)((s@/usr/lib/python2.7/site-packages/setuptools/command/build_ext.pyRscsEfdjD}tj|j}td|DS(Nc3s<|]2}|jrtjjj|jjdVqdS(R,N(R;R7R8R5R:R_R4(R R?(R)(s@/usr/lib/python2.7/site-packages/setuptools/command/build_ext.pys scss|]\}}||VqdS(N((R tbasetfnext((s@/usr/lib/python2.7/site-packages/setuptools/command/build_ext.pys s(R0t itertoolstproductt!_build_ext__get_output_extensionstlist(R)t ns_ext_basestpairs((R)s@/usr/lib/python2.7/site-packages/setuptools/command/build_ext.pyt__get_stubs_outputss  ccs(dVdV|jdjr$dVndS(Ns.pys.pycR+s.pyo(R/toptimize(R)((s@/usr/lib/python2.7/site-packages/setuptools/command/build_ext.pyt__get_output_extensionsscCstjd|j|tjj||jjdd}|rftjj|rft|dn|j st |d}|j djddd t d d tjj |jd d dt ddddt dddt ddddg|jn|rddlm}||gdddtd|j |jd j}|dkr||gd|dtd|j ntjj|r|j rtj|qndS(!Ns writing stub loader for %s to %sR,s.pys already exists! Please delete.tws sdef __bootstrap__():s- global __bootstrap__, __file__, __loader__s% import sys, os, pkg_resources, imps, dls: __file__ = pkg_resources.resource_filename(__name__,%r)s del __bootstrap__s if '__loader__' in globals():s del __loader__s# old_flags = sys.getdlopenflags()s old_dir = os.getcwd()s try:s( os.chdir(os.path.dirname(__file__))s$ sys.setdlopenflags(dl.RTLD_NOW)s( imp.load_dynamic(__name__,__file__)s finally:s" sys.setdlopenflags(old_flags)s os.chdir(old_dir)s__bootstrap__()Ri(t byte_compileRiRjR.t install_lib(RtinfoR_R7R8R5R4texistsRR.topentwritetif_dlR9Rbtclosetdistutils.utilRR>R/Rtunlink(R)t output_dirR?tcompilet stub_filetfRR((s@/usr/lib/python2.7/site-packages/setuptools/command/build_ext.pyR<sP        (t__name__t __module__R'R(R3RYR\R^R}RR`RRRRaR<(((s@/usr/lib/python2.7/site-packages/setuptools/command/build_ext.pyRJs         ic Cs8|j|j||||||||| | | | dS(N(tlinktSHARED_LIBRARY( R)tobjectstoutput_libnameRRqRdRfR|tdebugt extra_preargstextra_postargst build_tempt target_lang((s@/usr/lib/python2.7/site-packages/setuptools/command/build_ext.pyRxs    tstaticc Cs|dksttjj|\}} tjj| \}}|jdjdrg|d}n|j||||| dS(NtxRi( RZtAssertionErrorR7R8R4RORQt startswithtcreate_static_lib(R)RRRRqRdRfR|RRRRRRAR9R?((s@/usr/lib/python2.7/site-packages/setuptools/command/build_ext.pyRx,s  cCs"tjdkrd}nt|S(s In https://github.com/pypa/setuptools/pull/837, we discovered Python 3.3.0 exposes the extension suffix under the name 'SO'. iiR (iii(Rt version_infoR(R2((s@/usr/lib/python2.7/site-packages/setuptools/command/build_ext.pyRLDs (+R7RRRtdistutils.command.build_extRt _du_build_exttdistutils.file_utilRtdistutils.ccompilerRtdistutils.sysconfigRRtdistutils.errorsRt distutilsRtsetuptools.extensionRtsetuptools.externRtCython.Distutils.build_extR&t __import__t ImportErrorR RRRaRRSRRRR>R2tdlthasattrRR$RZRxRL(((s@/usr/lib/python2.7/site-packages/setuptools/command/build_ext.pytsX