Beispiel #1
0
def get_files(paths, extensions, skip_package_level_setup_py=True):
    files = {}
    for path in paths:
        if os.path.isdir(path):
            if is_repository_root(path):
                add_files_for_all_filetypes(path, files)
            for dirpath, dirnames, filenames in os.walk(path):
                if 'AMENT_IGNORE' in dirnames + filenames:
                    dirnames[:] = []
                    continue
                if is_repository_root(dirpath):
                    add_files_for_all_filetypes(dirpath, files)

                # ignore folder starting with . or _
                dirnames[:] = [d for d in dirnames if d[0] not in ['.', '_']]
                dirnames.sort()

                # select files by extension
                for filename in sorted(filenames):
                    # skip package level setup.py file
                    if (skip_package_level_setup_py and filename == 'setup.py'
                            and os.path.exists(
                                os.path.join(dirpath, 'package.xml'))):
                        continue
                    if match_filename(filename, extensions):
                        files[os.path.join(dirpath,
                                           filename)] = SOURCE_FILETYPE

        if os.path.isfile(path) and match_filename(path, extensions):
            files[path] = SOURCE_FILETYPE

        if is_repository_root(os.path.dirname(path)):
            basename = os.path.basename(path)
            for filetype, filename in ALL_FILETYPES.items():
                if filename == basename:
                    files[path] = filetype
                    break
    return {
        os.path.normpath(path): filetype
        for path, filetype in files.items()
    }
Beispiel #2
0
def get_files(paths, extensions, skip_package_level_setup_py=True):
    files = {}
    for path in paths:
        if os.path.isdir(path):
            if is_repository_root(path):
                add_files_for_all_filetypes(path, files)
            for dirpath, dirnames, filenames in os.walk(path):
                if 'AMENT_IGNORE' in filenames:
                    dirnames[:] = []
                    continue
                if is_repository_root(dirpath):
                    add_files_for_all_filetypes(dirpath, files)

                # ignore folder starting with . or _
                dirnames[:] = [d for d in dirnames if d[0] not in ['.', '_']]
                dirnames.sort()

                # select files by extension
                for filename in sorted(filenames):
                    # skip package level setup.py file
                    if (
                        skip_package_level_setup_py and
                        filename == 'setup.py' and
                        os.path.exists(os.path.join(dirpath, 'package.xml'))
                    ):
                        continue
                    if match_filename(filename, extensions):
                        files[os.path.join(dirpath, filename)] = SOURCE_FILETYPE

        if os.path.isfile(path) and match_filename(path, extensions):
            files[path] = SOURCE_FILETYPE

        if is_repository_root(os.path.dirname(path)):
            basename = os.path.basename(path)
            for filetype, filename in ALL_FILETYPES.items():
                if filename == basename:
                    files[path] = filetype
                    break
    return {os.path.normpath(path): filetype for path, filetype in files.items()}
Beispiel #3
0
def determine_filetype(path):
    basename = os.path.basename(path)
    for filetype, filename in ALL_FILETYPES.items():
        if basename == filename:
            return filetype
    return SOURCE_FILETYPE
Beispiel #4
0
def determine_filetype(path):
    basename = os.path.basename(path)
    for filetype, filename in ALL_FILETYPES.items():
        if basename == filename:
            return filetype
    return SOURCE_FILETYPE
Beispiel #5
0
def add_files_for_all_filetypes(path, files):
    for filetype, filename in ALL_FILETYPES.items():
        if filename is None:
            continue
        files[os.path.join(path, filename)] = filetype
Beispiel #6
0
def add_files_for_all_filetypes(path, files):
    for filetype, filename in ALL_FILETYPES.items():
        if filename is None:
            continue
        files[os.path.join(path, filename)] = filetype