File "build_ext.cpython-36.pyc"

Full Path: /home/attunedd/public_html/byp/izo/con7ext_sym404/rintoar.txt/opt/alt/python36/lib64/python3.6/distutils/command/__pycache__/build_ext.cpython-36.pyc
File size: 16.18 KB
MIME-type: text/x-bytecode.python
Charset: 8 bit

3

 fz@sdZddlZddlZddlZddlZddlmZddlTddlm	Z	m
Z
ddlmZddlm
Z
ddlmZdd	lmZdd
lmZddlmZejdZd
dZGdddeZdS)zdistutils.command.build_ext

Implements the Distutils 'build_ext' command, for building extension
modules (currently limited to C extensions, should accommodate C++
extensions ASAP).N)Command)*)customize_compilerget_python_version)get_config_h_filename)newer_group)	Extension)get_platform)log)	USER_BASEz3^[a-zA-Z_][a-zA-Z_0-9]*(\.[a-zA-Z_][a-zA-Z_0-9]*)*$cCsddlm}|dS)Nr)show_compilers)distutils.ccompilerr)rr@/opt/alt/python36/lib64/python3.6/distutils/command/build_ext.pyrsrc@seZdZdZdejZd`dad	d
defdcdddefdddedfdddefdgdhdidjdkdldmdndodpgZdd%d(d1d8gZ	d:d2d;e
fgZd<d=Zd>d?Z
d@dAZdBdCZdDdEZdFdGZdHdIZdJdKZdLdMZejdNdOZdPdQZdRdSZdTdUZdVdWZdXdYZdZd[Zd\d]Zd^d_Zd2S)q	build_extz8build C/C++ extensions (compile/link to build directory)z (separated by '%s')
build-lib=b(directory for compiled extension modulesbuild-temp=t1directory for temporary files (build by-products)z
plat-name=pz>platform name to cross-compile for, if supported (default: %s)inplaceiz=ignore build-lib and put compiled extensions into the source z,directory alongside your pure Python modulesz
include-dirs=Iz.list of directories to search for header filesdefine=DC preprocessor macros to defineundef=U!C preprocessor macros to undefine
libraries=l!external C libraries to link withz
library-dirs=Lz.directories to search for external C librariesrpath=R7directories to search for shared C libraries at runtime
link-objects=O2extra explicit link objects to include in the linkdebugg'compile/link with debugging informationforcef2forcibly build everything (ignore file timestamps)	compiler=cspecify the compiler type	parallel=jnumber of parallel build jobsswig-cppN)make SWIG create C++ files (default is C)
swig-opts=!list of SWIG command line optionsswig=path to the SWIG executableuser#add user include, library and rpathz
help-compilerzlist available compilerscCsd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_	d|_
d|_d|_d|_
d|_d|_d|_d|_d|_d|_d|_dS)Nr)
extensions	build_lib	plat_name
build_temprpackageinclude_dirsdefineundef	librarieslibrary_dirsrpathlink_objectsr+r.compilerswigswig_cpp	swig_optsr=parallel)selfrrrinitialize_optionsjs*zbuild_ext.initialize_optionsc
Csddlm}|jdd'd(d)d*d+d,d-|jdkr8|jj|_|jj|_|j}|jdd}|j	dkrn|jj	pjg|_	t
|j	tr|j	jt
j|_	tjtjkr|j	jt
jjtjd
|j	j|||kr|j	j||jd|jd|jdkrg|_|jdkrg|_nt
|jtr&|jjt
j|_|jdkr:g|_nt
|jtrX|jjt
j|_t
jdkrT|jjt
jjtjdtjtjkr|jjt
jjtjd|jrt
jj|jd|_nt
jj|jd|_|j	jt
jjtttdd}|r|jj||j dkrd}n|j dd}t
jjtjd}|rHt
jj||}|jj|tj!dddks|tj!dddkrtj"j#t
jjtjdr|jjt
jjtjddt$dn|jjd|j%d r|j&s|jj|j%d!n|jjd|j'r|j'jd"}d#d$|D|_'|j(r4|j(jd"|_(|j)dkrHg|_)n|j)jd%|_)|j*rt
jjt+d
}t
jjt+d}	t
jj,|r|j	j|t
jj,|	r|jj|	|jj|	t
|j-tryt.|j-|_-Wnt/k
rt0d&YnXdS).Nr)	sysconfigZbuildr@rBrKr+r.rOrA)Z
plat_specificincluderGrJntZlibsZDebugZRelease_homewin32ZPCbuildcygwinatheosbinlibpythonconfig.Py_ENABLE_SHAREDLIBDIR,cSsg|]}|dfqS)1r).0Zsymbolrrr
<listcomp>sz.build_ext.finalize_options.<locals>.<listcomp> zparallel should be an integer)r@r@)rBrB)rKrK)r+r+)r.r.)rOrO)rArA)1	distutilsrRZset_undefined_optionsrCdistributionZext_packageZext_modulesr?Zget_python_incrD
isinstancestrsplitospathsepsysexec_prefixbase_exec_prefixappendpathjoinZensure_string_listrGrHrInameprefixr+rBdirnamergetattrrAplatform
executable
startswithrget_config_varZpython_buildrErFrNr=risdirrOint
ValueErrorZDistutilsOptionError)
rPrRZ
py_includeZplat_py_include	_sys_homesuffixZnew_libZdefinesZuser_includeZuser_librrrfinalize_optionss





(
zbuild_ext.finalize_optionscCstddlm}|jsdS|jjrL|jd}|jj|jp:g|j	j
|j||j|j
|j|jd|_t|jtjdkr|jtkr|jj|j|jdk	r|jj|j|jdk	rx |jD]\}}|jj||qW|jdk	rx|jD]}|jj|qW|jdk	r|jj|j|j	dk	r4|jj|j	|jdk	rN|jj|j|j dk	rh|jj!|j |j"dS)Nr)new_compiler
build_clib)rKverbosedry_runr.rU)#r
rr?riZhas_c_librariesget_finalized_commandrGextendZget_library_namesrHrrrrKrrr.rrmrurAr	Z
initializerDZset_include_dirsrEZdefine_macrorFZundefine_macroZ
set_librariesZset_library_dirsrIZset_runtime_library_dirsrJZset_link_objectsbuild_extensions)rPrrruvaluemacrorrrruns>




z
build_ext.runc
Cst|tstdxnt|D]`\}}t|tr4qt|tsLt|dkrTtd|\}}tjd|t|t	ozt
j|stdt|tstdt||d}x*dD]"}|j
|}|dk	rt|||qW|j
d|_d|krtjd|j
d}|rxg|_g|_xj|D]b}	t|	to,t|	dks8tdt|	dkrX|jj|	dnt|	dkr|jj|	qW|||<qWdS)aEnsure that the list of extensions (presumably provided as a
        command option 'extensions') is valid, i.e. it is a list of
        Extension objects.  We also support the old-style list of 2-tuples,
        where the tuples are (ext_name, build_info), which are converted to
        Extension instances here.

        Raise DistutilsSetupError if the structure is invalid anywhere;
        just returns otherwise.
        z:'ext_modules' option must be a list of Extension instanceszMeach element of 'ext_modules' option must be an Extension instance or 2-tuplezvold-style (ext_name, build_info) tuple found in ext_modules for extension '%s' -- please convert to Extension instancezRfirst element of each tuple in 'ext_modules' must be the extension name (a string)zOsecond element of each tuple in 'ext_modules' must be a dictionary (build info)sourcesrDrHrG
extra_objectsextra_compile_argsextra_link_argsNrIZdef_filez9'def_file' element of build info dict no longer supportedmacrosrSz9'macros' element of build info dict must be 1- or 2-tupler)rDrHrGrrr)rSr)rjlistDistutilsSetupError	enumeratertuplelenr
warnrkextension_name_rematchdictgetsetattrruntime_library_dirs
define_macrosundef_macrosrr)
rPr?rextext_nameZ
build_infokeyvalrrrrrcheck_extensions_listUsT










zbuild_ext.check_extensions_listcCs0|j|jg}x|jD]}|j|jqW|S)N)rr?rr)rP	filenamesrrrrget_source_filess
zbuild_ext.get_source_filescCs6|j|jg}x |jD]}|j|j|jqW|S)N)rr?rrget_ext_fullpathru)rPZoutputsrrrrget_outputss
zbuild_ext.get_outputscCs(|j|j|jr|jn|jdS)N)rr?rO_build_extensions_parallel_build_extensions_serial)rPrrrrs
zbuild_ext.build_extensionscsj}jdkrtj}yddlm}Wntk
r@d}YnX|dkrVjdS||dTfddjD}x6tj|D]&\}}j	||j
WdQRXqWWdQRXdS)NTr)ThreadPoolExecutor)Zmax_workerscsg|]}jj|qSr)Zsubmitbuild_extension)rer)executorrPrrrfsz8build_ext._build_extensions_parallel.<locals>.<listcomp>)rOrm	cpu_countZconcurrent.futuresrImportErrorrr?zip_filter_build_errorsresult)rPZworkersrZfuturesrZfutr)rrPrrs 


z$build_ext._build_extensions_parallelc
Cs4x.|jD]$}|j||j|WdQRXqWdS)N)r?rr)rPrrrrrsz"build_ext._build_extensions_serialccsTy
dVWnDtttfk
rN}z"|js*|jd|j|fWYdd}~XnXdS)Nz"building extension "%s" failed: %s)ZCCompilerErrorZDistutilsErrorZCompileErrorZoptionalrru)rPrerrrrs
zbuild_ext._filter_build_errorsc
CsX|j}|dkst|ttfr,td|jt|}|j|j}||j}|jpZt	||dsnt
jd|jdSt
jd|j|j
||}|jpg}|jdd}x|jD]}|j|fqW|jj||j||j|j||jd}|dd|_|jr|j|j|jp
g}|jp|jj|}	|jj|||j||j|j||j ||j|j|	d
dS)Nzjin 'ext_modules' option (extension '%s'), 'sources' must be present and must be a list of source filenamesZnewerz$skipping '%s' extension (up-to-date)zbuilding '%s' extension)Z
output_dirrrDr+extra_postargsdepends)rGrHrrexport_symbolsr+rBZtarget_lang)!rrjrrrrurrr.rr
r+infoswig_sourcesrrrrrrKcompilerBrDZ_built_objectsrrrlanguageZdetect_languageZlink_shared_object
get_librariesrHrget_export_symbols)
rPrrext_pathrZ
extra_argsrrFZobjectsrrrrrsN



zbuild_ext.build_extensioncCs2g}g}i}|jrtjd|js6d|jks6d|jkr<d}nd}xX|D]P}tjj|\}}	|	dkr|j|d||j||d||<qF|j|qFW|s|S|jp|j	}
|
dg}|j
|j|jr|jd|jsx|jD]}|j|qWx8|D]0}||}
tjd	||
|j|d
|
|gqW|S)zWalk the list of source files in 'sources', looking for SWIG
        interface (.i) files.  Run SWIG on all that are found, and
        return a modified 'sources' list with SWIG source files replaced
        by the generated C (or C++) files.
        z/--swig-cpp is deprecated - use --swig-opts=-c++z-c++z.cppz.cz.i_wraprSz-pythonzswigging %s to %sz-o)
rMr
rrNrmrssplitextrrrL	find_swigrrZspawn)rPr	extensionZnew_sourcesrZswig_targetsZ
target_extsourcebaserrLZswig_cmdotargetrrrr0s>





zbuild_ext.swig_sourcescCs`tjdkrdStjdkrNxBdD]&}tjjd|d}tjj|r|SqWdSntd	tjd
S)zReturn the name of the SWIG executable.  On Unix, this is
        just "swig" -- it should be in the PATH.  Tries a bit harder on
        Windows.
        posixrLrU1.31.21.1z	c:\swig%szswig.exez>I don't know how to find (much less run) SWIG on platform '%s'N)rrr)rmrursrtisfileZDistutilsPlatformError)rPZversfnrrrrfs


zbuild_ext.find_swigcCs|j|}|jd}|j|d}|jsRtjj|dd|g}tjj|j|Sdj|dd}|jd}tjj	|j
|}tjj||S)	zReturns the path of the filename for a given extension.

        The file is located in `build_lib` or directly in the package
        (inplace option).
        r`rSNrbuild_pyrrr)get_ext_fullnamerlget_ext_filenamerrmrsrtr@rabspathZget_package_dir)rPrfullnameZmodpathfilenamerCrZpackage_dirrrrr~s


zbuild_ext.get_ext_fullpathcCs |jdkr|S|jd|SdS)zSReturns the fullname of a given extension name.

        Adds the `package.` prefixNr`)rC)rPrrrrrs
zbuild_ext.get_ext_fullnamecCs.ddlm}|jd}|d}tjj||S)zConvert the name of an extension (eg. "foo.bar") into the name
        of the file from which it will be loaded (eg. "foo/bar.so", or
        "foo\bar.pyd").
        r)r|r`
EXT_SUFFIX)distutils.sysconfigr|rlrmrsrt)rPrr|rZ
ext_suffixrrrrs
zbuild_ext.get_ext_filenamecCs0d|jjdd}||jkr*|jj||jS)aReturn the list of symbols that a shared extension has to
        export.  This either uses 'ext.export_symbols' or, if it's not
        provided, "PyInit_" + module_name.  Only relevant on Windows, where
        the .pyd file (DLL) must export the module "PyInit_" function.
        ZPyInit_r`rSr)rurlrrr)rPrZ
initfunc_namerrrrs
zbuild_ext.get_export_symbolscCstjdkrfddlm}t|j|s\d}|jr4|d}|tjd?tjd?d@f}|j|gS|jSnRtjd	d
dkrd}|tjd?tjd?d@f}|j|gStjd	d
d
kr>ddl	m
}d}|tjd?tjd?d@f}g}xB|jdjD]0}|j
dr|j|dd	n
|j|qW|j|dg|StjdkrP|jStjd	ddkrj|jSddl	m
}|jdrdjtjd?tjd?d@|jd}|j|gS|jSd	S)zReturn the list of libraries to link against when building a
        shared extension.  On most platforms, this is just 'ext.libraries';
        on Windows, we add the Python library (eg. python20.dll).
        rWr)MSVCCompilerz
python%d%dZ_dNrYrZzpython%d.%dr[)rRSHLIBSz-lrmdarwinaixraz
python{}.{}{}ABIFLAGS)roryZdistutils._msvccompilerrrjrKr+
hexversionrGrhrRr|rlr{rrformat)rPrrtemplateZ	pythonlibrRZextrar]rrrrsJ


zbuild_ext.get_libraries)rrr)rrriignore build-lib and put compiled extensions into the source directory alongside your pure Python modules)rrr)rrr)rrr )r!r"r#)r%r&r')r(r)r*)r+r,r-)r.r/r0)r1r2r3)r4r5r6)r7Nr8)r9Nr:)r;Nr<)r=Nr>) __name__
__module____qualname__ZdescriptionrmrnZsep_byr	Zuser_optionsZboolean_optionsrZhelp_optionsrQrrrrrrrr
contextlibcontextmanagerrrrrrrrrrrrrrr!s

@N	
K6	
r)__doc__rrmreroZdistutils.corerZdistutils.errorsrrrrZdistutils.dep_utilrZdistutils.extensionrZdistutils.utilr	rhr
Zsiterrrrrrrrr<module>s"