[meld/VersionControlRework: 61/123] vc._vc: Rename listdir to get_entries and make it an iterator



commit 50e8a06bb4bd27347251eb3ceb494a177e8481b8
Author: Kai Willadsen <kai willadsen gmail com>
Date:   Sun Mar 29 13:13:37 2015 +1000

    vc._vc: Rename listdir to get_entries and make it an iterator

 meld/vc/_vc.py |   20 ++++++--------------
 meld/vcview.py |    2 +-
 2 files changed, 7 insertions(+), 15 deletions(-)
---
diff --git a/meld/vc/_vc.py b/meld/vc/_vc.py
index 270f32f..d20e052 100644
--- a/meld/vc/_vc.py
+++ b/meld/vc/_vc.py
@@ -201,30 +201,25 @@ class Vc(object):
         """
         self._update_tree_state_cache(path)
 
-    def listdir(self, base):
+    def get_entries(self, base):
         parent = Gio.File.new_for_path(base)
         enumerator = parent.enumerate_children(
             'standard::*', Gio.FileQueryInfoFlags.NOFOLLOW_SYMLINKS, None)
 
-        files = []
+        tree = self._tree_cache
+        meta_tree = self._tree_meta_cache
+
         for file_info in enumerator:
             if file_info.get_name() == self.VC_DIR:
                 continue
             gfile = enumerator.get_child(file_info)
-            files.append((gfile, file_info))
-
-        tree = self._get_tree_cache()
-        meta_tree = self._tree_meta_cache
 
-        def make_entry(gfile, file_info):
             path = gfile.get_path()
             name = file_info.get_display_name()
             state = tree.get(path, STATE_NORMAL)
             meta = meta_tree.get(path, "")
             isdir = file_info.get_file_type() == Gio.FileType.DIRECTORY
-            return Entry(path, name, state, isdir, options=meta)
-
-        retfiles = [make_entry(gfile, file_info) for gfile, file_info in files]
+            yield Entry(path, name, state, isdir, options=meta)
 
         # Removed entries are not in the filesystem, so must be added here
         for path, state in tree.items():
@@ -235,10 +230,7 @@ class Vc(object):
                     # or a file. Since it's gone however, only the VC
                     # knows, and may or may not tell us.
                     meta = meta_tree.get(path, "")
-                    retfiles.append(
-                        Entry(path, name, state, isdir=False, options=meta))
-
-        return retfiles
+                    yield Entry(path, name, state, isdir=False, options=meta)
 
     def get_entry(self, path):
         """Return the entry associated with the given path in this VC
diff --git a/meld/vcview.py b/meld/vcview.py
index 43b8b92..0dd7e64 100644
--- a/meld/vcview.py
+++ b/meld/vcview.py
@@ -428,7 +428,7 @@ class VcView(melddoc.MeldDoc, gnomeglade.Component):
             it = self.model.get_iter(treepath)
             yield _("Scanning %s") % path[prefixlen:]
 
-            entries = self.vc.listdir(path)
+            entries = self.vc.get_entries(path)
             entries = [e for e in entries if any(f(e) for f in filters)]
             for e in entries:
                 if e.isdir and e.state != tree.STATE_REMOVED:


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]