4H> d Z ddlmZ ddlZddlZddlmZmZ ddl m
Z
mZ ddlm
Z
ddlmZ dd lmZ ed
d Z ed
d Zd Zd"dZefd#dZ d$d%d Z ej ee! ZdS )&z2Timestamp comparison of files and groups of files. )annotationsN)CallableIterable)LiteralTypeVar)splat )
zip_strict)DistutilsFileError _SourcesT3str | bytes | os.PathLike[str] | os.PathLike[bytes])bound _TargetsTc t j | p?t j | t j | k S N)ospathexistsgetmtimesourcetargets q/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/setuptools/_distutils/_modified.py_newerr sH w~~f%%%
27#3#3F#;#;; r r returnboolc t j | s0t dt 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.
zfile z does not exist)r r r r abspathr r s r newerr sS 7>>&!! U !S)@)@!S!S!STTT&&!!!r sourcesIterable[_SourcesT]targetsIterable[_TargetsT]r &Callable[[_SourcesT, _TargetsT], bool]'tuple[list[_SourcesT], list[_TargetsT]]c t t | t | | }t t t
t
| pg g fS )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
tuplemaplistzip)r! r# r newer_pairss r newer_pairwiser. / sI uz'7'C'CDDKT3,--..:2r(:r error=Iterable[str | bytes | os.PathLike[str] | os.PathLike[bytes]]missing#Literal['error', 'ignore', 'newer']c fddk rt j j nd}t j p)t fdt || 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 dk ot j | S )Nr )r r r )r r1 s r missing_as_newerz%newer_group.