Explorar o código

Extend DictRefsContainer.

Jelmer Vernooij %!s(int64=15) %!d(string=hai) anos
pai
achega
9da742ad52
Modificáronse 1 ficheiros con 19 adicións e 0 borrados
  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."""