File "build_ext.cpython-38.pyc"

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

U

ifP{@sdZddlZddlZddlZddlZddlmZddlTddlm	Z	m
Z
ddlmZddlm
Z
ddlmZdd	lmZdd
lmZddlmZed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)Nrshow_compilers)distutils.ccompilerr
rr@/opt/alt/python38/lib64/python3.8/distutils/command/build_ext.pyr
sr
c@seZdZdZdejZdddddefdd	d
defdd
ddddefddddddddddgZddddd gZ	d!d"d#e
fgZd$d%Zd&d'Z
d(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zejd6d7Zd8d9Zd:d;Zd<d=Zd>d?Zd@dAZdBdCZdDdEZdFdGZd"S)H	build_extz8build C/C++ extensions (compile/link to build directory)z (separated by '%s'))z
build-lib=bz(directory for compiled extension modules)zbuild-temp=tz1directory for temporary files (build by-products)z
plat-name=pz>platform name to cross-compile for, if supported (default: %s))inplaceiziignore build-lib and put compiled extensions into the source directory alongside your pure Python modulesz
include-dirs=Iz.list of directories to search for header files)zdefine=DzC preprocessor macros to define)zundef=Uz!C preprocessor macros to undefine)z
libraries=lz!external C libraries to link withz
library-dirs=Lz.directories to search for external C libraries)zrpath=Rz7directories to search for shared C libraries at runtime)z
link-objects=Oz2extra explicit link objects to include in the link)debuggz'compile/link with debugging information)forcefz2forcibly build everything (ignore file timestamps))z	compiler=czspecify the compiler type)z	parallel=jznumber of parallel build jobs)swig-cppNz)make SWIG create C++ files (default is C))z
swig-opts=Nz!list of SWIG command line options)zswig=Nzpath to the SWIG executable)userNz#add user include, library and rpathrrr r$r%z
help-compilerNzlist 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_objectsrr compilerswigswig_cpp	swig_optsr%parallelselfrrrinitialize_optionsjs*zbuild_ext.initialize_optionsc

Csddlm}|ddddddd	d
|jdkr8|jj|_|jj|_|}|jdd}|j	dkrn|jj	pjg|_	t
|j	tr|j	t
j|_	tjtjkr|j	t
jtjd
|j	|t
jj||kr|j	|t
jj|d|d|jdkrg|_|jdkrg|_nt
|jtr:|jt
j|_|jdkrNg|_nt
|jtrl|jt
j|_t
jdkrh|jt
jtjdtjtjkr|jt
jtjd|jrt
j|jd|_nt
j|jd|_|j	t
jtt tdd}|r|j||j!dkr*d}n|j!dd}t
jtjd}|r\t
j||}|j|tj"dddkrtj#$t
jtjdr|jt
jtjddt%dn|jd|&dr|j's|j|&d n|jd|j(r|j(d!}d"d#|D|_(|j)r4|j)d!|_)|j*dkrHg|_*n|j*d$|_*|j+rt
jt,d
}t
jt,d}	t
j-|r|j	|t
j-|	r|j|	|j|	t
|j.trzt/|j.|_.Wnt0k
rt1d%YnXdS)&Nr)	sysconfigZbuild)r'r')r)r))r2r2)rr)r r )r6r6)r(r()Z
plat_specificZincluder.r1ntZlibsZDebugZRelease_homewin32ZPCbuildcygwinbinlibpythonZconfig.Py_ENABLE_SHAREDZLIBDIR,cSsg|]}|dfqS)1r).0Zsymbolrrr
<listcomp>sz.build_ext.finalize_options.<locals>.<listcomp> zparallel should be an integer)2	distutilsr:Zset_undefined_optionsr*distributionZext_packageZext_modulesr&Zget_python_incr+
isinstancestrsplitospathsepsysexec_prefixbase_exec_prefixappendpathjoinextendZensure_string_listr.r/r0nameprefixrr)dirnamergetattrr(platform
executable
startswithrget_config_varZpython_buildr,r-r5r%risdirr6int
ValueErrorZDistutilsOptionError)
r8r:Z
py_includeZplat_py_includeZ	_sys_homesuffixZnew_libZdefinesZuser_includeZuser_librrrfinalize_optionss






zbuild_ext.finalize_optionscCsjddlm}|jsdS|jrL|d}|j|p:g|j	
|j||j|j
|j|jd|_t|jtjdkr|jtkr|j|j|jdk	r|j|j|jdk	r|jD]\}}|j||q|jdk	r|jD]}|j|q|jdk	r|j|j|j	dk	r*|j|j	|jdk	rD|j|j|j dk	r^|j!|j |"dS)Nr)new_compiler
build_clib)r2verbosedry_runr r<)#rrgr&rMZhas_c_librariesget_finalized_commandr.rYZget_library_namesr/rVrhr2rirjr rrQrZr(r	Z
initializer+Zset_include_dirsr,Zdefine_macror-Zundefine_macroZ
set_librariesZset_library_dirsr0Zset_runtime_library_dirsr1Zset_link_objectsbuild_extensions)r8rgrhrZvaluemacrorrrruns@






z
build_ext.runc
Csvt|tstdt|D]T\}}t|tr0qt|trFt|dkrNtd|\}}td|t|t	rvt
|s~tdt|tstdt||d}dD]"}|
|}|d	k	rt|||q|
d
|_d|krtd|
d
}|rhg|_g|_|D]b}	t|	tr"t|	dks*tdt|	dkrJ|j|	dnt|	dkr|j|	q|||<qd	S)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)sources)r+r/r.
extra_objectsextra_compile_argsextra_link_argsNr0Zdef_filez9'def_file' element of build info dict no longer supportedmacros)r;rpz9'macros' element of build info dict must be 1- or 2-tupler;r)rNlistDistutilsSetupError	enumeratertuplelenr
warnrOextension_name_rematchdictgetsetattrruntime_library_dirs
define_macrosundef_macrosrV)
r8r&rextext_nameZ
build_infokeyvalrurnrrrcheck_extensions_listVs^







zbuild_ext.check_extensions_listcCs,||jg}|jD]}||jq|SN)rr&rYrq)r8	filenamesrrrrget_source_filess

zbuild_ext.get_source_filescCs2||jg}|jD]}|||jq|Sr)rr&rVget_ext_fullpathrZ)r8Zoutputsrrrrget_outputss

zbuild_ext.get_outputscCs(||j|jr|n|dSr)rr&r6_build_extensions_parallel_build_extensions_serialr7rrrrls
zbuild_ext.build_extensionscsj}jdkrt}zddlm}Wntk
r@d}YnX|dkrVdS||dPfddjD}tj|D]&\}}	||
W5QRXqW5QRXdS)NTr)ThreadPoolExecutor)Zmax_workerscsg|]}j|qSr)Zsubmitbuild_extension)rIrZexecutorr8rrrJsz8build_ext._build_extensions_parallel.<locals>.<listcomp>)r6rQ	cpu_countZconcurrent.futuresrImportErrorrr&zip_filter_build_errorsresult)r8ZworkersrZfuturesrZfutrrrrs"

z$build_ext._build_extensions_parallelc
Cs0|jD]$}||||W5QRXqdSr)r&rr)r8rrrrrs
z"build_ext._build_extensions_serialc
csTz
dVWnDtttfk
rN}z |js*|d|j|fW5d}~XYnXdS)Nz"building extension "%s" failed: %s)ZCCompilerErrorZDistutilsErrorZCompileErrorZoptionalr{rZ)r8rerrrrs
zbuild_ext._filter_build_errorsc
CsP|j}|dkst|ttfs*td|jt|}||j}||j}|jslt	||dslt
d|jdSt
d|j|
||}|jpg}|jdd}|jD]}||fq|jj||j||j|j||jd}|dd|_|jr||j|jpg}|jp|j|}	|jj|||||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_dirrur+rextra_postargsdepends)r.r/rrexport_symbolsrr)Ztarget_lang)!rqrNrvryrwrZrrr rr
rinfoswig_sourcesrsrrrVr2compiler)r+Z_built_objectsrrrYrtlanguageZdetect_languageZlink_shared_object
get_librariesr/rget_export_symbols)
r8rrqext_pathrZ
extra_argsrur-ZobjectsrrrrrsX



zbuild_ext.build_extensioncCs$g}g}i}|jrtd|js6d|jks6d|jkr<d}nd}|D]P}tj|\}}	|	dkr||d||||d||<qD||qD|s|S|jp|	}
|
dg}|
|j|jr|d|js|jD]}||q|D].}||}
td	||
||d
|
|gq|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_wrapz-pythonzswigging %s to %sz-o)
r4r
r{r5rQrWsplitextrVr3	find_swigrYrZspawn)r8rq	extensionZnew_sourcesrZswig_targetsZ
target_extsourcebaserr3Zswig_cmdotargetrrrr1s@



zbuild_ext.swig_sourcescCs^tjdkrdStjdkrLdD]*}tjd|d}tj|r|SqdStdtjdS)	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.
        posixr3r<)z1.3z1.2z1.1z	c:\swig%szswig.exez>I don't know how to find (much less run) SWIG on platform '%s'N)rQrZrWrXisfileZDistutilsPlatformError)r8Zversfnrrrrgs


zbuild_ext.find_swigcCs||}|d}||d}|jsRtjj|dd|g}tj|j|Sd|dd}|d}tj	|
|}tj||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).
        rErNrbuild_py)get_ext_fullnamerPget_ext_filenamerrQrWrXr'rkabspathZget_package_dir)r8rfullnamemodpathfilenamer*rZpackage_dirrrrrs


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

        Adds the `package.` prefixNrE)r*)r8rrrrrs
zbuild_ext.get_ext_fullnamecCs.ddlm}|d}|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").
        rrarEZ
EXT_SUFFIX)distutils.sysconfigrarPrQrWrX)r8rrarZ
ext_suffixrrrrs
zbuild_ext.get_ext_filenamecCsxd|jdd}z|dWn0tk
rRd|dddd}YnXd	|}||jkrr|j||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.
        _rErasciirZpunycode-_ZPyInit)rZrPencodeUnicodeEncodeErrorreplacedecoderrV)r8rreZ
initfunc_namerrrrs"
zbuild_ext.get_export_symbolscCstjdkr^ddlm}t|j|sd}|jr4|d}|tjd?tjd?d@f}|j|gSndd	l	m
}d
}|drttdrd
}n<tjdkrd
}n,dtj
kr|ddkrd
}n|ddkrd
}|r|d}|jd|gS|jS)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).
        r>r)MSVCCompilerz
python%d%dZ_drFrFZgetandroidapilevelTrAZ_PYTHON_HOST_PLATFORMZANDROID_API_LEVELZMACHDEPZ	LDVERSIONrD)rSr^Zdistutils._msvccompilerrrNr2r
hexversionr.rrahasattrrQenviron)r8rrtemplateZ	pythonlibraZlink_libpythonZ	ldversionrrrrs4





zbuild_ext.get_libraries) __name__
__module____qualname__ZdescriptionrQrRZsep_byr	Zuser_optionsZboolean_optionsr
Zhelp_optionsr9rfrorrrrlrr
contextlibcontextmanagerrrrrrrrrrrrrrr!sp
+@N	
	K6	
r)__doc__rrQrerSZdistutils.corerZdistutils.errorsrrrrZdistutils.dep_utilrZdistutils.extensionrZdistutils.utilr	rLr
Zsiterrr|r
rrrrr<module>s$