瀏覽代碼

Merge pull request #1043 from jelmer/factor-out-pack-inflator

Move PackTupleIterable to top-level
Jelmer Vernooij 2 年之前
父節點
當前提交
9051030b06
共有 1 個文件被更改,包括 15 次插入11 次删除
  1. 15 11
      dulwich/pack.py

+ 15 - 11
dulwich/pack.py

@@ -1964,6 +1964,20 @@ def write_pack_index_v2(f, entries, pack_checksum):
 write_pack_index = write_pack_index_v2
 
 
+class _PackTupleIterable(object):
+    """Helper for Pack.pack_tuples."""
+
+    def __init__(self, iterobjects, length):
+        self._iterobjects = iterobjects
+        self._length = length
+
+    def __len__(self):
+        return self._length
+
+    def __iter__(self):
+        return ((o, None) for o in self._iterobjects())
+
+
 class Pack(object):
     """A Git pack object."""
 
@@ -2119,17 +2133,7 @@ class Pack(object):
             and provides __len__
         """
 
-        class PackTupleIterable(object):
-            def __init__(self, pack):
-                self.pack = pack
-
-            def __len__(self):
-                return len(self.pack)
-
-            def __iter__(self):
-                return ((o, None) for o in self.pack.iterobjects())
-
-        return PackTupleIterable(self)
+        return _PackTupleIterable(self.iterobjects, len(self))
 
     def keep(self, msg=None):
         """Add a .keep file for the pack, preventing git from garbage collecting it.