+
    2j18                       ^ RI Ht RR]P                   R2]P                   R2]P                   R2RRR	R
RR.t^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIHt ^ RIt^RIHtHt ^RIHt ^RIHtHtHtHt ^RIHtHt Rt]'       d5   ^ RIHtHtH t  ]	PB                  R)8  d   ^ RI"H#t# M^ RIH#t# ^RI$H%t%H&t&H't'H(t( RRRR./t)R R lt*R R lt+R R  lt,R! R" lt-R# R$ lt.R% R& lt/ ! R' R(4      t0R# )*    )annotations
contextlibdifflibz._compatz._exceptionsz._utilospyproject_hooks
subprocesssyswarningszipfileN)Any)_ctxenv)tomllib)BuildBackendExceptionBuildExceptionBuildSystemTableValidationErrorTypoWarning)check_dependencyparse_wheel_filenameF)IteratorMappingSequence)Self)ConfigSettingsDistributionStrPathSubprocessRunnerbuild-backendz setuptools.build_meta:__legacy__requireszsetuptools >= 40.8.0c               $    V ^8  d   QhRRRRRR/# )   
dictionaryzMapping[str, str]expectedstrreturnNone )formats   "Y/home/user/billing-ledger-validation/.venv/lib/python3.14/site-packages/build/_builder.py__annotate__r*   >   s"      ,       c                    V  FS  p\         P                  ! R W4      P                  4       R8  g   K/  \        P                  ! RV RV R2\
        ^R7       KU  	  R # )Ng?zFound 'z#' in pyproject.toml, did you mean 'z'?)
stacklevel)r   SequenceMatcherratior
   warnr   )r"   r#   objs   && r)   
_find_typor2   >   sO    ""47==?3FMM#A(2N r+   c                    V ^8  d   QhRRRR/# )r!   
source_dirr   r%   r&   r'   )r(   s   "r)   r*   r*   H   s     " "7 "t "r+   c                   \         P                  P                  V 4      '       g   R V  R2p\        V4      h\         P                  P	                  V R4      p\         P                  P	                  V R4      p\         P                  P                  V4      '       g9   \         P                  P                  V4      '       g   R V  R2p\        V4      hR# R# )zSource z is not a directorypyproject.tomlzsetup.pyzF does not appear to be a Python project: no pyproject.toml or setup.pyN)r   pathisdirr   joinexists)r4   msgpyproject_tomlsetup_pys   &   r)   _validate_source_directoryr>   H   s    77==$$
|#67S!!WW\\*.>?Nww||J
3H77>>.))"''..2J2J
|#ijS!! 3K)r+   c                    V ^8  d   QhRRRR/# )r!   r7   r   r%   Mapping[str, Any]r'   )r(   s   "r)   r*   r*   S   s     , ,w ,+< ,r+   c                    \        V R 4      ;_uu_ 4       p\        P                  ! VP                  4       P	                  4       4      uuRRR4       #   + '       g   i     R# ; i  \
         d    / u # \         d.   pTP                   RTP                   R2p\        T4      RhRp?i\        P                   d   pRT  RT R2p\        T4      RhRp?ii ; i)rbNz: 'z' zFailed to parse z:  )openr   loadsreaddecodeFileNotFoundErrorPermissionErrorstrerrorfilenamer   TOMLDecodeError)r7   fer;   s   &   r)   _read_pyproject_tomlrO   S   s    
,$==!23  	 ,C

|2.S!t+"" , b1-S!t+,sR   A' 2A
A' A$	A' $A' 'C6C?C (B((C?C CCc                    V ^8  d   QhRRRR/# )r!   r<   r@   r%   r'   )r(   s   "r)   r*   r*   a   s     , ,.? ,DU ,r+   c                   R V 9  d   \        V R 4       \        # \        V R ,          4      pRV9  d   \        VR4       Rp\        V4      h\	        VR,          \
        4      '       dI   \        ;QJ d#    R VR,           4       F  '       d   K   RM	  RM! R VR,           4       4      '       g   Rp\        V4      hT; d#    ^8  d   R ;e   w  \        Rc ;e   w      MF    d"    ^8  d   R ;e   w     R	p\        V4      h    \        VR4       \        R,          VR&   T; d`    ^8  dY   R ;eQ   w  ;\
        Rc ;eB   w   p  \        ;QJ d    R
 V 4       F  '       d   K   RM	  RM! R
 V 4       4      '       d    M*     d"    ^8  d   R ;e   w     Rp\        V4      h   VP                  4       0 Rm,
          pV'       d    RRP                  V4       2p\        V4      hV# )zbuild-systemr   z!`requires` is a required propertyc              3  B   "   T F  p\        V\        4      x  K  	  R # 5iN
isinstancer$   .0is   & r)   	<genexpr>,_parse_build_system_table.<locals>.<genexpr>o   s      G$Bq
1c$B   FTz&`requires` must be an array of stringsr   r'   z `build-backend` must be a stringc              3  B   "   T F  p\        V\        4      x  K  	  R # 5irS   rT   rV   s   & r)   rY   rZ      s     <fYeTUZ3=O=OYer[   z*`backend-path` must be an array of stringszUnknown properties: z, )r   )backend-path>   r   r]   r   )
r2   _DEFAULT_BACKENDdictr   rU   listallr$   keysr9   )r<   build_system_tabler;   backend_pathunknown_propss   &    r)   _parse_build_system_tablerf   a   s    ^+>>2n^<= ++%z21-c22(4d;;33 G$6z$BG333 G$6z$BG D D 7-c22
%%%su% &!!!q!4C1#66 " )?; 3C?2S/
5554df5<fYe<f<fYe<f9f9f 6   a >C1#66 ! '++-0]]M$TYY}%=$>?-c22r+   c               $    V ^8  d   QhRRRRRR/# )r!   r4   r$   backend_pathsSequence[str]r%   r&   r'   )r(   s   "r)   r*   r*      s!     7 7s 7= 7T 7r+   c                    V FY  p\         P                  P                  W4      p\         P                  P                  V4      '       d   KI  R V: R2p\	        V4      h	  R# )z`backend-path` entry z% does not exist or is not a directoryN)r   r7   r9   r8   r   )r4   rh   r7   resolvedr;   s   &&   r)   _validate_backend_pathrl      sK    77<<
1ww}}X&&)$1VWC1#66	 r+   c               $    V ^8  d   QhRRRRRR/# )r!   runnerr   r   env.IsolatedEnvr%   r'   )r(   s   "r)   r*   r*      s#     " "$4 "? "O_ "r+   c                "   a a RR VV 3R lllpV# )Nc               (    V ^8  d   QhRRRRRRRR/# )	r!   cmdri   cwd
str | Noneextra_environzMapping[str, str] | Noner%   r&   r'   )r(   s   "r)   r*   -_wrap_subprocess_runner.<locals>.__annotate__   s2     X XX!+XC[X	Xr+   c                h   < S! Y/ SP                   ! 4       ;'       g    / CT;'       g    / C4       R # rS   )make_extra_environ)rr   rs   ru   r   rn   s   &&&r)   _invoke_wrapped_runner7_wrap_subprocess_runner.<locals>._invoke_wrapped_runner   s4     	sVS335;;VATATRTVWr+   NNr'   )rn   r   ry   s   ff r)   _wrap_subprocess_runnerr|      s    X X
 "!r+   c                  N   ] tR t^tRt]P                  ]P                  3R R llt	]
]P                  3R R ll4       t]R R l4       t]R R	 l4       t]R
 R l4       tRR R lltRR R lltRR R lltRR R lltR R ltRR R llt]P.                  R R l4       tRtR# )ProjectBuilderz
The PEP 517 consumer API.
c               (    V ^8  d   QhRRRRRRRR/# )	r!   r4   r   python_executabler$   rn   r   r%   r&   r'   )r(   s   "r)   r*   ProjectBuilder.__annotate__   s2     +
 +
+
 +
 !	+

 
+
r+   c                R   \         P                  P                  V4      V n        \	        V4       W n        W0n        \         P                  P                  VR4      p\        \        V4      4      V n
        V P                  R,          V n        V P                  P                  R4      ;p'       d   \        V P                  V4       \        P                  ! V P                  V P                  V P                  P                  R4      V P
                  V P                  R7      V n        R# )a  
:param source_dir: The source directory
:param python_executable: The python executable where the backend lives
:param runner: Runner for backend subprocesses

The ``runner``, if provided, must accept the following arguments:

- ``cmd``: a list of strings representing the command and arguments to
  execute, as would be passed to e.g. 'subprocess.check_call'.
- ``cwd``: a string representing the working directory that must be
  used for the subprocess. Corresponds to the provided source_dir.
- ``extra_environ``: a dict mapping environment variable names to values
  which must be set for the subprocess execution.

The default runner simply calls the backend hooks in a subprocess, writing backend output
to stdout/stderr.
r6   r   r]   )rd   r   rn   N)r   r7   abspath_source_dirr>   _python_executable_runnerr9   rf   rO   _build_system_backendgetrl   r   BuildBackendHookCaller_hook)selfr4   r   rn   pyproject_toml_pathrh   s   &&&&  r)   __init__ProjectBuilder.__init__   s    . !#
 ;":."3 ggll:7GH67KL_7`a**?; ..22>BB=B"4#3#3]C$;;MM++//?"55<<

r+   c               (    V ^8  d   QhRRRRRRRR/# )	r!   r   ro   r4   r   rn   r   r%   r   r'   )r(   s   "r)   r*   r      s2     

 



 

 !	


 


r+   c                	>    V ! VVP                   \        W14      R 7      # ))r4   r   rn   )r   r|   )clsr   r4   rn   s   &&&&r)   from_isolated_env ProjectBuilder.from_isolated_env   s%     !!33*67
 	
r+   c                   V ^8  d   QhRR/# r!   r%   r$   r'   )r(   s   "r)   r*   r      s        C  r+   c                    V P                   # )zProject source directory.)r   r   s   &r)   r4   ProjectBuilder.source_dir   s     r+   c                   V ^8  d   QhRR/# r   r'   )r(   s   "r)   r*   r      s     ' '3 'r+   c                    V P                   # )z3
The Python executable used to invoke the backend.
)r   r   s   &r)   r    ProjectBuilder.python_executable   s    
 &&&r+   c                   V ^8  d   QhRR/# )r!   r%   set[str]r'   )r(   s   "r)   r*   r      s     3 3x 3r+   c                :    \        V P                  R,          4      # )z
The dependencies defined in the ``pyproject.toml``'s
``build-system.requires`` field or the default build dependencies
if ``pyproject.toml`` is missing or ``build-system`` is undefined.
r   )setr   r   s   &r)   build_system_requires$ProjectBuilder.build_system_requires   s     4%%j122r+   Nc               $    V ^8  d   QhRRRRRR/# )r!   distributionr   config_settingsConfigSettings | Noner%   r   r'   )r(   s   "r)   r*   r      s(     6 6"6 /6 
	6r+   c                   \         P                  ! RV R2RR7       RV 2p\        V P                  V4      pV P	                  V4      ;_uu_ 4        \        V! V4      4      uuRRR4       #   + '       g   i     R# ; i)a  
Return the dependencies defined by the backend in addition to
:attr:`build_system_requires` for a given distribution.

:param distribution: Distribution to get the dependencies of
    (``sdist`` or ``wheel``)
:param config_settings: Config settings for the build backend
zGetting build dependencies for ...kindget_requires_for_build_Nstep)r   loggetattrr   _handle_backendr   )r   r   r   	hook_nameget_requiress   &&&  r)   get_requires_for_build%ProjectBuilder.get_requires_for_build   se     	2<.D9U-l^<	tzz95!!),,|O45 -,,,s   A--A>	c               $    V ^8  d   QhRRRRRR/# )r!   r   r   r   r   r%   zset[tuple[str, ...]]r'   )r(   s   "r)   r*   r   	  s-     F F"F /F 
	Fr+   c                    V P                  W4      P                  V P                  4      pV UUu0 uF  p\        V4       F  qUkK  	  K  	  upp# u uppi )aa  
Return the dependencies which are not satisfied from the combined set of
:attr:`build_system_requires` and :meth:`get_requires_for_build` for a given
distribution.

:param distribution: Distribution to check (``sdist`` or ``wheel``)
:param config_settings: Config settings for the build backend
:returns: Set of variable-length unmet dependency tuples
)r   unionr   r   )r   r   r   dependenciesdus   &&&   r)   check_dependencies!ProjectBuilder.check_dependencies	  sM     22<QWWX\XrXrs'E<a1A!1DA1D<EEEs   Ac               (    V ^8  d   QhRRRRRRRR/# )	r!   r   r   output_directoryr   r   r   r%   rt   r'   )r(   s   "r)   r*   r     s2      " " /	
 
r+   c                    \         P                  ! RV R2RR7        V P                  RV 2VVRR7      #   \         d7   p\	        TP
                  \        P                  4      '       d    Rp?R# h Rp?ii ; i)	a"  
Prepare metadata for a distribution.

:param distribution: Distribution to build (must be ``wheel``)
:param output_directory: Directory to put the prepared metadata in
:param config_settings: Config settings for the build backend
:returns: The full path to the prepared metadata directory
zGetting metadata for r   r   prepare_metadata_for_build_F)_allow_fallbackNr   )r   r   _call_backendr   rU   	exceptionr   HookMissing)r   r   r   r   r   s   &&&& r)   prepareProjectBuilder.prepare  s}     	(c:K
	%%-l^<  %	 &   % 	)--/J/JKK	s   6 A7*A21A22A7c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r!   r   r   r   r   r   r   metadata_directoryrt   r%   r$   r'   )r(   s   "r)   r*   r   5  sC     h h"h "h /	h
 'h 
hr+   c                |    \         P                  ! RV R2RR7       Vf   / MRV/pV P                  ! RV 2W#3/ VB # )a  
Build a distribution.

:param distribution: Distribution to build (``sdist`` or ``wheel``)
:param output_directory: Directory to put the built distribution in
:param config_settings: Config settings for the build backend
:param metadata_directory: If provided, should be the return value of a
    previous ``prepare`` call on the same ``distribution`` kind
:returns: The full path to the built distribution
z	Building r   r   r   build_r   )r   r   r   )r   r   r   r   r   kwargss   &&&&& r)   buildProjectBuilder.build5  sO    " 	9\N#.Y?)18LN`7a!!F<."9;Kg`fggr+   c                    V ^8  d   QhRRRR/# )r!   r   r   r%   r$   r'   )r(   s   "r)   r*   r   K  s     8 8g 8# 8r+   c                  a V P                  RV4      pVe   V# V P                  RV4      p\        \        P                  P                  V4      4      pV'       g   Rp\        V4      hVR,           RVR,           R2pV R2o\        P                  ! V4      ;_uu_ 4       pVP                  VV3R	 lVP                  4        4       4       RRR4       \        P                  P                  W4      #   + '       g   i     L/; i)
aO  
Generate the metadata directory of a distribution and return its path.

If the backend does not support the ``prepare_metadata_for_build_wheel``
hook, a wheel will be built and the metadata will be extracted from it.

:param output_directory: Directory to put the metadata distribution in
:returns: The path of the metadata directory
wheelNzInvalid wheelr   -versionz
.dist-info/c              3  X   <"   T F  qP                  S4      '       g   K  Vx  K!  	  R # 5irS   )
startswith)rW   membermember_prefixs   & r)   rY   /ProjectBuilder.metadata_path.<locals>.<genexpr>e  s     WlF6G6G6Vls   *
*)r   r   r   r   r7   basename
ValueErrorr   ZipFile
extractallnamelistr9   )	r   r   metadatar   matchr;   distinfowr   s	   &&      @r)   metadata_pathProjectBuilder.metadata_pathK  s     <<)9:O 

7$45$RWW%5%5e%<=!CS/!N+,AeI.>-?zJ#*A__U##qLL WajjlW $
 ww||,77 $#s   "+C44D	c          
     ,    V ^8  d   QhRRRRRRRRR	R/# )
r!   r   r$   outdirr   r   r   r   r   r%   r'   )r(   s   "r)   r*   r   i  s4     . ..&-.@U.hk.	.r+   c                	   \         P                  P                  V4      p\        V P                  V4      p\         P                  P                  V4      '       d8   \         P                  P                  V4      '       g   R V R2p\        V4      hM\         P                  ! VRR7       V P                  V4      ;_uu_ 4        V! W#3/ VB pRRR4       \         P                  P                  VX4      #   + '       g   i     L0; i)zBuild path 'z' exists and is not a directoryT)exist_okN)r   r7   r   r   r   r:   r8   r   makedirsr   r9   )r   r   r   r   r   callbackr;   r   s   &&&&,   r)   r   ProjectBuilder._call_backendi  s     (4::y177>>&!!77==(($VH,KL$S)) ) KK.!!),,$VGGH - ww||FH-- -,s   
C55D	c                    V ^8  d   QhRRRR/# )r!   hookr$   r%   zIterator[None]r'   )r(   s   "r)   r*   r   }  s     V VC VN Vr+   c              #  	^  "    R x  R #   \         P                   d5   p\        TRT P                   R2\        P
                  ! 4       4      R hR p?i\        P                   d   p\        TRT 24      R hR p?i\         d'   p\        T\        P
                  ! 4       R7      R hR p?ii ; i5i)Nz	Backend 'z' is not available.z0Backend subprocess exited when trying to invoke )exc_info)	r   BackendUnavailabler   r   r	   r   r   CalledProcessError	Exception)r   r   r   s   && r)   r   ProjectBuilder._handle_backend|  s     	V11 	'DMM?*=> 	
 ,, 	x'	5efjek3lmsww 	V'	CLLNKQUU	VsH   B-
 B-B*/AB*%B*&A66B*B*!B%%B**B-)r   r   r   r   r   r   rS   r{   )__name__
__module____qualname____firstlineno____doc__r	   
executabler   default_subprocess_runnerr   classmethodr   propertyr4   r   r   r   r   r   r   r   r   r   contextmanagerr   __static_attributes__r'   r+   r)   r~   r~      s     "%#2#L#L	+
Z 
 $3#L#L	

 

     ' ' 3 36(F"6h,8<.& V Vr+   r~   )      )1
__future__r   __spec__parent__lazy_modules__r   r   r   r   r	   r
   r   typingr   r    r   r   _compatr   _exceptionsr   r   r   r   _utilr   r   TYPE_CHECKINGcollections.abcr   r   r   version_infotyping_extensionsr   _typesr   r   r   r   r^   r2   r>   rO   rf   rl   r|   r~   r'   r+   r)   <module>r     s    # x |$v	    	  
        : ;;
'!*OO 7'( ",,^7"hV hVr+   