Ë
    óÇ:j‹  ã                  ó  — d Z ddlmZ ddlZddlZddlmZmZ ddl	m
Z
mZ ddlmZ ddlmZ dd	lmZ  ed
d¬«      Z edd¬«      Zd„ Z	 	 	 	 	 	 dd„Zef	 	 	 	 	 	 	 dd„Z	 d	 	 	 	 	 	 	 dd„Z ej0                  ee¬«      Zy)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                óÄ   — t         j                  j                  |«       xs? t         j                  j                  | «      t         j                  j                  |«      kD  S ©N)ÚosÚpathÚexistsÚgetmtime©ÚsourceÚtargets     út/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/setuptools/_distutils/_modified.pyÚ_newerr      sE   € Ü�w‰w�~‰~˜fÓ%Ð%ò Ü
�‰×Ñ˜Ó ¤2§7¡7×#3Ñ#3°FÓ#;Ñ;ðó    c                ó°   — t         j                  j                  | «      s,t        dt         j                  j	                  | «      ›d�«      ‚t        | |«      S )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      sC   € ô �7‰7�>‰>˜&Ô!Ü  5¬¯©¯©¸Ó)@Ð(CÀ?Ð!SÓTÐTä�&˜&Ó!Ð!r   c                óŠ   — t        t        |«      t        | |«      «      }t        t	        t
        t        |Ž «      «      xs g g fS )a1  
    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(   /   s;   € ô œ˜u›¤z°'¸7Ó'CÓD€KÜ””Tœ3 Ð,Ó-Ó.Ò:°2°r°(Ð:r   c                óÖ   ‡‡‡— ˆfd„Š‰dk(  rt         j                  j                  nd}t         j                  j                  ‰«       xs t        ˆˆfd„t	        || «      D «       «      S )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                óR   •— ‰dk(  xr  t         j                  j                  | «       S )Nr   )r   r   r   )r   Úmissings    €r   Úmissing_as_newerz%newer_group.<locals>.missing_as_newerU   s#   ø€ Ø˜'Ñ!Ò@¬"¯'©'¯.©.¸Ó*@Ð&@Ð@r   ÚignoreNc              3  óJ   •K  — | ]  } ‰|«      xs t        |‰«      –— Œ y ­wr   )r   )Ú.0r   r,   r   s     €€r   ú	<genexpr>znewer_group.<locals>.<genexpr>Y   s-   øè ø€ ò -àñ 	˜Ó Ò:¤F¨6°6Ó$:Ó:ñ-ùs   ƒ #)r   r   r   Úanyr    )r%   r   r+   Úignoredr,   s    `` @r   Únewer_groupr3   @   sY   ú€ ô*Að !(¨8Ò 3Œb�g‰g�nŠn¸€GÜ�w‰w�~‰~˜fÓ%Ð%ò ¬ô -ä˜W gÓ.ô-ó *ð r   )r   )r   r   r   r   ÚreturnÚbool)r%   zIterable[_SourcesT]r&   zIterable[_TargetsT]r   z&Callable[[_SourcesT, _TargetsT], bool]r4   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']r4   r5   )Ú__doc__Ú
__future__r   Ú	functoolsÚos.pathr   Úcollections.abcr   r   Útypingr   r   Újaraco.functoolsr   Úcompat.py39r
   Úerrorsr   r   r   r   r   r(   r3   ÚpartialÚnewer_pairwise_group© r   r   ú<module>rC      sÙ   ðÙ 8å "ã Û ß .ß #å "å #Ý &áØÐLô€	ñ ØÐLô€	ò
ð"Ø?ð"à?ð"ð 
ó"ð* 5:ð;Ø ð;à ð;ð 2ð;ð -ó	;ð( 4;ðØJðà?ðð 1ðð 
ó	ð> )�y×(Ñ(¨¸{ÔKÑ r   