import os


def show_files(path, all_files):
    # Traverse all the folder/file in current directory
    file_list = os.listdir(path)
    # Determine the element is folder or file. If file, pass it into list, if folder, recurse.
    for file in file_list:
        # Get the abs directory using os.path.join() and store into cur_path.
        cur_path = os.path.join(path, file)
        # Determine whether folder
        if os.path.isdir(cur_path):
            show_files(cur_path, all_files)
        else:
            all_files.append(cur_path)
    return all_files


def join(input_list, sep=None):
    return (sep or ' ').join(input_list)


def main():
    contents = show_files('examples/', [])
    all_loc = []
    for file_loc in contents:
        split_loc = file_loc.split('/')
        # must have two sub-folder levels after examples folder, such as examples/images/vit is acceptable, examples/images/README.md is not, examples/requirements.txt is not.
        if len(split_loc) - split_loc.index('examples') >= 3:
            tmp_loc = split_loc[(split_loc.index('examples') + 1):(split_loc.index('examples') + 3)]
            re_loc = join(tmp_loc, '/')
            if re_loc not in all_loc:
                all_loc.append(re_loc)
    print(all_loc)


if __name__ == '__main__':
    main()
