diff --git a/swh/model/from_disk.py b/swh/model/from_disk.py --- a/swh/model/from_disk.py +++ b/swh/model/from_disk.py @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2018 The Software Heritage developers +# Copyright (C) 2017-2020 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU General Public License version 3, or any later version # See top-level LICENSE file for more information @@ -8,7 +8,7 @@ import stat import attr -from typing import List, Optional +from typing import List, Optional, Iterable, Any from .hashutil import MultiHash from .merkle import MerkleLeaf, MerkleNode @@ -196,7 +196,8 @@ return DiskBackedContent.from_dict(data) -def accept_all_directories(dirname, entries): +def accept_all_directories( + dirpath: str, dirname: str, entries: Iterable[Any]) -> bool: """Default filter for :func:`Directory.from_disk` accepting all directories @@ -207,7 +208,8 @@ return True -def ignore_empty_directories(dirname, entries): +def ignore_empty_directories( + dirpath: str, dirname: str, entries: Iterable[Any]) -> bool: """Filter for :func:`directory_to_objects` ignoring empty directories Args: @@ -233,8 +235,10 @@ if not case_sensitive: names = [name.lower() for name in names] - def named_filter(dirname, entries, - names=names, case_sensitive=case_sensitive): + def named_filter(dirpath: str, dirname: str, + entries: Iterable[Any], + names: Iterable[Any] = names, + case_sensitive: bool = case_sensitive): if case_sensitive: return dirname not in names else: @@ -282,7 +286,6 @@ max_content_length (Optional[int]): if given, all contents larger than this will be skipped. """ - top_path = path dirs = {} @@ -297,7 +300,7 @@ path=path, max_content_length=max_content_length) entries[name] = content else: - if dir_filter(name, dirs[path].entries): + if dir_filter(path, name, dirs[path].entries): entries[name] = dirs[path] dirs[root] = cls({'name': os.path.basename(root)})