summaryrefslogtreecommitdiffstats
path: root/Tools/c-analyzer/cpython/files.py
blob: 543097af7bcd5092bea9bd187163b3775984f29f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from c_analyzer.common.files import (
        C_SOURCE_SUFFIXES, walk_tree, iter_files_by_suffix,
        )

from . import SOURCE_DIRS, REPO_ROOT

# XXX need tests:
# * iter_files()


def iter_files(*,
               walk=walk_tree,
               _files=iter_files_by_suffix,
               ):
    """Yield each file in the tree for each of the given directory names."""
    excludedtrees = [
        os.path.join('Include', 'cpython', ''),
        ]
    def is_excluded(filename):
        for root in excludedtrees:
            if filename.startswith(root):
                return True
        return False
    for filename in _files(SOURCE_DIRS, C_SOURCE_SUFFIXES, REPO_ROOT,
                           walk=walk,
                           ):
        if is_excluded(filename):
            continue
        yield filename