+
    WBiY?                       ^ RI Ht ^ RIt^ RIt^ RIHtHt ^ RIHtH	t	H
t
Ht ^ RIHtHtHt ^ RIHtHtHt ^ RIHtHt ^ RIHt ]'       d   ^ R	IHtHtHt ^ R
IHt ^ RIH t  ^ RI!H"t"  ! R R4      t# ! R R]]
]]3,          4      t$R# )    )annotationsN)ABCabstractmethod)TYPE_CHECKINGAnyGenericcast)BuilderConfigBuilderConfigBoundenv_var_enabled)EXCLUDED_DIRECTORIESEXCLUDED_FILESBuildEnvVars)get_relative_path	safe_walk)PluginManagerBound)Callable	GeneratorIterableApplication)BuildHookInterfaceProjectMetadatac                  &    ] tR t^tRtR R ltRtR# )IncludedFilec               (    V ^8  d   QhRRRRRRRR/# )   pathstrrelative_pathdistribution_pathreturnNone )formats   "H/usr/lib/python3.14/site-packages/hatchling/builders/plugin/interface.py__annotate__IncludedFile.__annotate__   s)     3 3S 3 3 3QU 3    c                	*    Wn         W n        W0n        R # N)r   r!   r"   )selfr   r!   r"   s   &&&&r'   __init__IncludedFile.__init__   s    	*!2r*   )r"   r   r!   N)__name__
__module____qualname____firstlineno__	__slots__r.   __static_attributes__r%   r*   r'   r   r      s    >I3 3r*   r   c                     ] tR t^tRtRt R@R R lltRRRRRRR	RR
RRR/R R lltR R ltR R lt	R R lt
R R ltR R lt]R R l4       t]R R l4       t]R R l4       t]R R  l4       t]R! R" l4       t]R# R$ l4       t]R% R& l4       t]R' R( l4       t]R) R* l4       t]R+ R, l4       t]R- R. l4       tR/ R0 lt]R1 R2 l4       tR3 R4 ltR5 R6 ltR7 R8 ltR9 R: lt] R; R< l4       t!]"R= R> l4       t#R?t$R# )ABuilderInterfaceaj  
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               0    V ^8  d   QhRRRRRRRRR	R
RR/# )r   rootr    plugin_managerzPluginManagerBound | Noneconfigzdict[str, Any] | NonemetadatazProjectMetadata | NoneappzApplication | Noner#   r$   r%   )r&   s   "r'   r(   BuilderInterface.__annotate__:   sF     - -- 2- &	-
 )-  - 
-r*   c                	    Wn         \        \        V4      V n        W0n        W@n        WPn        \        \        R 4      V n        R V n	        R V n
        R V n        R V n        R V n        R V n        R # r,   )_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-   r:   r;   r<   r=   r>   s   &&&&&&r'   r.   BuilderInterface.__init__:   sj      $%7 H""
/67;5959156: )-r*   	directoryversions
hooks_onlycleanclean_hooks_after
clean_onlyFc               4    V ^8  d   QhRRRRRRRRRRR	RR
R/# )r   rN   z
str | NonerO   zlist[str] | NonerP   zbool | NonerQ   rR   rS   r#   zGenerator[str, None, None]r%   )r&   s   "r'   r(   r?   Q   s[     V V V #	V
  V V 'V  V 
$Vr*   c             #  	  "   V P                   P                  4        Vfx   \        P                  \        P
                  9   d?   V P                  P                  \        P
                  \        P                  ,          4      MV P                  P                  p\        P                  P                  V4      '       g   \        P                  ! V4       V P                  4       pT;'       g    V P                  P                  pV'       dg   \        V4      \        V4      ,
          pV'       dD   RV P                   RRP!                  \#        \$        \'        V4      4      4       2p	\)        V	4      hVf   \+        \        P,                  4      pV P/                  V4      p
\1        V
P3                  4       4      pV'       d   RpMVf   \+        \        P4                  4      pV'       d>   V'       g   V P7                  W4       V F  pVP7                  V4       K  	  V'       d   R # Vf   \+        \        P8                  4      pV EF,  pV P:                  P=                  RV P                   RV R24       V P?                  4       pV PA                  V4       \C        V
4      VR&   V F  pVPE                  W4       K  	  V'       d/   V P:                  P=                  R	V P                   RV R24       K  V P                  PG                  V4      ;_uu_ 4        W},          ! V3/ VB pR R R 4       V F  pVPI                  WX4       K  	  V'       d   V F  pVP7                  V.4       K  	  Xx  EK/  	  R #   + '       g   i     LY; i5i)
NzUnknown versions for target `z`: z, Tz
Building `z` version ``build_hookszOnly ran build hooks for `)%r=   validate_fieldsr   LOCATIONosenvironr<   normalize_build_directoryrN   r   isdirmakedirsget_version_apirO   setPLUGIN_NAMEjoinmapr    sorted
ValueErrorr   
HOOKS_ONLYget_build_hookslistvaluesCLEANrQ   CLEAN_HOOKS_AFTERr>   display_debugget_default_build_dataset_build_data_defaultstuple
initializeset_build_datafinalize)r-   rN   rO   rP   rQ   rR   rS   version_apiunknown_versionsmessageconfigured_build_hooksrW   
build_hookversion
build_dataartifacts   &$$$$$$         r'   buildBuilderInterface.buildQ   s     	%%'  ((BJJ6 55bjjAVAV6WX[[**  ww}}Y''KK	"**,33t{{33"8}s;/??3D4D4D3ESSVWZ\bcs\tSuIvHwx  !))()@)@AJ!%!5!5i!@188:;E]#L$6$67E

9/)
  * * $ /0N0N OGHH""Z0@0@/AWIUV#WX446J((4 )..D(EJ}% *
%%g: * &&)CDDTDTCUU`ah`iij'kl ++J77&/	HZH 8 *
##GB * !"-J$$gY/ #. N;  $ 87sQ   B:N
=.N
,N
CN
(N
02N
#B!N
AN
M7&*N
&N
7NN
c                   V ^8  d   QhRR/# r   r#   Iterable[IncludedFile]r%   )r&   s   "r'   r(   r?      s     
N 
N(> 
Nr*   c              #     "   V P                  4        Rj  xL
  V P                  V P                  P                  4       4       Rj  xL
  R#  L7 L5i)aK  
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_files'BuilderInterface.recurse_included_files   sB      66888,,T[[-J-J-LMMM 	9Ms!   AA0AAAAc                   V ^8  d   QhRR/# r~   r%   )r&   s   "r'   r(   r?      s     4 40F 4r*   c              #  	   "   V P                   P                  '       d0   V P                  V P                   P                  4       R j  xL
  R # V P                  4        R j  xL
  R #  L  L5ir,   )r<   only_includerecurse_explicit_filesrecurse_project_filesr   s   &r'   r   /BuilderInterface.recurse_selected_project_files   sN     ;;###224;;3K3KLLL11333 M3s$   AA,A(A,!A*"A,*A,c                   V ^8  d   QhRR/# r~   r%   )r&   s   "r'   r(   r?      s      '= r*   c           	   #  	  a a"   \        S P                  4       EF(  w  rp\        VS P                  4      o\        VV 3R  lV 4       4      VR&   VP	                  4        RV9   pV F  pV\
        9   d   K  \        P                  P                  SV4      pS P                  P                  V4      pS P                  P                  V4      '       d   Kn  S P                  P                  WdR7      '       g   K  \        \        P                  P                  W4      VS P                  P                  V4      4      x  K  	  EK+  	  R# 5i)c              3  p   <"   T F+  pSP                   P                  VS4      '       d   K'  Vx  K-  	  R # 5ir,   )r<   directory_is_excluded).0dr!   r-   s   & r'   	<genexpr>9BuilderInterface.recurse_project_files.<locals>.<genexpr>   s(     h1DKK4U4UVWYf4gQQs   $6
6NNN__init__.py)
is_packageN)r   r:   r   rd   sortr   rZ   r   rb   r<   get_distribution_pathpath_is_reservedinclude_pathr   )	r-   r:   dirsfilesr   frelative_file_pathr"   r!   s	   f       @r'   r   &BuilderInterface.recurse_project_files   s     !*499!5D-dDII>MhhhDGJJL&%/J&%'WW\\-%C"$(KK$E$EFX$Y!;;//0ABB;;++,>+VV&T-/A4;;CdCdewCx   "6s   CE	!E	9AE	c                    V ^8  d   QhRRRR/# r   inclusion_mapzdict[str, str]r#   r   r%   )r&   s   "r'   r(   r?      s     - -. -E[ -r*   c           	   #  	  "   VP                  4        EF  w  r#VP                  V P                  4      '       * p\        P                  P                  V4      '       d\   \        TV'       d   R M(\        P                  P                  W P                  4      V P                  P                  V4      4      x  K  \        P                  P                  V4      '       d   \        V4       F  w  rVp\        WR4      p\        R V 4       4      VR&   VP                  4        V F  p	V	\        9   d   K  \        P                  P!                  W8V	4      p
V P                  P                  V
4      pV P                  P#                  V4      '       d   Kn  \        \        P                  P!                  WY4      V'       d   R MT
V4      x  K  	  K  	  EK  RV 2p\%        V4      h	  R# 5i)r8   c              3  >   "   T F  q\         9  g   K  Vx  K  	  R # 5ir,   r   r   r   s   & r'   r   8BuilderInterface.recurse_forced_files.<locals>.<genexpr>        $V1AU8UQQ   
r   zForced include not found: N)items
startswithr:   rZ   r   isfiler   relpathr<   r   r]   r   r   rd   r   r   rb   r   FileNotFoundError)r-   r   sourcetarget_pathexternalr:   r   r   relative_directoryr   r   r"   msgs   &&           r'   r   %BuilderInterface.recurse_forced_files   sh    #0#6#6#8F!,,TYY77Hww~~f%%""B		(JKK55kB 
 v&&)26):%D):4)H&$$V$VVDGJJL".$-/WW\\+[\-]*,0KK,M,MN`,a)#{{;;<MNN". "T 5&.4F 1#  # *;& 36(;',,; $9s   CG$B,G$AG$c                    V ^8  d   QhRRRR/# r   r%   )r&   s   "r'   r(   r?      s      N G] r*   c           	   #  	  "   VP                  4        EF(  w  r#VP                  V P                  4      '       * p\        P                  P                  V4      '       d   V P                  P                  V4      pV P                  P                  V4      '       g\   \        TV'       d   R M(\        P                  P                  W P                  4      V P                  P                  V4      4      x  K  K  \        P                  P                  V4      '       g   EK  \        V4       EF  w  rgp\        Wb4      p	\        R V 4       4      VR&   VP                  4        RV9   p
V F  pV\         9   d   K  \        P                  P#                  W9V4      pV P                  P                  V4      pV P                  P                  V4      '       d   Kn  V P                  P%                  VRV
R7      '       g   K  \        \        P                  P#                  Wk4      V'       d   R MTV4      x  K  	  EK  	  EK+  	  R# 5i)r8   c              3  >   "   T F  q\         9  g   K  Vx  K  	  R # 5ir,   r   r   s   & r'   r   :BuilderInterface.recurse_explicit_files.<locals>.<genexpr>   r   r   r   r   T)explicitr   N)r   r   r:   rZ   r   r   r<   r   r   r   r   r]   r   r   rd   r   r   rb   r   )r-   r   r   r   r   r"   r:   r   r   r   r   r   r   s   &&           r'   r   'BuilderInterface.recurse_explicit_files   s    #0#6#6#8F!,,TYY77Hww~~f%%$(KK$E$Ek$R!{{334EFF&&BGGOOFII,N99+F  G v&&)26):%D):4)H&$$V$VVDGJJL!.%!7J".$-/WW\\+[\-]*,0KK,M,MN`,a);;778IJJ$;;334FQUbl3mm". "T 5XrK]_p#  # *; $9s   BIA?ICI<AIc                   V ^8  d   QhRR/# r   r#   r    r%   )r&   s   "r'   r(   r?     s      c r*   c                    V P                   # )z
The root of the project tree.
)rA   r   s   &r'   r:   BuilderInterface.root  s    
 {{r*   c                   V ^8  d   QhRR/# )r   r#   r   r%   )r&   s   "r'   r(   r?     s     % % 2 %r*   c                	Z    V P                   f   ^ RIHp V! 4       V n         V P                   # )N)PluginManager)rB   hatchling.plugin.managerr   )r-   r   s   & r'   r;   BuilderInterface.plugin_manager  s'      (>$1OD!$$$r*   c                   V ^8  d   QhRR/# )r   r#   r   r%   )r&   s   "r'   r(   r?   #  s      / r*   c                	    V P                   f4   ^ RIHp V! V P                  V P                  V P
                  4      V n         V P                   # )Nr   )rD   hatchling.metadata.corer   r:   r;   rC   )r-   r   s   & r'   r=   BuilderInterface.metadata"  s9    ??"?-dii9L9LdN_N_`DOr*   c                   V ^8  d   QhRR/# )r   r#   r   r%   )r&   s   "r'   r(   r?   ,  s     	 	[ 	r*   c                    V P                   f*   ^ RIHp \        W! 4       P	                  4       4      V n         V P                   # )zQ
An instance of [Application](../utilities.md#hatchling.bridge.app.Application).
r   )rE   hatchling.bridge.appr   r	   get_safe_application)r-   r   s   & r'   r>   BuilderInterface.app+  s4    
 ::8k;=+M+M+OPDJzzr*   c                   V ^8  d   QhRR/# r   r#   dict[str, Any]r%   )r&   s   "r'   r(   r?   8  s     ! !N !r*   c                	l    V P                   f   V P                  P                  V n         V P                   # r,   )rC   r=   r<   r   s   &r'   
raw_configBuilderInterface.raw_config7  s,    $ $ 4 4D   r*   c                   V ^8  d   QhRR/# r   r%   )r&   s   "r'   r(   r?   ?  s     % % %r*   c                	    V P                   f&   V P                  P                  P                  V n         V P                   # r,   )rG   r=   corer<   r   s   &r'   project_configBuilderInterface.project_config>  s2      ($(MM$6$6$=$=D!$$$r*   c                   V ^8  d   QhRR/# r   r%   )r&   s   "r'   r(   r?   F  s     # #n #r*   c                	    V P                   f&   V P                  P                  P                  V n         V P                   # r,   )rH   r=   hatchr<   r   s   &r'   hatch_configBuilderInterface.hatch_configE  s2    &"&--"5"5"<"<D"""r*   c                   V ^8  d   QhRR/# )r   r#   r   r%   )r&   s   "r'   r(   r?   M  s     	 	* 	r*   c                    V P                   fG   V P                  4       ! W P                  V P                  V P                  V P
                  4      V n         V P                   # )zZ
An instance of [BuilderConfig](../utilities.md#hatchling.builders.config.BuilderConfig).
)rF   get_config_classr:   ra   build_configtarget_configr   s   &r'   r<   BuilderInterface.configL  sN    
 ==  113ii!1!143D3DdFXFXDM }}r*   c                   V ^8  d   QhRR/# r   r%   )r&   s   "r'   r(   r?   Y  s     	# 	#n 	#r*   c                    V P                   f&   V P                  P                  P                  V n         V P                   # )z/
```toml config-example
[tool.hatch.build]
```
)rI   r=   r   r   r   s   &r'   r   BuilderInterface.build_configX  s4     &"&--"5"5"B"BD"""r*   c                   V ^8  d   QhRR/# r   r%   )r&   s   "r'   r(   r?   e  s     $ $~ $r*   c                   V P                   fr   V P                  P                  P                  P	                  V P
                  / 4      p\        V\        4      '       g   RV P
                   R2p\        V4      hWn         V P                   # )zE
```toml config-example
[tool.hatch.build.targets.<PLUGIN_NAME>]
```
z Field `tool.hatch.build.targets.z` must be a table)	rK   r=   r   build_targetsgetra   
isinstancedict	TypeError)r-   r   ru   s   &  r'   r   BuilderInterface.target_configd  sz     ',0MM,?,?,M,M,Q,QRVRbRbdf,gMmT22<T=M=M<NN_`((#0 ###r*   c                   V ^8  d   QhRR/# r   r%   )r&   s   "r'   r(   r?   v  s     ! !C !r*   c                	    V P                   fN   V P                  V P                  P                  P                  4       RV P                  P
                   2V n         V P                   # )N-)rL   normalize_file_name_componentr=   r   namerx   r   s   &r'   
project_idBuilderInterface.project_idu  sX    $#'#E#EdmmFXFXF]F]#^"__`aeananavav`w xD   r*   c                    V ^8  d   QhRRRR/# )r   rN   r    r#   zdict[str, BuildHookInterface]r%   )r&   s   "r'   r(   r?   |  s     & & &1N &r*   c           
     	\   / pV P                   P                  P                  4        F  w  r4V P                  P                  P                  V4      pVf   ^ RIHp RV 2pV! V4      hV! V P                  W@P                   V P                  WP                  V P                  4      W#&   K  	  V# )N)UnknownPluginErrorzUnknown build hook: )r<   hook_configr   r;   rw   r   hatchling.plugin.exceptionsr   r:   r=   ra   r>   )r-   rN   rv   	hook_namer<   rw   r   ru   s   &&      r'   rg    BuilderInterface.get_build_hooks|  s    !#!%!8!8!>!>!@I,,77;;IFJ!J0<(110:		6;;yJZJZ\`\d\d1"- "A &%r*   c                   V ^8  d   QhRR/# )r   r#   zdict[str, Callable]r%   )r&   s   "r'   r(   r?     s     
 
!4 
r*   c                    R# )z
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%   r   s   &r'   r_    BuilderInterface.get_version_api      r*   c                   V ^8  d   QhRR/# )r   r#   	list[str]r%   )r&   s   "r'   r(   r?     s     , ,i ,r*   c                4    \        V P                  4       4      # )zX
A list of versions to build when users do not specify any, defaulting to all versions.
)rh   r_   r   s   &r'   get_default_versions%BuilderInterface.get_default_versions  s     D((*++r*   c                   V ^8  d   QhRR/# r   r%   )r&   s   "r'   r(   r?     s       r*   c                    / # )zr
A mapping that can be modified by [build hooks](../build-hook/reference.md) to influence the behavior of builds.
r%   r   s   &r'   rm   'BuilderInterface.get_default_build_data  s	     	r*   c                    V ^8  d   QhRRRR/# )r   ry   r   r#   r$   r%   )r&   s   "r'   r(   r?     s     3 3. 3T 3r*   c                	N    VP                  R . 4       VP                  R/ 4       R# )	artifactsforce_includeN)
setdefault)r-   ry   s   &&r'   rn   (BuilderInterface.set_build_data_defaults  s"    k2.or2r*   c               $    V ^8  d   QhRRRRRR/# )r   rN   r    rO   r  r#   r$   r%   )r&   s   "r'   r(   r?     s!      s i D r*   c                    R# )zz
Called before builds if the `-c`/`--clean` flag was passed to the
[`build`](../../cli/reference.md#hatch-build) command.
Nr%   )r-   rN   rO   s   &&&r'   rQ   BuilderInterface.clean  r   r*   c                   V ^8  d   QhRR/# )r   r#   ztype[BuilderConfig]r%   )r&   s   "r'   r(   r?     s      !4 r*   c                    \         # )ze
Must return a subclass of [BuilderConfig](../utilities.md#hatchling.builders.config.BuilderConfig).
)r
   )clss   &r'   r   !BuilderInterface.get_config_class  s
    
 r*   c                    V ^8  d   QhRRRR/# )r   	file_namer    r#   r%   )r&   s   "r'   r(   r?     s     F F F Fr*   c                R    \         P                  ! RRV \         P                  R7      # )z8
https://peps.python.org/pep-0427/#escaping-and-unicode
z	[^\w\d.]+_)flags)resubUNICODE)r  s   &r'   r   .BuilderInterface.normalize_file_name_component  s    
 vvlC"**EEr*   )__app__build_config__build_targets__config__hatch_config
__metadata__plugin_manager__project_config__project_id__raw_config__root__target_config)NNNN)%r0   r1   r2   r3   __doc__ra   r.   r{   r   r   r   r   r   propertyr:   r;   r=   r>   r   r   r   r<   r   r   r   rg   r   r_   r  rm   rn   rQ   classmethodr   staticmethodr   r5   r%   r*   r'   r7   r7      s   0 K&-.V !%V &*	V
 #'V "V *.V #(Vp
N4,-@B   % %   	 	 ! ! % % # # 	 	 	# 	# $ $  ! !&  
 
,3   F Fr*   r7   )%
__future__r   rZ   r  abcr   r   typingr   r   r   r	   hatchling.builders.configr
   r   r   hatchling.builders.constantsr   r   r   hatchling.builders.utilsr   r   r   r   collections.abcr   r   r   r   r   )hatchling.builders.hooks.plugin.interfacer   r   r   r   r7   r%   r*   r'   <module>r7     sc    " 	 	 # 4 4 X X [ [ A 7==0L73 3]FsG$68J$JK ]Fr*   