Sfoglia il codice sorgente

Extend DictRefsContainer.

Jelmer Vernooij 15 anni fa
parent
commit
9da742ad52
1 ha cambiato i file con 19 aggiunte e 0 eliminazioni
  1. 19 0
      dulwich/repo.py

+ 19 - 0
dulwich/repo.py

@@ -139,6 +139,13 @@ class RefsContainer(object):
         else:
             return self.allkeys()
 
+    def subkeys(self, base):
+        keys = set()
+        for refname in self.allkeys():
+            if refname.startswith(base):
+                keys.add(refname)
+        return keys
+
     def as_dict(self, base=None):
         """Return the contents of this container as a dictionary.
 
@@ -212,6 +219,18 @@ class RefsContainer(object):
         return sha
 
 
+class DictRefsContainer(RefsContainer):
+
+    def __init__(self, refs):
+        self._refs = refs
+
+    def allkeys(self):
+        return self._refs.keys()
+
+    def read_loose_ref(self, name):
+        return self._refs[name]
+
+
 class DiskRefsContainer(RefsContainer):
     """Refs container that reads refs from disk."""