Ë }”Ãbå5ç$ãóò—ddlmZddlZddlZddlmZmZddlmZm Z m Z m Z m Z m Z mZddlmZmZmZddlmZmZddlmZmZddlmZerdd lmZdd lmZdd lm Z Gd „d «Z!Gd„dee eef«Z"y)é)Ú annotationsN)ÚABCÚabstractmethod)Ú TYPE_CHECKINGÚAnyÚCallableÚ GeneratorÚGenericÚIterableÚcast)Ú BuilderConfigÚBuilderConfigBoundÚenv_var_enabled)ÚEXCLUDED_DIRECTORIESÚ BuildEnvVars)Úget_relative_pathÚ safe_walk)ÚPluginManagerBound©Ú Application)ÚBuildHookInterface©ÚProjectMetadatacó—eZdZdZdd„Zy)Ú IncludedFile©ÚpathÚ relative_pathÚdistribution_pathcó.—||_||_||_y©Nr)Úselfrrrs úH/usr/lib/python3.12/site-packages/hatchling/builders/plugin/interface.pyÚ__init__zIncludedFile.__init__s€ØˆŒ Ø*ˆÔØ!2ˆÕóN)rÚstrrr&rr&ÚreturnÚNone)Ú__name__Ú __module__Ú __qualname__Ú __slots__r$©r%r#rrs „Ø>€Iô3r%rcó¼—eZdZdZdZ d d!d„Zdddddddœ d"d„Zd#d„Zd#d „Zd#d „Z d$d „Z d$d „Z e d%d „«Z e d&d„«Ze d'd„«Ze d(d„«Ze d)d„«Ze d)d„«Ze d)d„«Ze d*d„«Ze d)d„«Ze d)d„«Ze d%d„«Zd+d„Zed,d„«Zd-d„Zd)d„Zd.d„Zd/d„Zed0d„«Z e!d1d„«Z"y)2ÚBuilderInterfacea¦ Example usage: ```python tab="plugin.py" from hatchling.builders.plugin.interface import BuilderInterface class SpecialBuilder(BuilderInterface): PLUGIN_NAME = 'special' ... ``` ```python tab="hooks.py" from hatchling.plugin import hookimpl from .plugin import SpecialBuilder @hookimpl def hatch_register_builder(): return SpecialBuilder ``` ÚNcóä—||_tt|«|_||_||_||_ttd«|_d|_ d|_ d|_ d|_ d|_ d|_yr!)Ú_BuilderInterface__rootr rÚ!_BuilderInterface__plugin_managerÚ_BuilderInterface__raw_configÚ_BuilderInterface__metadataÚ_BuilderInterface__apprÚ_BuilderInterface__configÚ!_BuilderInterface__project_configÚ_BuilderInterface__hatch_configÚ_BuilderInterface__build_configÚ _BuilderInterface__build_targetsÚ _BuilderInterface__target_configÚ_BuilderInterface__project_id)r"ÚrootÚplugin_managerÚconfigÚmetadataÚapps r#r$zBuilderInterface.__init__8sr€ðˆŒ Ü $Ô%7¸Ó HˆÔØ"ˆÔØ"ˆŒØˆŒ ÜÔ/°Ó6ˆŒ Ø7;ˆÔØ59ˆÔØ59ˆÔØ15ˆÔØ6:ˆÔð)-ˆÕr%F)Ú directoryÚversionsÚ hooks_onlyÚcleanÚclean_hooks_afterÚ clean_onlyc #ó@K—|jj«|€ptjtj vr:|j jtj tj«n|j j}tjj|«st j|«|j«}|xs|j j}|r\t|«t|«z }|rCd|j›ddj!t#t$t'|«««›�} t)| «‚|€t+tj,«}|j/|«} t1| j3««} |rd}n|€t+tj4«}|r/|s|j7||«| D]} | j7|«Œ|ry|€t+tj8«}|D�]} |j:j=d|j›d| ›d�«|j?«}|jA|«tC| «|d<| D]} | jE| |«Œ|r-|j:j=d |j›d| ›d�«Œ§|j jG|«5|| |fi|¤Ž}ddd«| D]} | jI| |«Œ|r| D]} | j7| g«Œ–—�Œy#1swYŒFxYw­w) NzUnknown versions for target `z`: z, Tz Building `z ` version `Ú`Ú build_hookszOnly ran build hooks for `)%rAÚvalidate_fieldsrÚLOCATIONÚosÚenvironr@Únormalize_build_directoryrCrÚisdirÚmakedirsÚget_version_apirDÚsetÚ PLUGIN_NAMEÚjoinÚmapr&ÚsortedÚ ValueErrorrÚ HOOKS_ONLYÚget_build_hooksÚlistÚvaluesÚCLEANrFÚCLEAN_HOOKS_AFTERrBÚ display_debugÚget_default_build_dataÚset_build_data_defaultsÚtupleÚ initializeÚset_build_dataÚfinalize)r"rCrDrErFrGrHÚ version_apiÚunknown_versionsÚmessageÚconfigured_build_hooksrKÚ build_hookÚversionÚ build_dataÚartifacts r#ÚbuildzBuilderInterface.buildOsÔèø€ð � ‰ ×%Ñ%Ô'à Ð ô ×(Ñ(¬B¯J©JÑ6ð— ‘ ×5Ñ5´b·j±jÄ×AVÑAVÑ6WÔXà—[‘[×*Ñ*ð ô �w‰w�}‰}˜YÔ'Ü �K‰K˜ Ô "à×*Ñ*Ó,ˆ àÒ3˜tŸ{™{×3Ñ3ˆÙ Ü" 8›}¬s°;Ó/?Ñ?Ð Ùà3°D×4DÑ4DÐ3EÀSÈÏÉÔSVÔWZÔ\bÐcsÓ\tÓSuÓIvÐHwÐxðô! Ó)Ð)à Ð Ü(¬×)@Ñ)@ÓAˆJà!%×!5Ñ!5°iÓ!@ÐÜÐ1×8Ñ8Ó:Ó;ˆ á Ø‰EØ ˆ]Ü#¤L×$6Ñ$6Ó7ˆEÙ ÙØ— ‘ ˜9 hÔ/ã)� Ø× Ñ  Õ*ð*ñØà Ð $Ü /´ ×0NÑ0NÓ OÐ äˆGØ �H‰H× "Ñ " Z°×0@Ñ0@Ð/AÀÈWÈIÐUVÐ#WÔ Xà×4Ñ4Ó6ˆJØ × (Ñ (¨Ô 4ô).Ð.DÓ(EˆJ�}Ñ %ó*� Ø×%Ñ% g¨zÕ:ð*ñØ—‘×&Ñ&Ð)CÀD×DTÑDTÐCUÐU`ÐahÐ`iÐijÐ'kÔlØð—‘×+Ñ+¨JÕ7Ø/˜; wÑ/° ÑH¸ZÑH�÷8ó*� Ø×#Ñ# G¨Z¸ÕBð*ñ!Û"-�JØ×$Ñ$ g YÕ/ð#.ðŒNñ; ÷$8Ð7üs‚J>LË LË ALÌL ÌLc#ó¦K—|j«Ed{–—†|j|jj««Ed{–—†y7Œ67Œ­w)a{ Returns a consistently generated series of file objects for every file that should be distributed. Each file object has three `str` attributes: - `path` - the absolute path - `relative_path` - the path relative to the project root; will be an empty string for external files - `distribution_path` - the path to be distributed as N)Úrecurse_selected_project_filesÚrecurse_forced_filesr@Úget_force_include©r"s r#Úrecurse_included_filesz'BuilderInterface.recurse_included_files§sDèø€ð×6Ñ6Ó8×8Ð8Ø×,Ñ,¨T¯[©[×-JÑ-JÓ-LÓM×MÑMð 9øØMús!‚A–A —0AÁAÁAÁAc#óÌK—|jjr.|j|jj«Ed{–—†y|j«Ed{–—†y7Œ7Œ­wr!)r@Ú only_includeÚrecurse_explicit_filesÚrecurse_project_filesrts r#rqz/BuilderInterface.recurse_selected_project_files³sMèø€Ø �;‰;× #Ò #Ø×2Ñ2°4·;±;×3KÑ3KÓL× LÑ Là×1Ñ1Ó3× 3Ñ 3ð Møà 3ús#‚?A$ÁA ÁA$ÁA"ÁA$Á"A$c #óX‡‡K—t‰j«D�] \}}}t|‰j«Štˆˆfd„|D««|dd|j «d|v}|D]½}t j j‰|«}‰jj|«}‰jj|«rŒZ‰jj||¬«sŒxtt j j||«|‰jj|««–—Œ¿�Œy­w)Nc3ó\•K—|]#}‰jj|‰«rŒ |–—Œ%y­wr!)r@Údirectory_is_excluded)Ú.0Údrr"s €€r#Ú z9BuilderInterface.recurse_project_files..½s'øèø€Ðh© 1°D·K±K×4UÑ4UÐVWÐYfÕ4gœQ©ùsƒ!,¥,ú __init__.py)Ú is_package) rr>rrXÚsortrNrrVr@Úget_distribution_pathÚpath_is_reservedÚ include_pathr) r"r>ÚdirsÚfilesr�ÚfÚrelative_file_pathrrs ` @r#ryz&BuilderInterface.recurse_project_files¹sïùèø€Ü!*¨4¯9©9×!5Ñ ˆD�$˜Ü-¨d°D·I±IÓ>ˆMäÔh©ÓhÓhˆD‘ˆGà �J‰JŒLØ&¨%Ð/ˆJÛ�Ü%'§W¡W§\¡\°-ÀÓ%CÐ"Ø$(§K¡K×$EÑ$EÐFXÓ$YÐ!Ø—;‘;×/Ñ/Ð0AÔBØà—;‘;×+Ñ+Ð,>È:Ð+ÕVÜ&ÜŸ™Ÿ ™  T¨1Ó-Ð/AÀ4Ç;Á;×CdÑCdÐewÓCxóóòñ"6ùs „CD*ÃA D*c #óhK—|j«D�]š\}}|j|j« }tjj |«rUt ||rdn)tjj||j«|jj|««–—Œ—tjj|«r×t|«D]Ç\}}}t||«}td„|D««|dd|j«|D]‹} tjj||| «} |jj| «} |jj!| «rŒ[t tjj|| «|rdn| | «–—Œ�ŒÉ�Œ�d|›�} t#| «‚y­w)Nr0c3ó2K—|]}|tvsŒ |–—Œy­wr!©r©r}r~s r#rz8BuilderInterface.recurse_forced_files..Ùóèø€Ð$V±¨1¸ÔAUÒ8U¤Q±ùó‚ �zForced include not found: )ÚitemsÚ startswithr>rNrÚisfilerÚrelpathr@rƒrQrrrXr‚rVr„ÚFileNotFoundError) r"Ú inclusion_mapÚsourceÚ target_pathÚexternalr>r†r‡Úrelative_directoryrˆr‰rÚmsgs r#rrz%BuilderInterface.recurse_forced_filesÌsbèø€Ø#0×#6Ñ#6×#8Ñ ˆF�KØ!×,Ñ,¨T¯Y©YÓ7Ð7ˆHÜ�w‰w�~‰~˜fÔ%Ü"ØÙ"‘B¬¯©¯©¸ÀÇ Á Ó(JØ—K‘K×5Ñ5°kÓBóóô —‘—‘˜vÔ&Ü)2°6Ö):Ñ%�D˜$ Ü):¸4ÀÓ)HÐ&ä$Ñ$V±Ó$VÓV�D™�Gà—J‘J”LÛ"˜Ü-/¯W©W¯\©\¸+ÐGYÐ[\Ó-]Ð*Ø,0¯K©K×,MÑ,MÐN`Ó,aÐ)Ø#Ÿ{™{×;Ñ;Ð.ørŽr�r€T)Úexplicitr�)r�r‘r>rNrr’r@rƒr„rr“rQrrrXr‚rVr…) r"r•r–r—r˜rr>r†r‡r™r�rˆr‰s r#rxz'BuilderInterface.recurse_explicit_filesés™èø€Ø#0×#6Ñ#6×#8Ñ ˆF�KØ!×,Ñ,¨T¯Y©YÓ7Ð7ˆHÜ�w‰w�~‰~˜fÔ%Ø$(§K¡K×$EÑ$EÀkÓ$RÐ!Ø—{‘{×3Ñ3Ð4EÕFÜ&ØÙ&™¬B¯G©G¯O©O¸FÀDÇIÁIÓ,NØŸ ™ ×9Ñ9¸+ÓFóóô —‘—‘˜vÕ&Ü)2°6Ö):Ñ%�D˜$ Ü):¸4ÀÓ)HÐ&ä$Ñ$V±Ó$VÓV�D™�Gà—J‘J”LØ!.°%Ð!7�JÛ"˜Ü-/¯W©W¯\©\¸+ÐGYÐ[\Ó-]Ð*Ø,0¯K©K×,MÑ,MÐN`Ó,aÐ)ØŸ;™;×7Ñ7Ð8IÔJØ$àŸ;™;×3Ñ3Ð4FÐQUÐblÐ3ÕmÜ".Ü "§¡§ ¡ ¨T°1Ó 5¹X±rÐK]Ð_pó#óñ#ò*;ñ$9ùs‚B G= A4G=ÄCG=Ç9G=có—|jS)z/ The root of the project tree. )r2rts r#r>zBuilderInterface.roots€ð �{‰{Ðr%cóV—|j€ddlm}|«|_|jS)Nr)Ú PluginManager)r3Úhatchling.plugin.managerr )r"r s r#r?zBuilderInterface.plugin_managers'€à × Ñ Ð (Ý >á$1£OˆDÔ !à×$Ñ$Ð$r%có˜—|j€3ddlm}||j|j|j «|_|jS)Nrr)r5Úhatchling.metadata.corerr>r?r4)r"rs r#rAzBuilderInterface.metadatas9€à �?‰?Ð "Ý ?á-¨d¯i©i¸×9LÑ9LÈd×N_ÑN_Ó`ˆDŒOà�‰Ðr%có†—|j€*ddlm}t||«j ««|_|jS)za An instance of [Application](../utilities.md#hatchling.bridge.app.Application). rr)r6Úhatchling.bridge.apprr Úget_safe_application)r"rs r#rBzBuilderInterface.app s4€ð �:‰:Ð Ý 8ä˜k©;«=×+MÑ+MÓ+OÓPˆDŒJà�z‰zÐr%cóh—|j€|jj|_|jSr!)r4rAr@rts r#Ú raw_configzBuilderInterface.raw_config,s,€à × Ñ Ð $Ø $§ ¡ × 4Ñ 4ˆDÔ à× Ñ Ð r%có|—|j€%|jjj|_|jSr!)r8rAÚcorer@rts r#Úproject_configzBuilderInterface.project_config3s2€à × Ñ Ð (Ø$(§M¡M×$6Ñ$6×$=Ñ$=ˆDÔ !à×$Ñ$Ð$r%có|—|j€%|jjj|_|jSr!)r9rAÚhatchr@rts r#Ú hatch_configzBuilderInterface.hatch_config:s2€à × Ñ Ð &Ø"&§-¡-×"5Ñ"5×"<Ñ"<ˆDÔ à×"Ñ"Ð"r%cóÀ—|j€G|j«||j|j|j|j «|_|jS)zj An instance of [BuilderConfig](../utilities.md#hatchling.builders.config.BuilderConfig). )r7Úget_config_classr>rUÚ build_configÚ target_configrts r#r@zBuilderInterface.configAsR€ð �=‰=Ð Ø3˜D×1Ñ1Ó3Ø�d—i‘i ×!1Ñ!1°4×3DÑ3DÀd×FXÑFXóˆDŒMð�}‰}Ðr%có|—|j€%|jjj|_|jS)zO ```toml config-example [tool.hatch.build] ``` )r:rAr­r±rts r#r±zBuilderInterface.build_configMs4€ð × Ñ Ð &Ø"&§-¡-×"5Ñ"5×"BÑ"BˆDÔ à×"Ñ"Ð"r%có —|j€l|jjjj |j i«}t |t«sd|j ›d�}t|«‚||_|jS)ze ```toml config-example [tool.hatch.build.targets.] ``` z Field `tool.hatch.build.targets.z` must be a table) r<rAr­Ú build_targetsÚgetrUÚ isinstanceÚdictÚ TypeError)r"r²ris r#r²zBuilderInterface.target_configYsy€ð × Ñ Ð 'Ø,0¯M©M×,?Ñ,?×,MÑ,M×,QÑ,QÐRV×RbÑRbÐdfÓ,gˆMܘm¬TÔ2Ø<¸T×=MÑ=MÐrArUrB)r"rCrjÚ hook_namer@rkrÀris r#r[z BuilderInterface.get_build_hooksqs§€Ø!#ÐØ!%§¡×!8Ñ!8×!>Ñ!>Ö!@Ñ ˆI�vØ×,Ñ,×7Ñ7×;Ñ;¸IÓFˆJØÐ!ÝJà0°° Ð<�Ù(¨Ó1Ð1á0:Ø— ‘ ˜6 4§;¡;°· ± ¸yÈ$×JZÑJZÐ\`×\dÑ\dó1Ð " 9Ò -ð"Að&Ð%r%có—y)a3 A mapping of `str` versions to a callable that is used for building. Each callable must have the following signature: ```python def ...(build_dir: str, build_data: dict) -> str: ``` The return value must be the absolute path to the built artifact. Nr-rts r#rSz BuilderInterface.get_version_api�ó�r%có4—t|j««S)zh A list of versions to build when users do not specify any, defaulting to all versions. )r\rSrts r#Úget_default_versionsz%BuilderInterface.get_default_versionsŽs€ô�D×(Ñ(Ó*Ó+Ð+r%có—iS)z‚ A mapping that can be modified by [build hooks](../build-hook/reference.md) to influence the behavior of builds. r-rts r#raz'BuilderInterface.get_default_build_data”s €ðˆ r%cóL—|jdg«|jdi«y)NÚ artifactsÚ force_include)Ú setdefault)r"rms r#rbz(BuilderInterface.set_build_data_defaultsšs"€Ø×јk¨2Ô.Ø×јo¨rÕ2r%có—y)z’ Called before builds if the `-c`/`--clean` flag was passed to the [`build`](../../cli/reference.md#hatch-build) command. Nr-)r"rCrDs r#rFzBuilderInterface.cleanžrÅr%có—tS)zu Must return a subclass of [BuilderConfig](../utilities.md#hatchling.builders.config.BuilderConfig). )r )Úclss r#r°z!BuilderInterface.get_config_class¤s €ô Ðr%cóP—tjdd|tj¬«S)zH https://peps.python.org/pep-0427/#escaping-and-unicode z [^\w\d.]+Ú_)Úflags)ÚreÚsubÚUNICODE)Ú file_names r#r¼z.BuilderInterface.normalize_file_name_component«s€ô �v‰v�l C¨¼"¿*¹*ÔEÐEr%)NNNN) r>r&r?zPluginManagerBound | Noner@zdict[str, Any] | NonerAzProjectMetadata | NonerBzApplication | Noner'r()rCz str | NonerDzlist[str] | NonerEú bool | NonerFr×rGr×rHr×r'zGenerator[str, None, None])r'úIterable[IncludedFile])r•zdict[str, str]r'rØ)r'r&)r'r)r'r)r'r)r'údict[str, Any])r'r)rCr&r'zdict[str, BuildHookInterface])r'zdict[str, Callable])r'ú list[str])rmrÙr'r()rCr&rDrÚr'r()r'ztype[BuilderConfig])rÖr&r'r&)#r)r*r+Ú__doc__rUr$rorurqryrrrxÚpropertyr>r?rArBr¨r«r®r@r±r²r¾r[rrSrÇrarbrFÚ classmethodr°Ú staticmethodr¼r-r%r#r/r/s„ñð0€KØ&ð 59Ø(,Ø+/Ø"&ð -àð-ð2ð-ð&ð -ð )ð -ð  ð -ð ó-ð4!%Ø%)Ø"&Ø!Ø)-Ø"'ñVððVð#ð Vð  ð Vð ð Vð'ðVð ðVð $óVóp Nó4ó ó&-ó:ð<òóðð ò%óð%ðòóððò óð ðò!óð!ð ò%óð%ð ò#óð#ð ò óð ðò #óð #ðò$óð$ð ò!óð!ó &ð ò  óð  ó,ó ó 3ó ð òóðð òFóñFr%r/)#Ú __future__rrNrÓÚabcrrÚtypingrrrr r r r Úhatchling.builders.configr rrÚhatchling.builders.constantsrrÚhatchling.builders.utilsrrr¡rr¥rÚ)hatchling.builders.hooks.plugin.interfacerr£rrr/r-r%r#Úræs]ðÝ"ã Û ß#ßS×SÑSçXÑXßKßAÝ7áÝ0ÝLÝ7÷3ñ3ôTF�s˜GÐ$6Ð8JÐ$JÑKõTFr%