1from distutils.dep_util import newer_group
2
3# yes, this is was almost entirely copy-pasted from
4# 'newer_pairwise()', this is just another convenience
5# function.
6def newer_pairwise_group(sources_groups, targets):
7    """Walk both arguments in parallel, testing if each source group is newer
8    than its corresponding target. Returns a pair of lists (sources_groups,
9    targets) where sources is newer than target, according to the semantics
10    of 'newer_group()'.
11    """
12    if len(sources_groups) != len(targets):
13        raise ValueError("'sources_group' and 'targets' must be the same length")
14
15    # build a pair of lists (sources_groups, targets) where source is newer
16    n_sources = []
17    n_targets = []
18    for i in range(len(sources_groups)):
19        if newer_group(sources_groups[i], targets[i]):
20            n_sources.append(sources_groups[i])
21            n_targets.append(targets[i])
22
23    return n_sources, n_targets
24