§
    WŠtj™  ã                  óè   — 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j        ee¬!¦  «        ZdS )&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                             |¦  «         p?t           j                             | ¦  «        t           j                             |¦  «        k    S ©N)ÚosÚpathÚexistsÚgetmtime©ÚsourceÚtargets     ú]/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/setuptools/_distutils/_modified.pyÚ_newerr      sH   € ÝŒw�~Š~˜fÑ%Ô%Ð%ð Ý
Œ×Ò˜Ñ Ô ¥2¤7×#3Ò#3°FÑ#;Ô#;Ò;ðó    r   r   ÚreturnÚboolc                óÀ   — t           j                             | ¦  «        s0t          dt           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       sS   € õ Œ7�>Š>˜&Ñ!Ô!ð UÝ Ð!S­¬¯ª¸Ñ)@Ô)@Ð!SÐ!SÐ!SÑTÔTÐTå�&˜&Ñ!Ô!Ð!r   ÚsourcesúIterable[_SourcesT]ÚtargetsúIterable[_TargetsT]r    ú&Callable[[_SourcesT, _TargetsT], bool]ú'tuple[list[_SourcesT], list[_TargetsT]]c           
     ó¸   — t          t          |¦  «        t          | |¦  «        ¦  «        }t          t	          t
          t          |ddiŽ¦  «        ¦  «        p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()'.
    ÚstrictF)Úfilterr   r
   ÚtupleÚmapÚlistÚzip)r!   r#   r    Únewer_pairss       r   Únewer_pairwiser/   /   sQ   € õ �˜u™œ¥z°'¸7Ñ'CÔ'CÑDÔD€KÝ••T�3 Ð:°EÐ:Ð:Ñ;Ô;Ñ<Ô<ÐHÀÀRÀÐHr   Úerrorú=Iterable[str | bytes | os.PathLike[str] | os.PathLike[bytes]]Úmissingú#Literal['error', 'ignore', 'newer']c                óØ   ‡‡‡— ˆfd„Š‰dk    rt           j        j        nd}t           j                             ‰¦  «         p)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                óP   •— ‰dk    ot           j                             | ¦  «         S )Nr    )r   r   r   )r   r2   s    €r   Úmissing_as_newerz%newer_group.<locals>.missing_as_newerU   s$   ø€ Ø˜'Ò!Ð@­"¬'¯.ª.¸Ñ*@Ô*@Ð&@Ð@r   ÚignoreNc              3  óN   •K  — | ]} ‰|¦  «        pt          |‰¦  «        V — Œ d S r   )r   )Ú.0r   r6   r   s     €€r   ú	<genexpr>znewer_group.<locals>.<genexpr>Y   sQ   øè è € ð -ð -àð 	Ð˜Ñ Ô Ð:¥F¨6°6Ñ$:Ô$:ð-ð -ð -ð -ð -ð -r   )r   r   r   Úanyr)   )r!   r   r2   Úignoredr6   s    `` @r   Únewer_groupr=   @   s›   øøø€ ð*Að Að Að Að Að !(¨8Ò 3Ð 3�bŒgŒnˆn¸€GÝŒw�~Š~˜fÑ%Ô%Ð%ð ­ð -ð -ð -ð -ð -å˜W gÑ.Ô.ð-ñ -ô -ñ *ô *ð r   )r    )r   r   r   r   r   r   )r!   r"   r#   r$   r    r%   r   r&   )r0   )r!   r1   r   r   r2   r3   r   r   )Ú__doc__Ú
__future__r   Ú	functoolsÚos.pathr   Úcollections.abcr   r   Útypingr   r   Újaraco.functoolsr   Úcompat.py39r
   Úerrorsr   r   r   r   r    r/   r=   ÚpartialÚnewer_pairwise_group© r   r   ú<module>rJ      sV  ðØ 8Ð 8à "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #à "Ð "Ð "Ð "Ð "Ð "à #Ð #Ð #Ð #Ð #Ð #Ø &Ð &Ð &Ð &Ð &Ð &àˆGØÐLðñ ô €	ð ˆGØÐLðñ ô €	ð
ð ð ð"ð "ð "ð "ð* 5:ðIð Ið Ið Ið Ið( 4;ðð ð ð ð ð> )�yÔ(¨¸{ÐKÑKÔKÐ Ð Ð r   