ó
    Eñi‹  ã                  óþ   • S r SSKJr  SSKrSSKrSSKJrJr  SSK	J
r
Jr  SSKJr  SSKJr  SS	KJr  \" S
SS9r\" SSS9rS r      SS jr\4       SS jjr S       SS jjr\R0                  " \\S9rg)z2Timestamp comparison of files and groups of files.é    )ÚannotationsN)ÚCallableÚIterable)ÚLiteralÚTypeVar)Úsplaté   )Ú
zip_strict)ÚDistutilsFileErrorÚ	_SourcesTú3str | bytes | os.PathLike[str] | os.PathLike[bytes])ÚboundÚ	_TargetsTc                óÖ   • [         R                  R                  U5      (       + =(       d?    [         R                  R                  U 5      [         R                  R                  U5      :„  $ ©N)ÚosÚpathÚexistsÚgetmtime©ÚsourceÚtargets     Ú\/home/mande/repo/quber/.venv/lib/python3.13/site-packages/setuptools/_distutils/_modified.pyÚ_newerr      sE   € Ü�w‰w�~‰~˜fÓ%Ô%÷ Ü
�‰×Ñ˜Ó ¤2§7¡7×#3Ñ#3°FÓ#;Ñ;ðó    c                óº   • [         R                  R                  U 5      (       d-  [        S[         R                  R	                  U 5      < S35      e[        X5      $ )zÇ
Is source modified more recently than target.

Returns True if 'source' is modified more recently than
'target' or if 'target' does not exist.

Raises DistutilsFileError if 'source' does not exist.
zfile z does not exist)r   r   r   r   Úabspathr   r   s     r   Únewerr      sD   € ô �7‰7�>‰>˜&×!Ñ!Ü  5¬¯©¯©¸Ó)@Ñ(CÀ?Ð!SÓTÐTä�&Ó!Ð!r   c                ó’   • [        [        U5      [        X5      5      n[        [	        [
        [        U6 5      5      =(       d    / / 4$ )a  
Filter filenames where sources are newer than targets.

Walk two filename iterables in parallel, testing if each source is newer
than its corresponding target.  Returns a pair of lists (sources,
targets) where source is newer than target, according to the semantics
of 'newer()'.
)Úfilterr   r
   ÚtupleÚmapÚlistÚzip)ÚsourcesÚtargetsr   Únewer_pairss       r   Únewer_pairwiser(   /   s9   € ô œ˜u›¤z°'Ó'CÓD€KÜ””Tœ3 Ð,Ó-Ó.×:°2°r°(Ð:r   c                óì   ^^^• U4S jmTS:X  a  [         R                  R                  OSn[         R                  R                  T5      (       + =(       d    [        UU4S j[	        X05       5       5      $ )a«  
Is target out-of-date with respect to any file in sources.

Return True if 'target' is out-of-date with respect to any file
listed in 'sources'. In other words, if 'target' exists and is newer
than every file in 'sources', return False; otherwise return True.
``missing`` controls how to handle a missing source file:

- error (default): allow the ``stat()`` call to fail.
- ignore: silently disregard any missing source files.
- newer: treat missing source files as "target out of date". This
  mode is handy in "dry-run" mode: it will pretend to carry out
  commands that wouldn't work because inputs are missing, but
  that doesn't matter because dry-run won't run the commands.
c                ód   >• TS:H  =(       a$    [         R                  R                  U 5      (       + $ )Nr   )r   r   r   )r   Úmissings    €r   Úmissing_as_newerÚ%newer_group.<locals>.missing_as_newerU   s#   ø€ Ø˜'Ñ!×@¬"¯'©'¯.©.¸Ó*@Ô&@Ð@r   ÚignoreNc              3  óZ   >#   • U  H   nT" U5      =(       d    [        UT5      v •  M"     g 7fr   )r   )Ú.0r   r,   r   s     €€r   Ú	<genexpr>Únewer_group.<locals>.<genexpr>Y   s,   øé € ð -â.ˆFñ 	˜Ó ×:¤F¨6°6Ó$:Ô:Ú.ùs   ƒ(+)r   r   r   Úanyr    )r%   r   r+   Úignoredr,   s    `` @r   Únewer_groupr5   @   sW   ú€ õ*Að !(¨8Ó 3Œb�g‰g�nŠn¸€GÜ�w‰w�~‰~˜fÓ%Ô%÷ ¬õ -ä˜WÔ.ó-ó *ð r   )r   )r   r   r   r   ÚreturnÚbool)r%   zIterable[_SourcesT]r&   zIterable[_TargetsT]r   z&Callable[[_SourcesT, _TargetsT], bool]r6   z'tuple[list[_SourcesT], list[_TargetsT]])Úerror)r%   z=Iterable[str | bytes | os.PathLike[str] | os.PathLike[bytes]]r   r   r+   z#Literal['error', 'ignore', 'newer']r6   r7   )Ú__doc__Ú
__future__r   Ú	functoolsÚos.pathr   Úcollections.abcr   r   Útypingr   r   Újaraco.functoolsr   Úcompat.py39r
   Úerrorsr   r   r   r   r   r(   r5   ÚpartialÚnewer_pairwise_group© r   r   Ú<module>rE      s×   ðÙ 8å "ã Û ß .ß #å "å #Ý &áØÐLñ€	ñ ØÐLñ€	ò
ð"Ø?ð"à?ð"ð 
ô"ð* 5:ð;Ø ð;à ð;ð 2ð;ð -õ	;ð( 4;ðØJðà?ðð 1ðð 
õ	ð> !×(Ò(¨¸{ÑKÑ r   