Ë Ú—“­ý‘‚ãóä—ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z ddl mZddlmZddlmZmZddlmZmZdd lmZdd lmZdd lmZmZd Zd ZGd„de e«Z y)éNé)ÚAbstractBuilder)ÚAbstractProject)ÚBindings)ÚBuildableFromSources)Ú ConfigurableÚOption)Ú deprecatedÚ UserException)Úresolve_abi_version)ÚOLDEST_SUPPORTED_MINOR)ÚPyProjectExceptionÚPyProjectOptionExceptioné é c$ó’‡—eZdZdZed«ed«ed«ede¬«eded¬ «ed e¬«ed «ed e¬«ed ejd«¬«ed«ede ¬«ede ¬«edd¬«ede¬«ede¬«ed«ede¬«eded¬«eded¬«eddd d!d"g¬#«ed$d%d&¬'«ed(d)d*d"g¬#«ed+ed,d-d.g¬/«ed0ed,d1d"g¬/«ed2d3d4d"g¬#«ed5e jje j«d6d&d7d.g¬8«ed9ejd:«d;d&d7d.g¬8«eded,d?d7g¬/«ed@ed,dAd7g¬/«fZedBedCd ¬D«edEedFd ¬D«fZˆfdG„ZedH„«ZˆfdI„ZˆfdJ„ZdK„ZdL„ZdM„ZdN„ZdO„ZdP„ZdQ„ZˆfdR„ZdS„ZdT„ZdU„Z dmdV„Z!dW„Z"edX„«Z#e#jHdY„«Z#edZ„«Z%e%jHd[„«Z%e&d\„«Z'd]„Z(dnd^„Z)dd,d_œd`„Z*d,daœdb„Z+dc„Z,dd„Z-de„Z.df„Z/dg„Z0e&dh„«Z1di„Z2dj„Z3dk„Z4dl„Z5ˆxZ6S)oÚProjectz@ Encapsulate a project containing one or more sets of bindings. Ú abi_versionÚbindings_factoryÚbuilder_factoryÚconsole_scripts)Ú option_typeÚ dunder_initF)rÚdefaultÚ gui_scriptsÚminimum_macos_versionÚpy_debugÚpy_include_dirÚinclude)rÚ py_platformÚpy_major_versionÚpy_minor_versionÚ sip_files_dirÚ.Úsdist_excludesÚsip_include_dirsÚ sip_moduleÚwheel_includesÚquietzdisable all progress messages)rÚhelpÚverbosez enable verbose progress messagesÚnamez+the name used in sdist and wheel file namesÚNAMEÚsdistÚwheel)r*ÚmetavarÚtoolsÚ build_dirzthe build directoryÚDIR)r*r0Ú build_tagz*the build tag to be used in the wheel nameÚTAGÚdistinfoTz#don't create a .dist-info directoryÚinstall)rÚinvertedr*r1Ú manylinuxzGdisable the use of manylinux in the platform tag used in the wheel nameÚminimum_glibc_versionzHthe minimum GLIBC version to be used in the platform tag of Linux wheelszM.NÚ scripts_dirz"the scripts installation directoryÚbuild)rr*r0r1Ú target_dirÚplatlibz!the target installation directoryÚapi_dirz&generate a QScintilla .api file in DIRÚcompilez-disable the compilation of the generated codeÚ version_infozAdisable any reference to the SIP version number in generated codeÚdisablezdisable the NAME bindings)rr*r0Úenablezenable the NAME bindingsc ó •—t‰|�«tj«|_d|_t j«|_g|_ d|_ g|_ g|_ d|_ d|_|j|«y)z Initialise the project. N)ÚsuperÚ__init__ÚosÚgetcwdÚroot_dirÚ argumentsÚ collectionsÚ OrderedDictÚbindingsÚbindings_factoriesÚbuilderÚ buildablesÚ installablesÚ_metadata_overridesÚ_temp_build_dirÚinitialise_options)ÚselfÚkwargsÚ __class__s €ú5/usr/lib/python3.12/site-packages/sipbuild/project.pyrFzProject.__init__“srø€ô ‰ÑÔôŸ ™ › ˆŒ ؈ŒÜ#×/Ñ/Ó1ˆŒ Ø"$ˆÔ؈Œ ؈ŒØˆÔà#'ˆÔ Ø#ˆÔà ×Ñ Õ'ócód—|jD]!}t|t«sŒ|jrŒ!yy)z9 True if all modules in the project use the limited ABI. FT)rPÚ isinstancerÚuses_limited_api)rUÚ buildables rXÚall_modules_use_limited_abiz#Project.all_modules_use_limited_abi¦s.€ðŸœˆIܘ)Ô%9Õ:Ø ×1Ó1Ù ð)ð rYcóð•—|j€ t|_n?t|jt«r%|j |jt«|_|j � |j €3tjdz |_tjdz dz|_|j€7|j |j fdk\rddl m }||_ nMddl m }||_ n?t|jt«r%|j |jt«|_ |j€tj |_|j"€t%td «|_t&‰|�Q|«y) zL Set default values for non-user options that haven't been set yet. Néééÿ)érr)ÚSetuptoolsBuilder)ÚDistutilsBuilderÚgettotalrefcount)rrr[ÚstrÚimport_callabler!r"ÚsysÚ hexversionrÚsetuptools_builderrdÚdistutils_builderrerr ÚplatformrÚhasattrrEÚapply_nonuser_defaults)rUÚtoolrdrerWs €rXrozProject.apply_nonuser_defaults±s0ø€ð × Ñ Ð (Ü$,ˆDÕ !Ü ˜×-Ñ-¬sÔ 3à$(×$8Ñ$8¸×9NÑ9NÜó%ˆDÔ !ð × Ñ Ð (¨D×,AÑ,AÐ,IÜ$'§N¡N°bÑ$8ˆDÔ !Ü%(§^¡^°rÑ%9¸UÑ$BˆDÔ !à × Ñ Ð 'Ø×%Ñ% t×'<Ñ'<Ð=ÀÒHÝAØ'8�Õ$å?Ø'7�Õ$Ü ˜×,Ñ,¬cÔ 2à#'×#7Ñ#7¸×8LÑ8LÜ#ó$%ˆDÔ ð × Ñ Ð #Ü"Ÿ|™|ˆDÔ à �=‰=Ð Ü#¤CÐ);Ó<ˆDŒMä ‰Ñ& tÕ,rYcó´•—|j€|jd|_|j€A|dk(rd|_n4tj«|_|j j|_t ‰|�|«|j«|jj|«|jj«D]}|j|«Œy)z@ Set default values for user options that haven't been set yet. Nr,r<) r,Úmetadatar2ÚtempfileÚTemporaryDirectoryrSrEÚapply_user_defaultsÚ_enable_disable_bindingsrOrMÚvalues)rUrprMrWs €rXruzProject.apply_user_defaultsÔs±ø€ð �9‰9Ð ØŸ ™  fÑ-ˆDŒIð �>‰>Ð !Ø�wŠØ!(�•ä'/×'BÑ'BÓ'D�Ô$Ø!%×!5Ñ!5×!:Ñ!:�”ä ‰Ñ# DÔ)ð ×%Ñ%Ô'ð � ‰ ×(Ñ(¨Ô.àŸ ™ ×,Ñ,Ö.ˆHØ × (Ñ (¨Õ .ñ/rYcó8—|jj«y)z Build the project in-situ. N)rOr<©rUs rXr<z Project.buildòs€ð � ‰ ×ÑÕrYcó\—|jj|«}|j«|S)zW Build an sdist for the project and return the name of the sdist file. )rOÚ build_sdistÚ_remove_build_dir)rUÚsdist_directoryÚ sdist_files rXr{zProject.build_sdist÷ó*€ð —\‘\×-Ñ-¨oÓ>ˆ Ø ×ÑÔ àÐrYcó\—|jj|«}|j«|S)zV Build a wheel for the project and return the name of the wheel file. )rOÚ build_wheelr|)rUÚwheel_directoryÚ wheel_files rXr�zProject.build_wheelrrYcó^—tjj|j«d«S)zh Return the name of the 'bindings' directory relative to the eventual target directory. rM)rGÚpathÚjoinÚget_package_dirrys rXÚget_bindings_dirzProject.get_bindings_dir s"€ô �w‰w�|‰|˜D×0Ñ0Ó2°JÓ?Ð?rYc óª—tjj|dj|jj dd«|j ««S)zM Return the name of the .dist-info directory for a target directory. z{}-{}.dist-infoÚ-Ú_)rGr…r†Úformatr,ÚreplaceÚ version_str)rUr=s rXÚget_distinfo_dirzProject.get_distinfo_dirsE€ô�w‰w�|‰|˜JØ!×(Ñ(¨¯©×):Ñ):¸3ÀÓ)DØ× Ñ ó"ó#ð #rYcó—y)z4 Return the contents of the __init__.py to install. Ú©rys rXÚget_dunder_initzProject.get_dunder_inits€ðrYcó—iS)zÞ Return a mapping of PEP 566 metadata names and values that will override any corresponding values defined in the pyproject.toml file. A typical use is to determine a project's version dynamically. r’rys rXÚget_metadata_overrideszProject.get_metadata_overrides s €ðˆ rYcó�•—t‰|�«}|j|j«|j|j«|S)z* Return the list of configurable options. )rEÚ get_optionsÚextendÚ_optionsÚ_multibindings_options)rUÚoptionsrWs €rXr—zProject.get_options)s9ø€ô‘'Ñ%Ó'ˆØ�‰�t—}‘}Ô%Ø�‰�t×2Ñ2Ô3àˆrYcó�—|jr:|jjd«}|d=tjj|ŽSy)a# Return the name of the package directory relative to the eventual target directory. This is the directory containing the shared sip module (if there is one) or the target directory (if not). It will normally be where the individual bindings are installed. r$éÿÿÿÿr‘)r'ÚsplitrGr…r†)rUÚ name_partss rXr‡zProject.get_package_dir2s<€ð �?Š?ØŸ™×.Ñ.¨sÓ3ˆJؘ2�ä—7‘7—<‘< Ð,Ð ,àrYcóž—tj«}|jdk(�r|jd«}t |«dk(�rh|d}d|vr+|jd«\}}t |«}t |«}n t |«}d}|j r=t |j d«}t |j d«}||f||fkr|}|}|jr||fttfkr t}t}|ddk(r |d krd }d}|›d|›�|d<dj|«}nˆ|jd k(ry|jrm|jd«}t |«dk(rN|jr|j\}} nd \}} d |d<|jd|›d| ›�«dj|«}|jdd «jdd «S)zÛ Return the platform tag to use in a wheel name. This default implementation uses the platform name and applies PEP defined conventions depending on OS version and GLIBC version as appropriate. ÚdarwinrŠrcrr$réÚarm64é Úlinux)r¢ér9r‹)Ú sysconfigÚ get_platformr ržÚlenÚintrr^ÚMACOS_MIN_OS_MAJORÚMACOS_MIN_OS_MINORr†r9r:Úinsertr�) rUÚ platform_tagÚpartsÚversionÚ min_majorÚ min_minorÚuser_min_majorÚuser_min_minorÚmajorÚminors rXÚget_platform_tagzProject.get_platform_tagAs×€ô !×-Ñ-Ó/ˆ à × Ñ ˜xÓ 'à ×&Ñ& sÓ+ˆEÜ�5‹z˜Q‹Ø ™(�à˜'‘>Ø+2¯=©=¸Ó+=Ñ(�I˜yÜ # I£�IÜ # I£‘Iä # G£ �IØ !�Ið×-Ò-Ü%(¨×)CÑ)CÀAÑ)FÓ%G�NÜ%(¨×)CÑ)CÀAÑ)FÓ%G�Nà! 9Ð-°ÀÐ0PÒPØ$2˜ Ø$2˜ ð×3Ò3¸ÀIÐ8NÔRdÔfxÐQyÒ8yÜ 2�IÜ 2�Ið˜‘8˜wÒ&¨9°rª>Ø "�IØ !�Ið(˜[¨¨)¨Ð5��a‘Ø"Ÿx™x¨›‘ à × Ñ  Ò (¨T¯^ª^à ×&Ñ& sÓ+ˆEÜ�5‹z˜QŠØ×-Ò-Ø#'×#=Ñ#=‘L�E™5à#'‘L�E˜5à&��a‘Ø— ‘ ˜Q 5 '¨¨5¨'Ð 2Ô3à"Ÿx™x¨›� à×#Ñ# C¨Ó-×5Ñ5°c¸3Ó?Ð?rYcó~—|jsgS|jjd«}|€g}nt|t«r|g}|jj dd«}|D]}|j «d|k(sŒgcSt|jj d«d«dz}|›d|j›d|›d�gS) z? Return any 'Requires-Dist' to add to the project's meta-data. z requires-distr$rŠrrz (>=z, <Ú)) r'rrÚgetr[rgr�ržrªr)rUÚ requires_distÚsip_project_nameÚrdÚnext_abi_majors rXÚget_requires_distszProject.get_requires_distssÇ€ð�ŠØˆIàŸ ™ ×)Ñ)¨/Ó:ˆ Ø Ð Ø‰MÜ ˜ ¤sÔ +Ø*˜OˆMð Ÿ?™?×2Ñ2°3¸Ó<ÐãˆBØ�x‰x‹z˜!‰}Ð 0Ó0Ø’ ð ô˜T×-Ñ-×3Ñ3°CÓ8¸Ñ;Ó<¸qÑ@ˆà#Ð$ D¨×)9Ñ)9Ð(:¸#¸nÐ=MÈQÐOÐPÐPrYcóP—|d|d|jddg}|�"|jd«|j|«|�"|jd«|j|«|�"|jd«|j|«|jD]4}|jd«|j|jd d ««Œ6|jD]4}|jd «|j|jd d ««Œ6|j «D]3}|jd «|jd j |««Œ5|jj«D]=\} } | r| d| zz } d | vrd| zdz} |jd«|j| «Œ?|S)zM Return a sequence of command line arguments to invoke sip-distinfo. z --inventoryz--project-rootz--prefixz\"$(INSTALL_ROOT)\"z --generatorz--generator-versionz --wheel-tagz--console-scriptÚ r‘z --gui-scriptz--requires-distz\"{}\"Ú=z\"z --metadata) rIÚappendrr�rr¿rŒrRÚitems) rUÚ sip_distinfoÚ inventoryÚ generatorÚ wheel_tagÚgenerator_versionÚargsÚepr½rrÚvalues rXÚget_sip_distinfo_command_linez%Project.get_sip_distinfo_command_line—sŠ€ð à Ø à Ø �M‰Mà Ø #ð  ˆð Ð Ø �K‰K˜ Ô &Ø �K‰K˜ Ô "à Ð (Ø �K‰KÐ-Ô .Ø �K‰KÐ)Ô *à Ð Ø �K‰K˜ Ô &Ø �K‰K˜ Ô "à×&Ô&ˆBØ �K‰KÐ*Ô +Ø �K‰K˜Ÿ ™  3¨Ó+Õ ,ð'ð×"Ô"ˆBØ �K‰K˜Ô 'Ø �K‰K˜Ÿ ™  3¨Ó+Õ ,ð#ð×)Ñ)Ö+ˆBØ �K‰KÐ)Ô *Ø �K‰K˜ ×)Ñ)¨"Ó-Õ .ð,ð $×7Ñ7×=Ñ=Ö?‰OˆH�eÙØ˜C %™KÑ'�à�h‰Ø  8Ñ+¨eÑ3�à �K‰K˜ Ô %Ø �K‰K˜Õ !ð @ðˆ rYcóX—|jj«|j«y)z Install the project. N)rOr7r|rys rXr7zProject.installÍs €ð � ‰ ×ÑÔØ ×ÑÕ rYcó—|jS)z+ The getter for the minimum GLIBC version. )Ú_minimum_glibc_versionrys rXr:zProject.minimum_glibc_versionÓó€ð×*Ñ*Ð*rYcóÊ—|€t|d«sd|_y|r |j|«}||_y||_y#t$rt ddj |«d¬«‚wxYw)z+ The setter for the minimum GLIBC version. NrÐzminimum-glibc-versionz('{0}' is an invalid GLIBC version numberútool.sip.project©Ú section_name)rnrÐÚ_convert_major_minorÚ ValueErrorrrŒ©rUrÌs rXr:zProject.minimum_glibc_versionÙó~€ð ˆ=¤¨Ð/GÔ!HØ*.ˆDÔ 'Ø ñ ð 9Ø×1Ñ1°%Ó8�ð',ˆÕ# eˆÕ#øô ò 9Ü.Ð/FØB×IÑIØ %ó'à%7ô9ð9ð 9úó š;»'A"có—|jS)z+ The getter for the minimum macOS version. )Ú_minimum_macos_versionrys rXrzProject.minimum_macos_versionïrÑrYcóÊ—|€t|d«sd|_y|r |j|«}||_y||_y#t$rt ddj |«d¬«‚wxYw)z+ The setter for the minimum macOS version. NrÜzminimum-macos-versionz('{0}' is an invalid macOS version numberrÓrÔ)rnrÜrÖr×rrŒrØs rXrzProject.minimum_macos_versionõrÙrÚcóˆ— t|d«S#t$r*}tdj|«t |«¬«‚d}~wwxYw)z4 Open a file for writing while handling any errors. Úwz`There was an error creating '{0}' - make sure you have write permission on the parent directory)ÚdetailN)ÚopenÚIOErrorr rŒrg)ÚfnameÚes rXÚopen_for_writingzProject.open_for_writing sG€ð #ܘ˜sÓ#Ð #øÜò #Üð@ß@FÁÀuà ܘq›6ô#ð #ûð #ús‚ Ž A—%<¼AcóR—|js|ddk7r|dz }t|d¬«yy)z4 Print a progress message unless they are disabled. r�r$z...T©ÚflushN)r)Úprint)rUÚmessages rXÚprogresszProject.progresss0€ð�zŠzØ�r‰{˜cÒ!ؘ5Ñ �ä �' Ö &ð rYcó—tjj|«}tjj|«r|S|€ |j}tjjtjj ||««S)zœ Return a normalised version of a path. A relative path is assumed to be relate to the project directory or some other provided directory. )rGr…ÚnormpathÚisabsrIr†)rUr…Ú relative_tos rXÚ project_pathzProject.project_path s`€ô �w‰w×Ñ Ó%ˆä �7‰7�=‰=˜Ô ؈Kà Ð ØŸ-™-ˆKä�w‰w×Ѥ§¡§ ¡ ¨[¸$Ó ?Ó@Ð@rY©Ú and_stderrÚfatalc#óK—dj|«}|jr t|d¬«|rtjntj }tj |dtj tj |¬«5}|jD])}t|tjj¬«–—Œ+ ddd«jdk7r(|r%tdj||j««‚yy#1swYŒAxYw­w) z> A generator for each line of a pipe from a command's stdout. rÁTrç)ÚshellÚstdinÚstdoutÚstderr)ÚencodingNrz'{0}' failed returning {1})r†r+réÚ subprocessÚSTDOUTÚPIPEÚPopenr÷rgrirùÚ returncoder rŒ)rUrÊròróÚcmdrøÚpipeÚlines rXÚread_command_pipezProject.read_command_pipe/sÌèø€ð�h‰h�t‹nˆà �<Š<Ü �#˜TÕ "á&0”×"Ò"´j·o±oˆä × Ñ ˜c¨´Z·_±_Ü!—‘¨võ7Ø:>ØŸ œ �ܘ$¬¯©×)<Ñ)<Ô=Ó=ñ$÷7ð �?‰?˜aÒ ¡EÜØ0×7Ñ7¸¸T¿_¹_ÓMóOð Oð%*Ð ÷ 7ð7üs‚BD Â9C?Â?AD Ã?DÄD )rócóŽ—|j|d|¬«D].}|jsŒtjj |«Œ0y)z4 Run a command and display the output if requested. TrñN)rr+rir÷Úwrite)rUrÊrórs rXÚ run_commandzProject.run_commandBs:€ð×*Ñ*¨4¸DÈÐ*ÖNˆDØ�|‹|Ü— ‘ × Ñ  Õ&ñOrYcóΗ|jD]#}||«}||j|j<Œ%|j||«|j ||«|j € t d«‚|j|«|jstjdt«|j€ntjj|j «|_t#j$|j d¬«tj&|j «tj(|j «|j+|«tj(|j,«|j/|«|t0j2vrU|jrH|j5dj7dj9|jj;««««yyy)z, Complete the configuration of the project. Nz.there is no such file in the current directoryÚignoreT)Ú ignore_errorsz!These bindings will be built: {}.z, )rNrMr,Ú_set_initial_configurationÚ_configure_from_argumentsÚ pyprojectrrur+ÚwarningsÚ simplefilterÚ UserWarningrSrGr…Úabspathr2ÚshutilÚrmtreeÚmkdirÚchdirÚupdaterIÚverify_configurationr Ú BUILD_TOOLSrërŒr†Úkeys)rUr rpÚtool_descriptionrrMs rXÚsetupz Project.setupJst€ð!%× 7Ô 7Ð Ù'¨Ó-ˆHØ+3ˆD�M‰M˜(Ÿ-™-Ò (ð!8ð ×'Ñ'¨ °4Ô8ð ×&Ñ& tÐ-=Ô>ð × Ñ Ð &Ü$ØDóFð Fð × Ñ  Ô&ð�|Š|Ü × !Ñ ! (¬KÔ 8ð × Ñ Ð 'ÜŸW™WŸ_™_¨T¯^©^Ó<ˆDŒNÜ �M‰M˜$Ÿ.™.¸Õ =Ü �H‰H�T—^‘^Ô $ä �‰�—‘Ô ð � ‰ �DÔä �‰�—‘Ôð ×!Ñ! $Ô'à ”6×%Ñ%Ñ %¨$¯-ª-Ø �M‰MØ7×>Ñ>Ø ŸI™I d§m¡m×&8Ñ&8Ó&:Ó;ó=õ >ð+8Ð %rYcóJ—|tjvr|j«yy)zÏ This should be re-implemented by any user supplied sub-class to carry out any updates to the configuration as required. The current directory will be the temporary build directory. N)r rÚupdate_buildable_bindings)rUrps rXrzProject.update}s#€ð ”6×%Ñ%Ñ %Ø × *Ñ *Õ ,ð &rYcó—|jryt|jj««D]*}|j «rŒ|j|j =Œ,t |j«dk(r td«‚y)zr Update the list of bindings to ensure they are either buildable or have been explicitly enabled. Nrz'There are no bindings that can be built)rCÚlistrMrwÚ is_buildabler,r©r )rUÚbs rXrz!Project.update_buildable_bindings‡sh€ð �;Š;Ø ä�d—m‘m×*Ñ*Ó,Ö-ˆAØ—>‘>Õ#Ø—M‘M !§&¡&Ñ)ð.ô ˆt�}‰}Ó  Ò "ÜÐ IÓJÐ Jð #rYcóZ—|jrD|jdj«s'tddj|j«d¬«‚|j |j «|_|j D�cgc]}|j |«‘Œc}|_|j|jf}dtf}||ks|jdkDr/tdj|j|j««‚t|jd¬ «|_ t|jjd «D�cgc] }t|«‘Œc}«}|d kr|j!d «|d k(r|j!d«|t"j$vr7|j&s+t)|j*«dkDr tdd«‚d|_g}|j.D]k}t1|t2«r|j5|df«Œ' |\}} t1|t2«r$t1| t2«r|j5|| f«Œatdd«‚||_|dk(rm|j8rat:j<j?|j8«s,t:j<jA|j8«dk(r tdd«‚|jBjE|«|j*jG«D]} | jE|«Œycc}wcc}w#t6$rdx}} Y�Œ wxYw)z; Verify that the configuration is complete and consistent. rz build-tagz'{0}' must begin with a digitrÓrÔrczPython v{}.{} is not supportedF)Úmoduler$)é é z12.9)rrz13.1rz sip-modulezCmust be defined when the project contains multiple sets of bindingsNzwheel-includesz/elements must be strings or 2-tuples of stringsr/z..zapi-dirz&must be relative when building a wheel)$r4ÚisdigitrrŒrðr#r&r!r"r r r rÚtupleržrªÚ_deprecated_abi_versionr rr'r©rMrr(r[rgrÃÚ TypeErrorr?rGr…rîÚdirnamerOrrw) rUrpÚdÚ py_versionÚ first_versionÚvrÚ normalisedÚ wheel_includeÚsubdirrMs rXrzProject.verify_configuration—sé€ð �>Š> $§.¡.°Ñ"3×";Ñ";Ô"=Ü*¨;Ø3×:Ñ:¸4¿>¹>ÓJØ!3ô5ð 5ð "×.Ñ.¨t×/AÑ/AÓBˆÔà×.Ò.ó!0Ù.�Að"&×!2Ñ!2°1Õ!5Ø.ñ!0ˆÔð ×+Ñ+¨T×-BÑ-BÐCˆ ØÔ2Ð3ˆ à ˜ Ò %¨×)>Ñ)>ÀÒ)BÜØ4×;Ñ;Ø ×1Ñ1°4×3HÑ3HóJóKð Kô /¨t×/?Ñ/?ÈÔNˆÔô¨T×-=Ñ-=×-CÑ-CÀCÔ-HÓIÑ-H¨œS �VÐ-HÑIÓJˆ à ˜Ò Ø × (Ñ (¨Ô 0à ˜'Ò !Ø × (Ñ (¨Ô 0ð ”6×%Ñ%Ñ %¨d¯oªoä�4—=‘=Ó! AÒ%Ü.¨|ð+ó,ð,ð %ˆDÔ ðˆ à!×0Ô0ˆMܘ-¬Ô-Ø×!Ñ! =°$Ð"7Õ8ð2Ø,9Ñ)�M 6ô˜m¬SÔ1´jÀÌÔ6MØ×%Ñ% }°fÐ&=Õ>ä2Ð3CØMóOðOð1ð)ˆÔð �7Š?˜tŸ|š|Ü�w‰w�}‰}˜TŸ\™\Ô*¬b¯g©g¯o©o¸d¿l¹lÓ.KÈtÒ.SÜ.¨yØ@óBðBð � ‰ ×)Ñ)¨$Ô/àŸ ™ ×,Ñ,Ö.ˆHØ × )Ñ )¨$Õ /ñ/ùòK!0ùò(Jøô:!ò2Ø-1Ð1�M£Fð2úsÁ?LÅLÈLÌ L*Ì)L*c óŠ—ddlm}ddlm}||d|¬«}i}|j «}t |j «dkr"|jD]}|j|«Œ|j||||¬«|jj|||«|j j«D]} | j|||«Œ|j|j«} |j«D]N\} } | D]D} t| | j «sŒt#| | j$t'| | j ««ŒFŒPy ) z< Update the configuration from any user supplied arguments. r)ÚSUPPRESSr)ÚArgumentParserT)Ú build_toolÚargument_defaultr¢)r›N)Úargparser1Úargument_parserr2r—r©rMršÚremoveÚadd_command_line_optionsrOrwÚ parse_argsrJrÄrnÚdestÚsetattrr,Úgetattr)rUrprr1r2ÚparserÚ all_optionsr›ÚmultirMrÊÚoptionÚ configurablesÚ configurables rXr z!Project._configure_from_argumentsês#€õ &Ý3áÐ 0¸TØ!)ô+ˆðˆ à×"Ñ"Ó$ˆÜ ˆt�}‰}Ó  Ò !ð×4Ô4�Ø—‘˜uÕ%ð5ð ×%Ñ% f¨d°KØð &ô !ð � ‰ ×-Ñ-¨f°d¸KÔHàŸ ™ ×,Ñ,Ö.ˆHØ × -Ñ -¨f°d¸KÕ Hð/ð× Ñ  §¡Ó0ˆà%0×%6Ñ%6Ö%8Ñ !ˆF�MÛ -� ܘ4 §¡Õ-ܘL¨&¯+©+Ü# D¨&¯+©+Ó6õ8ñ!.ñ&9rYcóŒ—|jd«}t|«dk7r t«‚t|d«t|d«fS)z� Convert a 'major.minor' version number to a 2-tuple of integers. Raise a ValueError exception if it is invalid. r$r¢rr)ržr©r×rª)rÌr¯s rXrÖzProject._convert_major_minors@€ð — ‘ ˜CÓ ˆÜ ˆu‹:˜Š?Ü“,Ð ä�5˜‘8‹}œc %¨¡(›mÐ+Ð+rYcó@—td|j›�d|›d�¬«y)z7 Issue a deprecation warning about an old ABI version. zABI vr,z or later)ÚinsteadN)r r)rUrEs rXr&zProject._deprecated_abi_versions%€ô �U˜4×+Ñ+Ð,Ð-¸¸7¸)À9Ð7MÖNrYcó˜—t|jj««}|jr‡|jD] }||vsŒt dj |««‚t|jj ««D]2}|j|jvsŒ|j|j=Œ4|jrˆ|jD] }||vsŒt dj |««‚t|jj ««D]2}|j|jvsŒ|j|j=Œ4yy)zL Check the enabled bindings are valid and remove any disabled ones. zUnknown enabled bindings '{0}'zUnknown disabled bindings '{0}'N) rrMrrCr rŒrwr,rB)rUÚnamesÚenabledrÚdisableds rXrvz Project._enable_disable_bindingss€ô�T—]‘]×'Ñ'Ó)Ó*ˆð �;Š;ØŸ;œ;�Ø %Ò'Ü'Ø<×CÑCÀGÓLóNðNð'ô ˜$Ÿ-™-×.Ñ.Ó0Ö1�Ø—6‘6 §¡Ò,ØŸ ™  a§f¡fÑ-ð2ð �<Š<Ø ŸLœL�Ø 5Ò(Ü'Ø=×DÑDÀXÓNóPðPð)ô ˜$Ÿ-™-×.Ñ.Ó0Ö1�Ø—6‘6˜TŸ\™\Ò)ØŸ ™  a§f¡fÑ-ñ2ð rYcó—d|_y)z Remove the build directory. N)rSrys rXr|zProject._remove_build_dir=s €ð $ˆÕrYcó´—|j«|_|j«|_|jj |j«|jd|_t jj|j «j}|jd«}t|«dkr |jd«t|«dkrŒ d}|D]}|dz} |t|«z }Œ||_|j#|d |«|j%|«|_|j&j#|d |«|j)d «}|�O|j+«D]<}||j,vsŒ|j/||«}||j,|j0<Œ>|j,s8|j/||jd«}||j,|j0<|j,j3«D]"}|j#|d|j0z|«Œ$y #t$r(tddj!|j «d¬ «‚wxYw)z* Set the project's initial configuration. r°r$rcÚ0réz"'{0}' is an invalid version numberztool.sip.metadatarÔrÓztool.sip.builderztool.sip.bindingsNr,ztool.sip.bindings.)Ú get_metadatarrr•rRrrŽÚ packagingr°ÚparseÚ base_versionržr©rÃrªr×rrŒÚ configurerrOÚ get_sectionrrMrr,rw) rUr rprQr°ÚpartÚbindings_sectionsr,rMs rXr z"Project._set_initial_configurationBs%€ð"×.Ñ.Ó0ˆŒ Ø#'×#>Ñ#>Ó#@ˆÔ Ø � ‰ ×јT×5Ñ5Ô6ØŸ=™=¨Ñ3ˆÔô!×(Ñ(×.Ñ.¨t×/?Ñ/?Ó@×MÑMˆ Ø#×)Ñ)¨#Ó.ˆ ä�,Ó !Ò#Ø × Ñ  Ô $ô�,Ó !Ó#ðˆÛ ˆDØ ˜‰MˆGð :Øœ3˜t›9Ñ$‘ð !ðˆŒ ð �‰�yÐ"4°dÔ;ð×+Ñ+¨DÓ1ˆŒ Ø � ‰ ×јyÐ*<¸dÔCð&×1Ñ1Ð2EÓFÐØ Ð (Ø)×.Ñ.Ö0�ؘtŸ}™}Ò,Ø#×4Ñ4°T¸4Ó@�HØ3;�D—M‘M (§-¡-Ò0ð1ð �}Š}Ø×,Ñ,¨T°4·=±=ÀÑ3HÓIˆHØ+3ˆD�M‰M˜(Ÿ-™-Ñ (🠙 ×,Ñ,Ö.ˆHØ × Ñ ˜yÐ*>ÀÇÁÑ*NØõ ñ/øô=ò :Ü.¨yØ<×CÑCØ $× 0Ñ 0ó2à%8ô:ð:ð :ús Ã#H&È&1I)NNN)N)7Ú__name__Ú __module__Ú __qualname__Ú__doc__r rÚboolr§Úget_pathrªrGr…r(riÚ executabler™ršrFÚpropertyr^rorur<r{r�rˆr�r“r•r—r‡r·r¿rÍr7r:ÚsetterrÚ staticmethodrårërðrrrrrrr rÖr&rvr|r Ú __classcell__)rWs@rXrr!s—ø„ÙJñ ˆ}Óñ Ð!Ó"ñ Ð Ó!ñ Ð ¨dÔ3ñ ˆ}¨$¸Ô>ñ ˆ}¨$Ô/ñ Ð&Ó'ñ ˆz tÔ,ñ ÐÐ);¨×);Ñ);¸IÓ)FÔGñ ˆ}Óñ Ð!¨sÔ3ñ Ð!¨sÔ3ñ ˆ¨Ô,ñ ШTÔ2ñ Ð!¨tÔ4ñ ˆ|Óñ ШTÔ2ñ ˆw DØ4ô 6áˆy dØ7ô 9áˆvÐIØ w°Ð&8ô :áˆ{Ð!6ÀÔFÙˆ{Ð!MØ g Yô 0áˆz t°dØ:À9À+ô Oáˆ{¨°tð,à�iô !ñ Ð&ð.à g Yô 0ñ ˆ} b§g¡g§o¡o°c·n±nÓ&EØ9À5Ø  Ð*ô ,ñ ˆ|Ð%7 Y×%7Ñ%7¸ Ó%BØ8À%Ø  Ð*ô ,ñ ˆyÐGØô áˆy d°TØDØ�iô !ñ ˆ~¨4¸$ð)à�iô !ðAd€HñP ˆy dÐ1LØô áˆx TÐ0JØô ðÐô(ð&ñóðô!-ôF/ò<ò òò@ò#òò ôò ò<@ò|Qð2?Có4òl!ð ñ+óð+ð ×!Ñ!ñ,ó"ð,ð*ñ+óð+ð ×!Ñ!ñ,ó"ð,ð*ñ #óð #ò'ó Að5:ÀôOð&*.ô'ò1>òf-òKò Q0òf"8ðHñ ,óð ,òOò .ò<$ö 6rYr)!rKrGrOrrúrir§rsr Úabstract_builderrÚabstract_projectrrMrr]rrBrr Ú exceptionsr r r!r Ú py_versionsr r rrr«r¬rr’rYrXÚres[ðó Û ÛÛ ÛÛ ÛÛÛå-Ý-ÝÝ+ß.ß1Ý'Ý/ßCð ÐØÐôW ˆo˜|õW rY