Exemplo n.º 1
0
def get_hidden_files_count(node):
    if is_file(node) and get_name(node).startswith('.'):
        return 1
    if is_file(node):
        return 0
    children = get_children(node)
    count_hidden_children = list(map(get_hidden_files_count, children))
    return sum(count_hidden_children)
Exemplo n.º 2
0
 def inner(node, path):
     name_node = get_name(node)
     children = get_children(node)
     if is_file(node) and string in name_node:
         return path
     if is_file(node) or len(children) == 0:
         return []
     output = list(
         map(
             lambda child: inner(child, os.path.join(path, get_name(child))
                                 ),
             children,
         ))
     return flatten(output)
Exemplo n.º 3
0
def downcase_file_names(tree):
    name = get_name(tree)
    meta = copy.deepcopy(get_meta(tree))
    if is_file(tree):
        return mkfile(name.lower(), meta)
    children = get_children(tree)
    new_children = list(map(downcase_file_names, children))
    return mkdir(name, new_children, meta)
Exemplo n.º 4
0
def change_owner(node, owner):
    name = fs.get_name(node)
    new_meta = copy.deepcopy(fs.get_meta(node))
    new_meta['owner'] = owner
    if fs.is_file(node):
        # Возвращаем обновлённый файл
        return fs.mkfile(name, new_meta)
    children = fs.get_children(node)
    # Ключевая строчка
    # Вызываем рекурсивное обновление каждого ребёнка
    new_children = list(
        map(lambda child: change_owner(child, owner), children))
    new_tree = fs.mkdir(name, new_children, new_meta)
    # Возвращаем обновлённую директорию
    return new_tree
Exemplo n.º 5
0
def test_is_directory():
    node = fs.mkdir('/')
    assert fs.is_directory(node)
    assert not fs.is_file(node)
Exemplo n.º 6
0
def get_size_node(node):
    if is_file(node):
        return get_meta(node)['size']
    children = get_children(node)
    size_children = list(map(get_size_node, children))
    return sum(size_children)