ó 2ÄÈ[c@`s™ dZddlmZmZmZddlZddlZddlZddlZddl Z ddl Z ddl m Z ddl m Z ejddkrÀddlmZddlmZn ddlmZddlmZdd lmZdd lmZddlZdd lmZdd lmZdd lmZmZmZddl m!Z!m"Z"m#Z#ddl$m%Z&ddl'm(Z(ddl)m*Z*ddl+Zddl,Z,ddl-Z-ddl.Z.idd6dd6Z/e/e.j0ƒdZ1d„Z2ej.dkrÕdej3j4ej5j6dƒga7gZ8ga9dgZ:gZ;gZ<ddgZ=dgZ>ge=D]Z?e?j@dejAƒ^qbZ=ge>D]Z?e?j@dejAƒ^qŠZ>d„ZBejddfkrÒe-jCd ƒZDeDrpej3jEeDƒZFe.j0ƒdkr d!ZGnd"ZGej3j4eFd#ƒZHxDej3j4eHeGd$ƒej3j4eHeGd%ƒgD]ZIeBeIƒqYWne-jCd&ƒZJeJrÏej3jEeJƒZKeBej3j4eKd'd(ƒƒeBej3j4eKd(ƒƒnnnÕe2d)d*d+d,d-ge1ƒa7gZ8d.d/d0d1d2d3d4ga9dd5d6d7gZ:e2d8d9d+ge1ƒZ;d:d;d0gZ<ej3jLd<ƒr·e d=ƒZMeMr´ej3jNeMdƒdZOe;jPeOd<gƒe<jPd>d?gƒnnddlQZReSZTzÄy:eUejVd@ƒZTeRjWdAdBgdCeRjXdDeTƒZYWneZefk rnmXe[eYj\ƒdj]ƒj^ƒƒZ_eYj`dkrŒe;ej3j4dEe_ƒg7Z;t7ej3j4dEe_ƒg7a7nWdeTeSk r©eTjaƒnXej3j4ejbdƒt7kr+t7jcdej3j4ejbdƒƒt9jdej3j4ejbdƒƒe:jdej3j4ejbdFƒƒngt7D]Zeej3jfeeƒrPee^q2a7ge8D]Zeej3jfeeƒr{ee^q]Z8gt9D]Zeej3jfeeƒr¦ee^qˆa9ge:D]Zeej3jfeeƒrÑee^q³Z:e#ƒZgdG„ZhddH„ZidIefdJ„ƒYZjdKejfdL„ƒYZkdMejfdN„ƒYZldOelfdP„ƒYZmdQejfdR„ƒYZndSenfdT„ƒYZodUejfdV„ƒYZpdWejfdX„ƒYZqdYejfdZ„ƒYZrd[ejfd\„ƒYZsd]ejfd^„ƒYZtd_eufd`„ƒYZvdaevfdb„ƒYZwdcevfdd„ƒYZxdeexfdf„ƒYZydgexfdh„ƒYZzdiexfdj„ƒYZ{dkexfdl„ƒYZ|dmexfdn„ƒYZ}doexfdp„ƒYZ~dqexfdr„ƒYZdsevfdt„ƒYZ€duevfdv„ƒYZ�dwe�fdx„ƒYZ‚dye�fdz„ƒYZƒd{evfd|„ƒYZ„d}e„fd~„ƒYZ…de„fd€„ƒYZ†d�e…fd‚„ƒYZ‡dƒe„fd„„ƒYZˆd…e†fd†„ƒYZ‰d‡e„fdˆ„ƒYZŠd‰eŠfdŠ„ƒYZ‹d‹eŠfdŒ„ƒYZŒd�e‹fdŽ„ƒYZ�d�eŠfd�„ƒYZŽd‘eŒfd’„ƒYZ�d“evfd”„ƒYZ�d•evfd–„ƒYZ‘d—Z’iZ“d˜„Z”d™evfdš„ƒYZ•d›evfdœ„ƒYZ–d�evfdž„ƒYZ—dŸe—fd „ƒYZ˜d¡e˜fd¢„ƒYZ™d£e™fd¤„ƒYZšd¥e—fd¦„ƒYZ›d§evfd¨„ƒYZœd©evfdª„ƒYZ�d«evfd¬„ƒYZžd­evfd®„ƒYZŸd¯eŸfd°„ƒYZ d±eŸfd²„ƒYZ¡d³eŸfd´„ƒYZ¢dµevfd¶„ƒYZ£d·evfd¸„ƒYZ¤d¹evfdº„ƒYZ¥d»evfd¼„ƒYZ¦d½evfd¾„ƒYZ§d¿e§fdÀ„ƒYZ¨dÁe§fd„ƒYZ©dÃe§fdÄ„ƒYZªdÅe§fdÆ„ƒYZ«dÇe§fdÈ„ƒYZ¬dÉe§fdÊ„ƒYZ­dËe§fdÌ„ƒYZ®dÍe§fd΄ƒYZ¯dÏe§fdЄƒYZ°dÑe§fdÒ„ƒYZ±dÓevfdÔ„ƒYZ²dÕevfdÖ„ƒYZ³dׄZ´iddØ6dÙdÚ6dÛdÜ6ddÝ6ZµidØd6dÚdÙ6dÜdÛ6dÝd6Z¶dÞ„Z·eSfdß„Z¸eSdà„Z¹eºdákr• e¹ƒndS(âsk This file defines a set of system_info classes for getting information about various resources (libraries, library directories, include directories, etc.) in the system. Currently, the following classes are available: atlas_info atlas_threads_info atlas_blas_info atlas_blas_threads_info lapack_atlas_info lapack_atlas_threads_info atlas_3_10_info atlas_3_10_threads_info atlas_3_10_blas_info, atlas_3_10_blas_threads_info, lapack_atlas_3_10_info lapack_atlas_3_10_threads_info blas_info lapack_info openblas_info blis_info blas_opt_info # usage recommended lapack_opt_info # usage recommended fftw_info,dfftw_info,sfftw_info fftw_threads_info,dfftw_threads_info,sfftw_threads_info djbfft_info x11_info lapack_src_info blas_src_info numpy_info numarray_info numpy_info boost_python_info agg2_info wx_info gdk_pixbuf_xlib_2_info gdk_pixbuf_2_info gdk_x11_2_info gtkp_x11_2_info gtkp_2_info xft_info freetype2_info umfpack_info Usage: info_dict = get_info() where is a string 'atlas','x11','fftw','lapack','blas', 'lapack_src', 'blas_src', etc. For a complete list of allowed names, see the definition of get_info() function below. Returned info_dict is a dictionary which is compatible with distutils.setup keyword arguments. If info_dict == {}, then the asked resource is not available (system_info could not find it). Several *_info classes specify an environment variable to specify the locations of software. When setting the corresponding environment variable to 'None' then the software will be ignored, even when it is available in system. Global parameters: system_info.search_static_first - search static libraries (.a) in precedence to shared ones (.so, .sl) if enabled. system_info.verbosity - output the results to stdout if enabled. The file 'site.cfg' is looked for in 1) Directory of main setup.py file being run. 2) Home directory of user running the setup.py file as ~/.numpy-site.cfg 3) System wide directory (location of this file...) The first one found is used to get system configuration options The format is that used by ConfigParser (i.e., Windows .INI style). The section ALL has options that are the default for each section. The available sections are fftw, atlas, and x11. Appropriate defaults are used if nothing is specified. The order of finding the locations of resources is the following: 1. environment variable 2. section in site.cfg 3. ALL section in site.cfg Only the first complete match is returned. Example: ---------- [ALL] library_dirs = /usr/lib:/usr/local/lib:/opt/lib include_dirs = /usr/include:/usr/local/include:/opt/include src_dirs = /usr/local/src:/opt/src # search static libraries (.a) in preference to shared ones (.so) search_static_first = 0 [fftw] fftw_libs = rfftw, fftw fftw_opt_libs = rfftw_threaded, fftw_threaded # if the above aren't found, look for {s,d}fftw_libs and {s,d}fftw_opt_libs [atlas] library_dirs = /usr/lib/3dnow:/usr/lib/3dnow/atlas # for overriding the names of the atlas libraries atlas_libs = lapack, f77blas, cblas, atlas [x11] library_dirs = /usr/X11R6/lib include_dirs = /usr/X11R6/include ---------- Authors: Pearu Peterson , February 2002 David M. Cooke , April 2002 Copyright 2002 Pearu Peterson all rights reserved, Pearu Peterson Permission to use, modify, and distribute this software is given under the terms of the NumPy (BSD style) license. See LICENSE.txt that came with this distribution for specifics. NO WARRANTY IS EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. i(tdivisiontabsolute_importtprint_functionN(tglob(treducei(t NoOptionError(tRawConfigParser(tDistutilsError(t Distribution(tlog(t get_platform(tfind_executablet exec_commandt get_pythonexe(t is_sequencet is_stringtget_shared_lib_extension(tconfig(t get_exception(tcustomized_ccompileri t32biti@t64bitcC`s]|dkrtdƒ‚n|dkr+|Sg}x%|D]}|j|d|gƒq8W|S(sèReturn a list of library paths valid on 32 or 64 bit systems. Inputs: paths : sequence A sequence of strings (typically paths) bits : int An integer, the only valid values are 32 or 64. A ValueError exception is raised otherwise. Examples: Consider a list of directories >>> paths = ['/usr/X11R6/lib','/usr/X11/lib','/usr/lib'] For a 32-bit platform, this is already valid: >>> np.distutils.system_info.libpaths(paths,32) ['/usr/X11R6/lib', '/usr/X11/lib', '/usr/lib'] On 64 bits, we prepend the '64' postfix >>> np.distutils.system_info.libpaths(paths,64) ['/usr/X11R6/lib64', '/usr/X11R6/lib', '/usr/X11/lib64', '/usr/X11/lib', '/usr/lib64', '/usr/lib'] i i@s+Invalid bit size in libpaths: 32 or 64 onlyt64(i i@(t ValueErrortextend(tpathstbitstouttp((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pytlibpaths§s   twin32sC:\tlibst.tincludesinclude/suitesparsetlibt/c`sPtjjˆƒ‰tj‡fd†tDƒƒtj‡fd†tDƒƒdS(s5Add a package manager root to the include directoriesc3`s$|]}tjjˆ|ƒVqdS(N(tostpathtjoin(t.0td(t library_root(s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pys ésc3`s$|]}tjjˆ|ƒVqdS(N(R$R%R&(R'R((R)(s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pys ësN(R$R%tnormpathtdefault_lib_dirsRt _lib_dirstdefault_include_dirst _include_dirs(R)((R)s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pytadd_system_rootás tvcpkgtx86tx64t installeds-windowss-windows-statictcondas..tLibrarys/usr/local/libs/opt/libs/usr/libs/opt/local/libs/sw/libs/usr/local/includes /opt/includes /usr/includes/opt/local/include/ufsparses/opt/local/includes /sw/includes/usr/include/suitesparses/usr/local/srcs/opt/srcs/sw/srcs/usr/X11R6/libs /usr/X11/libs/usr/X11R6/includes/usr/X11/includes /usr/lib/X11s/usr/lib/*/libX11.sos/usr/lib/X11/includes/usr/include/X11twtgccs-print-multiarchtstdouttstderrs /usr/lib/tsrccC`sg}y t}Wntk r0tjd}nTXtjjtjjtjj|ƒƒd|ƒ}tjj |ƒr„|j |ƒnytjj dƒ}Wnt k r­n8Xtjj||ƒ}tjj |ƒrå|j |ƒntjj |ƒr|j tjj|ƒƒn|S(s¸Returns a list of files named 'fname' from 1) System-wide directory (directory-location of this module) 2) Users HOME directory (os.environ['HOME']) 3) Local directory it~( t__file__t NameErrortsystargvR$R%R&tsplittabspathtisfiletappendt expandusertKeyError(tfnamet filenamestftsysfilet user_file((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pytget_standard_fileDs&  (  cC`sái?td6td6td6td6td6td6td6td6td 6t d 6t d 6t d 6t d 6t d6td6td6td6td6td6td6td6td6td6td6td6td6td6td6td6td6td6td 6t d!6t!d"6t"d#6t#d$6t$d%6t%d&6t%d'6t&d(6t'd)6t(d*6t)d+6t*d,6t+d-6t,d.6t-d/6t-d06t.d16t.d26t/d36t0d46t0d56t1d66t1d76t2d86t2d96t3d:6t3d;6t4d<6t5d=6t6d>6t7d?6j8|j9ƒt:ƒ}|ƒj;|ƒS(@sg notfound_action: 0 - do nothing 1 - display warning message 2 - raise error tatlast atlas_threadst atlas_blastatlas_blas_threadst lapack_atlastlapack_atlas_threadst atlas_3_10tatlas_3_10_threadstatlas_3_10_blastatlas_3_10_blas_threadstlapack_atlas_3_10tlapack_atlas_3_10_threadstmkltopenblastopenblas_lapacktopenblas_clapacktblist lapack_mkltblas_mklt acceleratetx11tfft_opttfftwtfftw2tfftw3tdfftwtsfftwt fftw_threadst dfftw_threadst sfftw_threadstdjbffttblastlapackt lapack_srctblas_srctnumpytf2pytNumerictnumerictnumarraytnumerixt lapack_opttblas_optt boost_pythontagg2twxtgdk_pixbuf_xlib_2sgdk-pixbuf-xlib-2.0t gdk_pixbuf_2sgdk-pixbuf-2.0tgdktgdk_2sgdk-2.0t gdk_x11_2s gdk-x11-2.0t gtkp_x11_2s gtk+-x11-2.0tgtkp_2sgtk+-2.0txftt freetype2tumfpacktamd(<t atlas_infotatlas_threads_infotatlas_blas_infotatlas_blas_threads_infotlapack_atlas_infotlapack_atlas_threads_infotatlas_3_10_infotatlas_3_10_threads_infotatlas_3_10_blas_infotatlas_3_10_blas_threads_infotlapack_atlas_3_10_infotlapack_atlas_3_10_threads_infotmkl_infot openblas_infotopenblas_lapack_infotopenblas_clapack_infot blis_infotlapack_mkl_infot blas_mkl_infotaccelerate_infotx11_infot fft_opt_infot fftw_infot fftw2_infot fftw3_infot dfftw_infot sfftw_infotfftw_threads_infotdfftw_threads_infotsfftw_threads_infot djbfft_infot blas_infot lapack_infotlapack_src_infot blas_src_infot numpy_infot f2py_infot Numeric_infot numarray_infot numerix_infotlapack_opt_infot blas_opt_infotboost_python_infot agg2_infotwx_infotgdk_pixbuf_xlib_2_infotgdk_pixbuf_2_infotgdk_infot gdk_2_infotgdk_x11_2_infotgtkp_x11_2_infot gtkp_2_infotxft_infotfreetype2_infot umfpack_infotamd_infotgettlowert system_infotget_info(tnametnotfound_actiontcl((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRÀhs‚  t NotFoundErrorcB`seZdZRS(s1Some third-party program or library is not found.(t__name__t __module__t__doc__(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRÄ´stAtlasNotFoundErrorcB`seZdZRS(sî Atlas (http://math-atlas.sourceforge.net/) libraries not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [atlas]) or by setting the ATLAS environment variable.(RÅRÆRÇ(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRȸstLapackNotFoundErrorcB`seZdZRS(sì Lapack (http://www.netlib.org/lapack/) libraries not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [lapack]) or by setting the LAPACK environment variable.(RÅRÆRÇ(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRÉÀstLapackSrcNotFoundErrorcB`seZdZRS(sð Lapack (http://www.netlib.org/lapack/) sources not found. Directories to search for the sources can be specified in the numpy/distutils/site.cfg file (section [lapack_src]) or by setting the LAPACK_SRC environment variable.(RÅRÆRÇ(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRÊÈstBlasNotFoundErrorcB`seZdZRS(sä Blas (http://www.netlib.org/blas/) libraries not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [blas]) or by setting the BLAS environment variable.(RÅRÆRÇ(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRËÐstBlasSrcNotFoundErrorcB`seZdZRS(sè Blas (http://www.netlib.org/blas/) sources not found. Directories to search for the sources can be specified in the numpy/distutils/site.cfg file (section [blas_src]) or by setting the BLAS_SRC environment variable.(RÅRÆRÇ(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRÌØstFFTWNotFoundErrorcB`seZdZRS(sÝ FFTW (http://www.fftw.org/) libraries not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [fftw]) or by setting the FFTW environment variable.(RÅRÆRÇ(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRÍàstDJBFFTNotFoundErrorcB`seZdZRS(sê DJBFFT (http://cr.yp.to/djbfft.html) libraries not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [djbfft]) or by setting the DJBFFT environment variable.(RÅRÆRÇ(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRÎèstNumericNotFoundErrorcB`seZdZRS(sv Numeric (http://www.numpy.org/) module not found. Get it from above location, install it, and retry setup.py.(RÅRÆRÇ(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRÏðstX11NotFoundErrorcB`seZdZRS(sX11 libraries not found.(RÅRÆRÇ(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRÐöstUmfpackNotFoundErrorcB`seZdZRS(s UMFPACK sparse solver (http://www.cise.ufl.edu/research/sparse/umfpack/) not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [umfpack]) or by setting the UMFPACK environment variable.(RÅRÆRÇ(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRÑúsR¿cB`seZdZdZdZdZdZiZe Z e e dd„Z d„Zd„Zd„Zd„Zd „Zdd „Zd „Zd d „Zdd„Zdd„Zdd„Zd„Zdd„Zd„Zgd„Zgd„Zd„Zd„Zd„Z d„Z!RS(s= get_info() is the only public method. Don't use others. tALLiicC`s#i|j_g|_itjj|ƒd6tjj|ƒd6tjjtƒd6dd6tjjtƒd6t|j ƒd6dd6dd 6}t |ƒ|_ g|_ |j j td ƒƒ|j j td ƒƒ|jƒ|jdk r|j j|jdƒ|_ nt|j tƒst‚dS( Nt library_dirst include_dirstruntime_library_dirsttrpathtsrc_dirstsearch_static_firsttextra_compile_argstextra_link_argss.numpy-site.cfgssite.cfg(t __class__tinfotlocal_prefixesR$tpathsepR&tdefault_runtime_dirstdefault_src_dirststrRÙt ConfigParsertcptfilesRRKtparse_config_filestsectiontNonet getbooleant isinstancetinttAssertionError(tselfR+R-t verbositytdefaults((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyt__init__s$     cC`sT|jj|jƒ|jj|jƒsP|jdk rP|jj|jƒqPndS(N(RätreadRåt has_sectionRçRèt add_section(Rí((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRæ(scC`sÿ|jƒ}|jƒ}|jƒ}|j|jddƒƒi}xµ|D]­}|j||gƒ}|dk r�t||�ntjd|ƒ|rJ|j||gƒ}|dk rã|d=|j dƒ|dtplatformRÙtso_ext(Rítct static_extstexts((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pytlibrary_extensionsãs   cC`sw|jƒ}d}x9|D]1}|j||||gƒ}|dk rPqqW|sstjddj|ƒ|ƒn|S(såIf static or shared libraries are available then return their info dictionary. Checks for all libraries as shared libraries first, then static (or vice versa if self.search_static_first is True). s libraries %s not found in %sR0N(R>Rèt _check_libsR RÝR&(Rítlib_dirsRtopt_libsR=RÝtext((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRùõs    cC`sM|jƒ}|j||||ƒ}|sItjddj|ƒ|ƒn|S(s’If static or shared libraries are available then return their info dictionary. Checks each library for shared or static. s libraries %s not found in %sR0(R>R?R RÝR&(RíR@RRAR=RÝ((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyt check_libs2s   cC`s×t|ƒst‚tjdkr0ddg}n dg}x—|D]�}x2|D]*}|j||||ƒ}|rMPqMqMW|r@t|ƒdks™t‚|dkr²|d7}n|dkrË||}n|Sq@WtS(NRRÖR"is.dll.as.dlls.lib(RRìR>R9t combine_pathsRtFalse(Rítlib_dirR"R=t lib_prefixesRBtprefixR((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyt _find_libs"       c C`s�gg}}xg|D]_}xV|D]N}|j|||ƒ}|r!|j|ƒ||krk|j|ƒnPq!q!WqW||fS(N(RIRC( RíR@RR=t found_dirst found_libsR"RFt found_lib((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyt _find_libs.s      c C`sÒt|ƒs|g}n|j|||ƒ\}}t|ƒdkrÊt|ƒt|ƒkrÊ|j|||ƒ\}}|j|ƒx*|D]"} | |krŒ|j| ƒqŒqŒWi|d6|d6} | SdSdS(sxFind mandatory and optional libs in expected paths. Missing optional libraries are silently forgotten. iRõRÓN(RRMRRRCRè( RíR@RRAR=RJRKtopt_found_dirstopt_found_libsRFRÝ((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR?;s  *   cG`st|i|jd6ŽS(sjReturn a list of existing paths composed by all combinations of items from the arguments. Rî(RDRî(Rítargs((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRDPsN("RÅRÆRÇRçRèRRÙRîRRÄRR+R-RðRæRÿRRRRÀR-R÷RøR.R/R4RöR>RùRCRIRMR?RD(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR¿s<      $ 7          RšcB`seZd„ZRS(cC`sti}tdƒp'tdƒp'tdƒ}tdƒ}|rpt||�|r_t||�n|j|�dSdS(NRdRcReRj(RÀRúR(RíRÝR›R£((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR Ys$   (RÅRÆR (((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRšWsR›cB`sˆeZdZdZeZidd6dgd6dgd6dgd6id d6d dgd6d d gd6dgd6gZd„Zd„Z RS(RbtFFTWRdRÁRsfftw3.htincludest SCIPY_FFTW3_HtmacrosRctrfftwsfftw.hsrfftw.ht SCIPY_FFTW_HcC`s|jƒ}|jƒ}|j|jd|dƒ}|j||ƒ}|d k râd}x`|D]X}t|j||dƒƒt|dƒkr`t|d|gƒd}|g}Pq`q`W|rÙt|d|dƒqâd }n|d k rÿ|j |�t St j d |d ƒt Sd S( s8Returns True on successful version detection, else Falset_libsRiRRRÔit define_macrosRTs %s not foundRÁN(R÷R.R4RçRùRèRRDRúRtTrueR RÝRE(Rít ver_paramR@t incl_dirsRRÝRR(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyt calc_ver_infoss*        cC`s+x$|jD]}|j|ƒr Pq q WdS(N(tver_infoR\(RíRþ((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR �sN(RSN(RVN( RÅRÆRçRRÍRRèR]R\R (((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR›es        RœcB`sNeZdZdZeZidd6ddgd6ddgd6d gd 6gZRS( RbRQRcRÁRURsfftw.hsrfftw.hRRRVRTN(RVN(RÅRÆRçRRÍRRèR](((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRœ“s   R�cB`sHeZdZdZeZidd6dgd6dgd6d gd6gZRS( RdtFFTW3RÁRsfftw3.hRRRSRTN(RSN(RÅRÆRçRRÍRRèR](((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR�Ÿs   RžcB`sHeZdZdZidd6ddgd6ddgd6d gd 6gZRS( RbRQReRÁtdrfftwRsdfftw.hsdrfftw.hRRt SCIPY_DFFTW_HRTN(R`N(RÅRÆRçRRèR](((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRž«s    RŸcB`sHeZdZdZidd6ddgd6ddgd6d gd 6gZRS( RbRQRfRÁtsrfftwRssfftw.hssrfftw.hRRt SCIPY_SFFTW_HRTN(RbN(RÅRÆRçRRèR](((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRŸ´s    R cB`sHeZdZdZidd6ddgd6ddgd 6d gd 6gZRS(RbRQs fftw threadsRÁt rfftw_threadsRgRsfftw_threads.hsrfftw_threads.hRRtSCIPY_FFTW_THREADS_HRTN(RdN(RÅRÆRçRRèR](((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR ½s    R¡cB`sHeZdZdZidd6ddgd6ddgd 6d gd 6gZRS(RbRQs dfftw threadsRÁtdrfftw_threadsRhRsdfftw_threads.hsdrfftw_threads.hRRtSCIPY_DFFTW_THREADS_HRTN(RfN(RÅRÆRçRRèR](((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR¡Æs    R¢cB`sHeZdZdZidd6ddgd6ddgd 6d gd 6gZRS(RbRQs sfftw threadsRÁtsrfftw_threadsRiRssfftw_threads.hssrfftw_threads.hRRtSCIPY_SFFTW_THREADS_HRTN(RhN(RÅRÆRçRRèR](((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR¢Ïs    R£cB`s,eZdZdZeZd„Zd„ZRS(RjtDJBFFTcC`sxtj|||ƒ}g}x1|D])}|j|j|dgƒ|gƒq"Wg|D]}tjj|ƒrV|^qVS(NRj(R¿R-RRDR$R%R (RíRçRôtpre_dirsRüR(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR-Ýs  'cC`s|jƒ}|jƒ}d}xz|D]r}|j|dgƒ}|rWi|d6}Pn|j|ddtgƒ}|r%idgd6|gd6}Pq%q%W|dkr«dSx_|D]W}t|j|dd gƒƒd kr²t|d |gd dgƒ|j|�dSq²WdS(Nsdjbfft.at extra_objectss libdjbfft.at libdjbfftRjRõRÓsfftc8.hs fftfreq.hiRÔRXtSCIPY_DJBFFT_H(RmN(R÷R.RèRDR:RRúR(RíR@R[RÝR(R((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR äs*      $  (RÅRÆRçRRÎRR-R (((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR£Øs  R‘cB`s8eZdZdZdgZd„Zd„Zd„ZRS(RXtMKLROOTtmkl_rtc C`s±tjjddƒ}|dk r%|Stjjddƒjtjƒ}d}tjj|ƒr¬t|dƒ�:}x0|D](}|j ƒ}|rw|j |ƒqwqwWWdQXng}xt|D]l}|jtj ƒ}xQ|D]I} | j dƒrØtj j ||j| ƒd ƒ}|j |ƒPqØqØWq¹Wx�|D]y}ttjj |ddƒƒ} | ttjj |d ƒƒ7} x3| D]+}tjjtjj |d ƒƒrz|SqzWq0WdS( NRntLD_LIBRARY_PATHRÖs/etc/ld.so.conftrRXit*smkl*R"(R$RR½RèR@RßR%RBtopenR1RCtsept startswithR&tindexRR ( RítmklrootRt ld_so_confRHR(tintel_mkl_dirsR%t path_atomstmRü((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pytget_mkl_rootdirs4 !    #    ! cC`s¸|jƒ}|dkr(tj|ƒnŒddlm}|jƒrMd}n'|jƒrn|jƒrnd}nd}tj|dt j j |d|ƒgdt j j |d ƒgƒdS( Ni(tcpuRtintel64t32R+R"R-R!( R|RèR¿RðtcpuinfoR}t is_Itaniumtis_Inteltis_64bitR$R%R&(RíRwR}tplt((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRðs     cC`s¡|jƒ}|jƒ}|jd|jƒ}|j||ƒ}|dkrOdSt|dd d gd|ƒtjdkr}nt|ddgƒ|j |�dS( Ntmkl_libsRXt SCIPY_MKL_Ht HAVE_CBLASRÔRRõtpthread(R†N(R‡N( R÷R.R4t_lib_mklRCRèRúR>R9R(RíR@R[R…RÝ((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR .s     (RÅRÆRçRR‰R|RðR (((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR‘üs    R–cB`seZRS((RÅRÆ(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR–@sR—cB`seZRS((RÅRÆ(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR—DsR…cB`sreZdZdZddgZejd dkrFdgZdgZndgZdgZe Z d „Z d „Z RS( RLtATLAStf77blastcblasitfreebsdtatlas_rt alapack_rRlc C`s„tj|||ƒ}g}x=|D]5}|j|j|dddddgƒ|gƒq"Wg|D]}tjj|ƒrb|^qbS(Nsatlas*sATLAS*tsset3dnowtsse2(R¿R-RRDR$R%R (RíRçRôRjRüR(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR-Us  cC`s’|jƒ}i}|jd|j|jƒ}|jd|jƒ}d}d}d}x�|D]•}|j||gƒ}|j|dggƒ} |dk râ|g|j|ddgƒ} |j| |gƒ}|dk râPqân|r\|}q\q\Wtj |j ƒ|dkr|}n|dkr*dS|j ƒ} |j|| dƒpRdg} | d} | r�t j j| ƒ} t|d| gƒnd |d <|dk rÀt||�t||�n‹d|d krt||�t|d dgƒ|j|�dSt||�t|d dgƒd} tj| ddƒ|j|�dS|dd}|d d}d}dg}tjdkr•|jdƒnxh|jƒD]Z}xG|D]?}t j j||||ƒ}t j j|ƒr¯|}Pq¯q¯W|r¢Pq¢q¢W|dk rbt j|ƒd}|dkrUd||df} tj| ddƒqbd|d 4000k) Follow the instructions in the KNOWN PROBLEMS section of the file numpy/INSTALL.txt. ********************************************************************* tf77(R–N(R—Ni€>(R÷R4Rt _lib_atlast _lib_lapackRèRCRDR RÝRÜR.R$R%RRúRR RR>R9RCR>R&texistststattget_atlas_version(RíR@RÝR“R”RLRltatlas_1R(RPt lib_dirs2RÔthtmessaget lapack_dirt lapack_namet lapack_libRGR$RHtfntszt atlas_versiontatlas_extra_info((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR ]sˆ                          ( RÅRÆRçRRR>R9R™RšRÈRR-R (((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR…Hs      R‡cB`seZddgZd„ZRS(R‹RŒc C`s |jƒ}i}|jd|j|jƒ}|j||gƒ}|dkrSdS|jƒ}|j||dƒp{dg}|d}|r¶tj j |ƒ}t |d|gƒnd|d  !       ·(0044+(RÅRÆRçRRÊRR-R (((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR¦-s  sŽ /* This file is generated from numpy/distutils/system_info.py */ void ATL_buildinfo(void); int main(void) { ATL_buildinfo(); return 0; } c K`sÏ|jdgƒ}|jdgƒ}t|ƒt|ƒf}|tkrPt|Sttƒƒ}d}i}yÁ|jtd|d|dtj dkƒ\}}|r+t j d|t j ƒr+|jtd|dgd|dtj dkƒ\}}|s+t jddd ƒt|d d d dgƒq+nWnÆtk rôxH|D]@}t j d|ƒ} | rs| jdƒ}n|dk rCPqCqCW|dkr«tjjddƒ}n|rÑt|d dd|fgƒnt|d dgƒ|píd|fSX|s(t j d|ƒ} | r(| jdƒ}q(n|dkrxt j d|t j ƒrUd}qxtjd|ƒtjd|ƒn|dkršt|d dgƒnt|d dd|fgƒ||f} t|<| S(NRõRÓtuse_teeis!undefined reference to `_gfortrantgfortrans3 ***************************************************** Linkage with ATLAS requires gfortran. Use python setup.py config_fc --fcompiler=gnu95 ... when building extension libraries that use ATLAS. Make sure that -lgfortran is used for C++ extensions. ***************************************************** R iR•tf90RXtATLAS_REQUIRES_GFORTRANs#ATLAS_(?P\d+[.]\d+[.]\d+)_tversiont ATLAS_VERSIONt ATLAS_INFOs"\"%s\""t NO_ATLAS_INFOiÿÿÿÿs?.?.?s*ATLAS version (?P\d+[.]\d+[.]\d+)sundefined symbol: ATL_buildinfos3.2.1_pre3.3.6s Status: %ds Output: %siþÿÿÿ(RÆN(RÊiÿÿÿÿ(RÊiþÿÿÿ(R½ttuplet_cached_atlas_versiont cmd_configRRèt get_outputtatlas_version_c_textR¿RîtretsearchtMR RRút ExceptiontgroupR$RR RÝ( RRõRÓRôR;R§RÝtstoR{tresult((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR�­sf               R­cB`seZeZd„ZRS(c C`s„tdƒ}|r#|j|�dStdƒ}|rF|j|�dStdƒ}|ri|j|�dStdƒ}|sŠtdƒ}n|sŸtdƒ}n|s´tdƒ}ntdƒ}|rÞ| rÞ|j|�dSd }d }i}|r2|jd gƒ}d|ks d|kr)d }n|}n5tjtjddƒd }d }t|d dgƒ|rítdƒ} | r�t|| �qítjt jddƒtdƒ} | sÑtjt jddƒdSt|dd| fgƒn|rstdƒ} | rt|| �qstjt jddƒtdƒ} | sWtjt jddƒdSt|dd| fgƒn|j|�dS(NR]RZR[RSRRRMRLR_iRXR–R—iR iRÊRlRmRõt flapack_srcRkRnt fblas_src(R–N(R—N(RÊi( RÀRR½RèR RRÈRÇRúRÉRÊRËRÌ( RíR–R’R…R˜t need_lapackt need_blasRÝR%R¥R¦R¤R§((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR úst                   (RÅRÆRÉRR (((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR­ösR®cB`seZeZd„ZRS(c C`s¿tdƒ}|r#|j|�dStdƒ}|rF|j|�dStdƒ}|ri|j|�dStdƒ}|sŠtdƒ}n|sŸtdƒ}n|s´tdƒ}ntdƒ}|rÞ| rÞ|j|�dSd }i}|rù|}n/tjtjd d ƒd }t|d dgƒ|r®tdƒ}|rPt||�q®tjtjd d ƒtdƒ} | s’tjtjd d ƒdSt|dd| fgƒn|j|�dS(NR^R\RYRURTRORNR_iR iiRXRÊRkRnRõRÙ(RÊi( RÀRR RRÈRÇRúRËRÌ( RíR—R•R’R…R˜RÛRÝR¤R§((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR IsT              (RÅRÆRËRR (((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR®EsR¤cB`s5eZdZdZdgZeZd„Zd„ZRS(RktBLAScC`sÈ|jƒ}|jd|jƒ}|j||gƒ}|dkrFdS|jƒ|d int main(int argc, const char *argv[]) { double a[4] = {1,2,3,4}; double b[4] = {5,6,7,8}; return cblas_ddot(4, a, 1, b, 1) > 10; }ssource.ctwtt output_dirRÔsa.outRõRŒRÓtextra_postargsRÛRk(RERttempfiletmkdtempR$R%R&RstwritetcompileR.tlink_executableR½t distutilst ccompilert LinkErrort CompileErrorRètshutiltrmtree( RíRÝRR;ttmpdirRÕR:RHtobj((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRàœs6       ( RÅRÆRçRRRËRR Rà(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR¤€s   R’cB`s>eZdZdZdgZeZd„Zd„Zd„Z RS(RYtOPENBLAScC`stS(N(RY(RíRÝ((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pytcheck_embedded_lapackÏsc C`sLtƒ}|jƒ}|jd|jƒ}||jkrQ|jd|jƒ}n|j||gƒ}|jdkrÓ|dkrÓddlm}|d|ƒ}|rì|jdkrì|j ||ƒ}t }qìn|rìt }d|d t version_infoR8RCRsRæRçRèRYRéRêRëRíRî( RíRÝRR;RïRÕR:Rt extra_argsRHRð((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRòs2    -  (RÅRÆRçRRRËRRò(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR“s  R”cB`seZddgZRS(RYRl(RÅRÆR(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR”>sR•cB`s,eZdZdZdgZeZd„ZRS(R\tBLIScC`s©|jƒ}|jd|jƒ}||jkrH|jd|jƒ}n|j||gƒ}|dkrmdS|jƒ}t|ddddgd|ƒ|j|�dS( NRõt blis_libsR•R;RXR‡RÔ(R‡N(R÷R4RRCRèR.RúR(RíR@RRÝR[((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR Gs     (RÅRÆRçRRRËRR (((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR•As  R˜cB`seZdZeZd„ZRS(R_c C`sítjjdƒ}|r$|g}n|jdddgƒ}g|D]}|jƒjƒ^qC}tjdkrétjddƒ rég}g}t ƒddksÒd t ƒksÒd t ƒksÒdtjƒkrÛd }nd }tj j d ƒrNd|krN|r|j dgƒn|j dgƒ|j dgƒ|j ddgƒnmtj j dƒr»d|kr»|r…|j dgƒn|j dgƒ|j dgƒ|j ddgƒn|ré|jd|d|dddgƒqéndS(Nt ACCELERATERõR_tveclibR7t_PYTHON_HOST_PLATFORMiüÿÿÿti386tinteltx86_64iis0/System/Library/Frameworks/Accelerate.framework/s-msse3s -faltivecs5-I/System/Library/Frameworks/vecLib.framework/Headerss-Wl,-frameworks-Wl,Accelerates,/System/Library/Frameworks/vecLib.framework/s -Wl,vecLibRÚRÛRXRÊiR‡(RÊi(R‡N(R$RR½R4R1R¾R>R9tgetenvRèR R%R›RR(RíRõR"RPt link_argsR ((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR ]sH %"     (RÅRÆRçRËRR (((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR˜YsR§cB`s,eZdZdZeZd„Zd„ZRS(RntBLAS_SRCcC`sxtj|||ƒ}g}x1|D])}|j|g|j|dgƒƒq"Wg|D]}tjj|ƒrV|^qVS(NRk(R¿R-RRDR$R%R (RíRçRôRjRüR(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR-“s  'c C`sô|jƒ}d}x9|D]1}tjjtjj|dƒƒr|}PqqW|sXdSd}d}d}g|||jƒD]}tjj||dƒ^q}g|D]}tjj|ƒr«|^q«}i|d6dd 6} |j| �dS( NRÖsdaxpy.fso caxpy csscal dnrm2 dzasum saxpy srotg zdotc ccopy cswap drot dznrm2 scasum srotm zdotu cdotc dasum drotg icamax scnrm2 srotmg zdrot cdotu daxpy drotm idamax scopy sscal zdscal crotg dcabs1 drotmg isamax sdot sswap zrotg cscal dcopy dscal izamax snrm2 zaxpy zscal csrot ddot dswap sasum srot zcopy zswap scabs1 sÐ cgbmv chpmv ctrsv dsymv dtrsv sspr2 strmv zhemv ztpmv cgemv chpr dgbmv dsyr lsame ssymv strsv zher ztpsv cgerc chpr2 dgemv dsyr2 sgbmv ssyr xerbla zher2 ztrmv cgeru ctbmv dger dtbmv sgemv ssyr2 zgbmv zhpmv ztrsv chbmv ctbsv dsbmv dtbsv sger stbmv zgemv zhpr chemv ctpmv dspmv dtpmv ssbmv stbsv zgerc zhpr2 cher ctpsv dspr dtpsv sspmv stpmv zgeru ztbmv cher2 ctrmv dspr2 dtrmv sspr stpsv zhbmv ztbsv sÛ cgemm csymm ctrsm dsyrk sgemm strmm zhemm zsyr2k chemm csyr2k dgemm dtrmm ssymm strsm zher2k zsyrk cher2k csyrk dsymm dtrsm ssyr2k zherk ztrmm cherk ctrmm dsyr2k ssyrk zgemm zsymm ztrsm s.fR R˜R•(R/R$R%RBR&R@R( RíRØR´R(tblas1tblas2tblas3RHR RÝ((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR šs   ! 7+(RÅRÆRçRRÌRR-R (((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR§Žs  R™cB`s&eZdZeZd„Zd„ZRS(R`cC`stj|dtdtƒdS(NR+R-(R¿Rðtdefault_x11_lib_dirstdefault_x11_include_dirs(Rí((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRðÆs cC`sËtjdkrdS|jƒ}|jƒ}|jddgƒ}|j||gƒ}|dkredSd}x*|D]"}|j|dƒrr|}PqrqrW|dk rºt|d|gƒn|j |�dS(NRtx11_libstX11sX11/X.hRÔ(R( R>R9R÷R.R4RùRèRDRúR(RíR@RÔRRÝtinc_dirR(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR Ës      (RÅRÆRçRÐRRðR (((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR™Âs t _numpy_infocB`s,eZdZdZeZd„Zd„ZRS(RqcC`s�g}y¯t|jƒ}g}x:|jjtjƒD]#}|dkrJPn|j|ƒq4Wy|jt|dƒƒƒWntk r‹nX|jt j j dtjj |ƒƒƒWnt k rÈnXt j j ƒ}|j|ƒt j j dtƒ}||kr|j|ƒnxKtD]C}tjj |tjj|ƒƒ}||kr|j|ƒqqWtj|dgd|ƒdS(NR"t get_includeRHt plat_specificR+R-(t __import__t modulenameR<R@R$RtRCRtAttributeErrorRét sysconfigtget_python_incR&t ImportErrorRYR-R%RR¿Rð(RíRÔtmoduleRHRÁt py_incl_dirt py_pincl_dirR(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRðãs8      !  c C`s?yt|jƒ}Wntk r'dSXi}g}xkddgD]]}t||dƒ}|dkrkqAn|jjƒdd|f|jjƒdfg}PqAWt|d|ƒ|jƒ}d}x<|D]4}|j|t j j |jdƒƒrË|}PqËqËW|dk r%t|d|gƒn|r;|j |�ndS(Nt __version__RÇt_VERSIONs"\"%s\""RXs arrayobject.hRÔ( RRR RRètupperRúR.RDR$R%R&R( RíR!RÝRTRtvrsRÔRR(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR s8        (RÅRÆRçRRÏRRðR (((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRÞs  "R«cB`seZdZdZRS(Rs(RÅRÆRçR(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR«$sRªcB`seZdZdZRS(Rq(RÅRÆRçR(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRª)sR¨cB`seZdZdZRS(Ro(RÅRÆRçR(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR¨.sR¬cB`seZdZd„ZRS(RtcC`s•d }tjdƒr-tjdƒdf}n|ddkrd }yddl}d }Wqtk rttƒƒ}yddl}d }Wqtk rttƒƒ}yddl}d}Wqtk r ttƒƒ}t j |ƒt j |ƒt j |ƒqXqXqXn|dj ƒj ƒ|df}|ddkrit d |d|dfƒ‚n|dtjd<|jt|dƒ�dS(NtNUMERIXsenvironment variRot defaultedRrRsisonumerix selector must be either 'Numeric' or 'numarray' or 'numpy' but the value obtained from the %s was '%s'.(NN(RoR)(RoR)(RrR)(RsR)(RrRsRo(RèR$R RoR RâRRqRsR RÝR1R¾RRRRÀ(RítwhichRotmsg1Rqtmsg2Rstmsg3((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR 6s:            (RÅRÆRçR (((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR¬3sR©cB`seZd„ZRS(cC`s{yddlj}Wntk r'dSXtjjtjj|jƒdƒ}|jdtjj|dƒgd|gƒdS(NiR:R sfortranobject.cRÔ( t numpy.f2pyRpR R$R%R&RR<R(RíRptf2py_dir((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR Ys $! (RÅRÆR (((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR©XsR¯cB`s&eZdZdZd„Zd„ZRS(RwtBOOSTcC`sxtj|||ƒ}g}x1|D])}|j|g|j|dgƒƒq"Wg|D]}tjj|ƒrV|^qVS(Nsboost*(R¿R-RRDR$R%R (RíRçRôRjRüR(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR-hs  'c C`sK|jƒ}d}xB|D]:}tjjtjj|ddddƒƒr|}PqqW|sadStjjƒg}tjjdtƒ}||kr¤|j |ƒntjj|dddƒ}t tjj|dƒƒ}|t tjj|ddƒƒ7}id i|g|d 6|d 6fgd 6|gd 6}|rG|j |�ndS( NRÖRtpythonR:s module.cppRs*.cppRrtboost_python_srcRÔR Rõ( R/R$R%RBR&RéRRRYRCRR( RíRØR´R(t py_incl_dirsR#tsrcs_dirtbpl_srcsRÝ((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR os.    " (RÅRÆRçRR-R (((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR¯ds R°cB`s&eZdZdZd„Zd„ZRS(RxtAGG2cC`sxtj|||ƒ}g}x1|D])}|j|g|j|dgƒƒq"Wg|D]}tjj|ƒrV|^qVS(Nsagg2*(R¿R-RRDR$R%R (RíRçRôRjRüR(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR-�s  'cC`s=|jƒ}d}x<|D]4}tjjtjj|ddƒƒr|}PqqW|s[dStjdkr‘ttjj|ddddƒƒ}nCttjj|ddƒƒ}|tjj|dddd ƒg7}id i|d 6tjj|d ƒgd 6fgd6tjj|d ƒgd 6}|r9|j|�ndS(NRÖR:sagg_affine_matrix.cppRR9sagg_win32_bmp.cpps*.cppRsagg_platform_support.cpptagg2_srcR R!RÔRõ( R/R$R%RBR&R>R9RR(RíRØR´R(t agg2_srcsRÝ((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR –s.  $  #(RÅRÆRçRR-R (((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR°‹s t_pkg_config_infocB`sSeZdZdZdZdZdZdZdZ dZ d„Z d„Z d„Z RS( t PKG_CONFIGs pkg-configRÖs --modversions--cflagscC`s'|jtjkr tj|jS|jS(N(tconfig_env_varR$Rtdefault_config_exe(Rí((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pytget_config_exe¿scC`s?|d|jd|}t|ddƒ\}}|s;|SdS(Nt RÃi(tappend_config_exeR (Rít config_exetoptiontcmdRÕRÖ((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pytget_config_outputÄscC`s7t|jƒƒ}|s6tjd||jfƒdSi}g}g}g}g}g}g}|j||jƒ} | rä|j|jj j dƒdj ƒd| fƒ|j rä|j|j d| j ddƒdfƒqän|jr5|j|dƒ} | r5|j|jd| j ddƒdfƒq5n|j|dƒ} | r¼xl| j ƒD][} | d d kr„|j| d ƒqZ| d d kr¨|j| d ƒqZ|j| ƒqZWn|j||jƒ} | r‡x­| j ƒD]œ} | d d kr|j| d ƒqä| d d krsd| krY| d j dƒ\} }|j| |fƒq€|j| d dfƒqä|j| ƒqäWn|r t|d|ƒn|r¹t|d|ƒn|rÒt|d|ƒn|rët|d|ƒn|rt|d|ƒn|rt|d|ƒn|r3|j|�ndS(Ns-File not found: %s. Cannot determine %s info.R iÿÿÿÿs"\"%s\""s_%st_s --releases--libsis-ls-Ls-Is-Dt=RXRõRÓRÔRÛRÚ(R R=R RRçRCt version_flagRCRÜRÅR@R&tversion_macro_nametreplaceRètrelease_macro_namet cflags_flagRúR(RíR@RÝRTRõRÓRÔRÛRÚRÇtreleasetoptsRtnR((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR Êst " ! ! N(RÅRÆRèRçR;R<R?RGRIRFRJR=RCR (((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR9µs  R±cB`s8eZdZdZdZdZdZdZdZdZ RS(Ryt WX_CONFIGs wx-configRÖt WX_VERSIONt WX_RELEASEs --versions --cxxflags( RÅRÆRçR;R<R?RGRIRFRJ(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR± sR²cB`seZdZdZdZRS(Rzsgdk-pixbuf-xlib-2.0tGDK_PIXBUF_XLIB_VERSION(RÅRÆRçR?RG(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR² sR³cB`seZdZdZdZRS(R{sgdk-pixbuf-2.0tGDK_PIXBUF_VERSION(RÅRÆRçR?RG(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR³ sR¶cB`seZdZdZdZRS(R~s gdk-x11-2.0tGDK_X11_VERSION(RÅRÆRçR?RG(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR¶! sRµcB`seZdZdZdZRS(R}sgdk-2.0t GDK_VERSION(RÅRÆRçR?RG(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRµ' sR´cB`seZdZdZdZRS(R|RT(RÅRÆRçR?RG(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR´- sR·cB`seZdZdZdZRS(Rs gtk+-x11-2.0tGTK_X11_VERSION(RÅRÆRçR?RG(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR·3 sR¸cB`seZdZdZdZRS(R€sgtk+-2.0t GTK_VERSION(RÅRÆRçR?RG(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR¸9 sR¹cB`seZdZdZdZRS(R�t XFT_VERSION(RÅRÆRçR?RG(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR¹? sRºcB`seZdZdZdZRS(R‚tFREETYPE2_VERSION(RÅRÆRçR?RG(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRºE sR¼cB`s&eZdZdZdgZd„ZRS(R„tAMDc C`sä|jƒ}|jd|jƒ}|j||gƒ}|dkrFdS|jƒ}d}x@|D]8}|j|dƒ}|r_tjj |dƒ}Pq_q_W|dk rÓt |d|gdd gdd|gƒn|j |�dS( Ntamd_libssamd.hiRÔRXt SCIPY_AMD_Ht swig_optss-I(R[N( R÷R4RRùRèR.RDR$R%RRúR(RíR@RZRÝRÔRR(R((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR P s$       (RÅRÆRçRRR (((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR¼K s R»cB`s,eZdZdZeZdgZd„ZRS(RƒtUMFPACKc C`s |jƒ}|jd|jƒ}|j||gƒ}|dkrFdS|jƒ}d}xI|D]A}|j|ddgdƒ}|r_tjj |dƒ}Pq_q_W|dk rÜt |d|gdd gd d |gƒnt d ƒ}t |t d ƒ�|j |�dS( Nt umfpack_libsRÖRƒs umfpack.hiRÔRXtSCIPY_UMFPACK_HR\s-IR„(R_N( R÷R4RRùRèR.RDR$R%RRúRÀR( RíR@R^RÝRÔRR(RR„((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR o s(        (RÅRÆRçRRÑRRR (((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR»i s  cO`s8g}x?|D]7}|sq nt|ƒr7|g}n|j|ƒq W|}|sXgSt|ƒdkr�td„tt|dƒgƒ}nŒt|ƒdkrög}xq|dD]=}x4|dD](}|jttjj ||ƒƒƒqÃWq²Wn%t t |d|dƒ|dŒ}t j ddj |ƒƒ|S(sc Return a list of existing paths composed by all combinations of items from arguments. icS`s||S(N((R3R&((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pytš siis (paths: %s)R0( RRCRRtmapRRR$R%R&RDR R!(RPtkwsRqR3R×ta0ta1((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyRD‹ s(   %-%R;isc++iR˜RÅcK`sõg}x¦|jƒD]˜\}}|dkr>|j|ƒqn||kr¡|d kr�g|D])}|||kr]||j|ƒ^q]q«||j|ƒq|||R?RtRmR t set_thresholdtDEBUGtINFORCtglobalsRRtisclasst issubclassR¿RvRîRÀRÝR&( R?RvRLRPt show_onlyRMtshow_allt_gdict_RÁR;tconfRq((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pyR~É s8         t__main__(»RÇt __future__RRRR>R$RÐRR tatexitRt functoolsRRRãRRt configparsertdistutils.errorsRtdistutils.distRtdistutils.sysconfigRéR tdistutils.utilR tnumpy.distutils.exec_commandR R R tnumpy.distutils.misc_utilRRRtnumpy.distutils.command.configRRÍtnumpy.distutils.compatRtnumpy.distutilsRtdistutils.ccompilerRäRíR9t_bitst architecturet platform_bitsRR%R&Rt EXEC_PREFIXR+RàR-RáRRR.R,R(RHRtR/R*R0Rt vcpkg_dirt specifiertvcpkg_installedt vcpkg_rootR4t conda_dirR›tglobbed_x11_dirR@t x11_so_dirRt subprocesstspRèRRstdevnulltPopentPIPERtOSErrorRât communicatetdecodeR1ttriplett returncodetcloseRHtinsertRCt_mR R:RKRÀRÄRÈRÉRÊRËRÌRÍRÎRÏRÐRÑtobjectR¿RšR›RœR�RžRŸR R¡R¢R£R‘R–R—R…R‡R†RˆR‰RŠR‹R�RŒRŽR�R�R¥R¦RÏRÌR�R­R®R¤R’R“R”R•R˜R§R™RR«RªR¨R¬R©R¯R°R9R±R²R³R¶RµR´R·R¸R¹RºR¼R»RDRgReRúRtR~RÅ(((s:/tmp/pip-build-fiC0ax/numpy/numpy/distutils/system_info.pytys~            '    ((   "        "# ""++++  $ LÿV.       $Dn{ IO;IL)54F% '*U " ""