diff options
author | Lars Wirzenius <liw@liw.fi> | 2015-07-17 17:57:47 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2015-07-17 17:57:47 +0300 |
commit | fb01a08f4632090fab509718cd67bad32c65d0be (patch) | |
tree | 043bfee9a401d2c192fea8df4625414d43e2bc71 /obnamlib/fmt_ga/client.py | |
parent | 8f7279ae965fd4d5551da810a3634ed6f9067dc3 (diff) | |
download | obnam-fb01a08f4632090fab509718cd67bad32c65d0be.tar.gz |
Simplify get_file_children in Green Albatross
Diffstat (limited to 'obnamlib/fmt_ga/client.py')
-rw-r--r-- | obnamlib/fmt_ga/client.py | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/obnamlib/fmt_ga/client.py b/obnamlib/fmt_ga/client.py index 0cee004f..2cca15cb 100644 --- a/obnamlib/fmt_ga/client.py +++ b/obnamlib/fmt_ga/client.py @@ -301,9 +301,7 @@ class GAClient(object): self._require_file_exists(gen_number, filename) generation = self._lookup_generation_by_gen_number(gen_number) metadata = generation.get_file_metadata() - return [ - x for x in metadata - if self._is_direct_child_of(x, filename)] + return metadata.get_file_children(filename) def _is_direct_child_of(self, child, parent): return os.path.dirname(child) == parent and child != parent @@ -588,6 +586,17 @@ class GAFileMetadata(object): if dir_obj: dir_obj.clear_file_chunk_ids(basename) + def get_file_children(self, filename): + assert filename not in self._added_files + dir_obj, dirname, basename = self._get_dir_obj(filename) + if basename != '.': + return [] + if dir_obj: + files = [x for x in dir_obj.get_file_basenames() if x != '.'] + subdirs = dir_obj.get_subdir_basenames() + return [os.path.join(dirname, x) for x in files + subdirs] + return [] + class AddedFiles(object): |