Jd=ddlZddlZddlZddlmZddlmZddlm Z m Z m Z m Z ddl mZddlmZddlmZmZddlmZdd lmZdd lmZmZ ddlmZed n #e$reZYnwxYwed dd lm Z!dZ"dZ#dZ$dZ%ej&dkrdZ$n*ej'dkr ddl(Z(e)e(dxZ$Z#n #e$rYnwxYwdZ*dZ+GddeZe$s ej'dkr ddZ,dSdZ% ddZ,dS)NEXTENSION_SUFFIXES)cache_from_source)DictIteratorListTuple) build_ext) new_compiler)customize_compilerget_config_var)log) BaseError) ExtensionLibraryzCython.Compiler.MainLDSHARED) _config_varscptjdkrtj} dtd<dtd<dtd<t |tjtj|dS#tjtj|wxYwt |dS)Ndarwinz0gcc -Wl,-x -dynamiclib -undefined dynamic_lookuprz -dynamiclibCCSHAREDz.dylibSO)sysplatform _CONFIG_VARScopyr clearupdate)compilertmps O/opt/alt/python311/lib/python3.11/site-packages/setuptools/command/build_ext.py_customize_compiler_for_shlibr!s |x!! %C  $'5L $!)L  x ( ( (     $ $ $ $ $     $ $ $ $8$$$$$s -A;;)B$FsharedrTntRTLD_NOWctr|ndS)N) have_rtld)ss r if_dlr)@s !11r!c>tD]}d|vr|cS|dkr|cSdS)z;Return the file extension for an abi3-compliant Extension()z.abi3z.pydNr)suffixs r get_abi3_suffixr-DsH$ f  MMM v  MMMr*c$eZdZUdZeed<dZeed<dZdede e e ffdZ dZ ded e de fd Z dee e e ffd Zd Zd ZdZdZdZdZdZdee fdZdee e ffdZdZdZddZdde defdZde fdZdS)r F editable_modeinplacec|jdc}|_tj|||_|r|dSdS)z;Build extensions in build directory, then copy if --inplacerN)r0 _build_extruncopy_extensions_to_source)self old_inplaces r r3z build_ext.runQsS$(L!! T\t"  -  * * , , , , , - -r*extreturnc||j}||}|d}d|dd}||}t j|t j|}t j|j |} || fS)N.) get_ext_fullnamenameget_ext_filenamesplitjoinget_package_dirospathbasename build_lib) r5build_pyr7fullnamefilenamemodpathpackage package_dir inplace_file regular_files r _get_inplace_equivalentz!build_ext._get_inplace_equivalentYs((22((22..%%((73B3<((..w77 w||K1A1A(1K1KLL w||DNH== l++r*cf|d}|jD]}|||\}}tj|s|js||||j|j r.| ||}| ||ddS)NrF)levelT)compile) get_finalized_command extensionsrNrBrCexistsoptional copy_fileverbose _needs_stub_get_equivalent_stub_write_stub_file)r5rFr7rLrM inplace_stubs r r4z#build_ext.copy_extensions_to_sourcecs--j99? G GC)-)E)EhPS)T)T &L, w~~l++ O3< O|\NNN G#88lKK %%lC%FFF G Gr* output_filectj|}|jd\}}}tj||dSNr:.py)rBrCdirnamer= rpartitionr@)r5r7r\dir__r=s r rYzbuild_ext._get_equivalent_stubtsOw{++X((-- 1d',,tT**////r*c#K|jsdS|d}|djpd}|jD]|}|||\}}||fV|jrT|||}|||}t||}t||} | |fV}dS)NrF install_libr&) optimization)r0rRoptimizerSrNrXrY_compiled_file_name) r5rFoptr7rLrMr[ regular_stub inplace_cache output_caches r _get_output_mappingzbuild_ext._get_output_mappingys|  F--j99((77@FB? 4 4C)-)E)EhPS)T)T &L,. . . . 4 $88lKK #88lKK 3Ls S S S 2r ext_mapgetattrr-len isinstancersplitextshlib_compilerlibrary_filenamelibtype use_stubs_links_to_dynamic)r5rGso_extrHr7use_abi3fnds r r>zbuild_ext.get_ext_filenamesM233  2w|X^^C%8%89FBHH!24BBH#L11F t| # #,x(Cs$455K/:K:KH -#Mc&kk\M2(**#f,#w'' 3'**844C*;;BHHH 3s4 3 h//2w||Aurz222r*cftj|d|_g|_i|_d|_dS)NF)r2initialize_optionsrxshlibsrsr/r5s r rzbuild_ext.initialize_optionss7%d+++"  "r*ctj||jpg|_||jd|jD|_|jr||jD]!}||j|_"|jD]E}|j}||j |<||j | dd<|jr| |pd}|otot|t }||_||_||x}|_t&jt&j|j|}|r#||jvr|j||r>tr7t&j|jvr$|jt&jG|jr d|_dSdS)Nc<g|]}t|t|S)rvr).0r7s r z.build_ext.finalize_options..s6444s$S'224s444r*r:r;FT)r2finalize_optionsrScheck_extensions_listrsetup_shlib_compilerr<r= _full_namersr?links_to_dynamicr{rvrr|rXr> _file_namerBrCr`r@rE library_dirsappendcurdirruntime_library_dirsr/r0)r5r7rGltdnsrHlibdirs r rzbuild_ext.finalize_optionss#D)))//R ""4?33344do444 ; (  % % ' ' '? = =C!2238< %  " "4> 2 2 2   (  % %d&7 8 8 8 : !  - -dj 9 9 9   (  % %d&7 8 8 8'9&@&@&J&J###r*cdt|tr|jStj||SN)rvrexport_symbolsr2get_export_symbols)r5r7s r rzbuild_ext.get_export_symbolss0 c7 # # &% %,T3777r*c>||j} t|tr |j|_t j|||jr0|dj }| ||||_dS#||_wxYw)NrF) _convert_pyx_sources_to_langrrvrrxr2build_extensionrXrRrE write_stub)r5r7 _compilerrEs r rzbuild_ext.build_extensions ((***M  &#w'' 4 $ 3  &tS 1 1 1 0 66zBBL  3///%DMMMIDM % % % %s A-B Bc td|jDd|jddddgzt fd|jDS)z?Return true if 'ext' links to a dynamic lib in the same packagecg|] }|j Sr)r)rlibs r rz.build_ext.links_to_dynamic..s!H!H!HS#.!H!H!Hr*r:Nr;r&c3&K|] }|zvV dSrr)rlibnamelibnamespkgs r z-build_ext.links_to_dynamic..s,JJ3=H,JJJJJJr*)dictfromkeysrr@rr?anyr)r5r7rrs @@r rzbuild_ext.links_to_dynamics ==!H!HDK!H!H!HIIhhs~++C00"5<==JJJJJCMJJJJJJr*c|jr3t|St t j||zSr)r0listget_output_mappingkeyssortedr2 get_outputs_build_ext__get_stubs_outputsrs r rzbuild_ext.get_outputss\ < ://11668899 9j,T22T5M5M5O5OOPPPr*ch|}tt|dS)z1See :class:`setuptools.commands.build.SubCommand`c|dS)Nrr)xs r z.build_ext.get_output_mapping..s !A$r*)key)rmrr)r5mappings r rzbuild_ext.get_output_mapping s0**,,F7777888r*cfdjD}tj|}t d|DS)Nc3K|]?}|j tjjjg|jdRV@dS)r:N)rXrBrCr@rErr?)rr7r5s r rz0build_ext.__get_stubs_outputs..se   GL D#.*>*>s*C*C D D D      r*c3&K|] \}}||zV dSrr)rbasefnexts r rz0build_ext.__get_stubs_outputs..s*::[T5D5L::::::r*)rS itertoolsproduct!_build_ext__get_output_extensionsr)r5 ns_ext_basespairss` r __get_stubs_outputszbuild_ext.__get_stubs_outputssj       !,0L0L0N0NOO::E::::::r*c#ZKdVdV|djrdVdSdS)Nr_z.pycrFz.pyo)rRrgrs r __get_output_extensionsz!build_ext.__get_output_extensionssH   % %j 1 1 : LLLLL  r*ctjj|g|jdRdz}||||dSr^)rBrCr@rr?rZ)r5 output_dirr7rQ stub_files r rzbuild_ext.write_stub!sNGLHcn.B.B3.G.GHHH5P  ig66666r*rc\tjd|j||r1tj|rt |dz|jst|d}| d dddtdzd tj |j zd d d td dddtddddddtddddg||r||dSdS)Nz writing stub loader for %s to %sz already exists! Please delete.w zdef __bootstrap__():z- global __bootstrap__, __file__, __loader__z0 import sys, os, pkg_resources, importlib.utilz, dlz: __file__ = pkg_resources.resource_filename(__name__,%r)z del __bootstrap__z if '__loader__' in globals():z del __loader__z# old_flags = sys.getdlopenflags()z old_dir = os.getcwd()z try:z( os.chdir(os.path.dirname(__file__))z$ sys.setdlopenflags(dl.RTLD_NOW)z3 spec = importlib.util.spec_from_file_location(z# __name__, __file__)z0 mod = importlib.util.module_from_spec(spec)z! spec.loader.exec_module(mod)z finally:z" sys.setdlopenflags(old_flags)z os.chdir(old_dir)z__bootstrap__()r&)rinforrBrCrTrropenwriter@r)rDrclose_compile_and_remove_stub)r5rr7rQfs r rZzbuild_ext._write_stub_file%sR 3S^YOOO  Krw~~i00 KI(IIJJ J| Y$$A GG *CF&MM"$g&&s~667+6+?@@.>@AAI9F7!>??,%1   8 GGIII  5  ) )) 4 4 4 4 4 5 5r*c"ddlm}||gdd|j|dj}|dkr||g|d|jt j|r|jst j|dSdSdS)Nr) byte_compileT)rgrrre) distutils.utilrrrRrgrBrCrTunlink)r5rrrgs r rz"build_ext._compile_and_remove_stubKs////// i[1 7 7 7 7--m<<E a<< L)x#T\ ; ; ; ; 7>>) $ $ !T\ ! Ii  ! ! ! !r*N)F) __name__ __module__ __qualname__r/bool__annotations__r0r3rr strrNr4rYrrmr>rrrrrrrrrrrrrrZrrr*r r r MsM4GT---,Y,5c?,,,, G G G"0 000000 4XeCHo%>44442.###   @KKK6888 & & &KKKQT#YQQQQ 9DcN9999 ; ; ; 7777$5$5#$5I$5$5$5$5L !# ! ! ! ! ! !r*r c R||j||||||||| | | | dSr)linkSHARED_LIBRARY) r5objectsoutput_libnamerrrrrdebug extra_preargsextra_postargs build_temp target_langs r rr[sF  .  <1E E=.       r*staticc $tj|\}} tj| \}}|ddr |dd}|||||| dS)Nrr)rBrCr?rwry startswithcreate_static_lib)r5rrrrrrrrrrrrrHrDr7s r rrjs "w}}^<< H((22 #   % % 0 0 7 7 $ |H  Xz5+     r*) NNNNNrNNNN)-rBrrimportlib.machineryrimportlib.utilrrhtypingrrrr distutils.command.build_extr _du_build_extdistutils.ccompilerr distutils.sysconfigr r distutilsrsetuptools.errorsrsetuptools.extensionrrCython.Distutils.build_extr2 __import__ ImportErrorrrr!r'r{rzrr=dlhasattrr)r-rrr*r r s 222222CCCCCC............BBBBBB,,,,,,BBBBBBBB''''''33333333BBBBBBJ%&&&&JJJz<<<<<<%%%(   <8IIW__  'J 7 77 II      """H!H!H!H!H! H!H!H!V ' 4GKIMIM       GGKIMIM       s$A A*)A*!B44B<;B<