summaryrefslogtreecommitdiff
path: root/lib/git/tree.py
diff options
context:
space:
mode:
authorSebastian Thiel <byronimo@gmail.com>2009-10-11 16:49:05 +0200
committerSebastian Thiel <byronimo@gmail.com>2009-10-11 16:49:05 +0200
commit9374a916588d9fe7169937ba262c86ad710cfa74 (patch)
treedfe77a02cfa3fbe34563326cea95e92694d21b9a /lib/git/tree.py
parent20f202d83bdf1f332a3cb8f010bcf8bf3c2807bd (diff)
downloadgitpython-9374a916588d9fe7169937ba262c86ad710cfa74.tar.gz
converted all spaces to tabs ( 4 spaces = 1 tab ) just to allow me and my editor to work with the files properly. Can convert it back for releaes
Diffstat (limited to 'lib/git/tree.py')
-rw-r--r--lib/git/tree.py188
1 files changed, 94 insertions, 94 deletions
diff --git a/lib/git/tree.py b/lib/git/tree.py
index 6215f875..3d4deb16 100644
--- a/lib/git/tree.py
+++ b/lib/git/tree.py
@@ -9,97 +9,97 @@ import blob
import base
class Tree(base.Object):
-
- type = "tree"
-
- def __init__(self, repo, id, mode=None, path=None):
- super(Tree, self).__init__(repo, id)
- self.mode = mode
- self.path = path
- self._contents = None
-
- def __bake__(self):
- # Read the tree contents.
- super(Tree, self).__bake__()
- self._contents = {}
- for line in self.repo.git.ls_tree(self.id).splitlines():
- obj = self.content_from_string(self.repo, line)
- if obj is not None:
- self._contents[obj.path] = obj
-
- @staticmethod
- def content_from_string(repo, text):
- """
- Parse a content item and create the appropriate object
-
- ``repo``
- is the Repo
-
- ``text``
- is the single line containing the items data in `git ls-tree` format
-
- Returns
- ``git.Blob`` or ``git.Tree``
- """
- try:
- mode, typ, id, path = text.expandtabs(1).split(" ", 3)
- except:
- return None
-
- if typ == "tree":
- return Tree(repo, id=id, mode=mode, path=path)
- elif typ == "blob":
- return blob.Blob(repo, id=id, mode=mode, path=path)
- elif typ == "commit":
- return None
- else:
- raise(TypeError, "Invalid type: %s" % typ)
-
- def __div__(self, file):
- """
- Find the named object in this tree's contents
-
- Examples::
-
- >>> Repo('/path/to/python-git').tree/'lib'
- <git.Tree "6cc23ee138be09ff8c28b07162720018b244e95e">
- >>> Repo('/path/to/python-git').tree/'README.txt'
- <git.Blob "8b1e02c0fb554eed2ce2ef737a68bb369d7527df">
-
- Returns
- ``git.Blob`` or ``git.Tree`` or ``None`` if not found
- """
- return self.get(file)
-
- @property
- def basename(self):
- os.path.basename(self.path)
-
- def __repr__(self):
- return '<git.Tree "%s">' % self.id
-
- # Implement the basics of the dict protocol:
- # directories/trees can be seen as object dicts.
- def __getitem__(self, key):
- return self._contents[key]
-
- def __iter__(self):
- return iter(self._contents)
-
- def __len__(self):
- return len(self._contents)
-
- def __contains__(self, key):
- return key in self._contents
-
- def get(self, key):
- return self._contents.get(key)
-
- def items(self):
- return self._contents.items()
-
- def keys(self):
- return self._contents.keys()
-
- def values(self):
- return self._contents.values()
+
+ type = "tree"
+
+ def __init__(self, repo, id, mode=None, path=None):
+ super(Tree, self).__init__(repo, id)
+ self.mode = mode
+ self.path = path
+ self._contents = None
+
+ def __bake__(self):
+ # Read the tree contents.
+ super(Tree, self).__bake__()
+ self._contents = {}
+ for line in self.repo.git.ls_tree(self.id).splitlines():
+ obj = self.content_from_string(self.repo, line)
+ if obj is not None:
+ self._contents[obj.path] = obj
+
+ @staticmethod
+ def content_from_string(repo, text):
+ """
+ Parse a content item and create the appropriate object
+
+ ``repo``
+ is the Repo
+
+ ``text``
+ is the single line containing the items data in `git ls-tree` format
+
+ Returns
+ ``git.Blob`` or ``git.Tree``
+ """
+ try:
+ mode, typ, id, path = text.expandtabs(1).split(" ", 3)
+ except:
+ return None
+
+ if typ == "tree":
+ return Tree(repo, id=id, mode=mode, path=path)
+ elif typ == "blob":
+ return blob.Blob(repo, id=id, mode=mode, path=path)
+ elif typ == "commit":
+ return None
+ else:
+ raise(TypeError, "Invalid type: %s" % typ)
+
+ def __div__(self, file):
+ """
+ Find the named object in this tree's contents
+
+ Examples::
+
+ >>> Repo('/path/to/python-git').tree/'lib'
+ <git.Tree "6cc23ee138be09ff8c28b07162720018b244e95e">
+ >>> Repo('/path/to/python-git').tree/'README.txt'
+ <git.Blob "8b1e02c0fb554eed2ce2ef737a68bb369d7527df">
+
+ Returns
+ ``git.Blob`` or ``git.Tree`` or ``None`` if not found
+ """
+ return self.get(file)
+
+ @property
+ def basename(self):
+ os.path.basename(self.path)
+
+ def __repr__(self):
+ return '<git.Tree "%s">' % self.id
+
+ # Implement the basics of the dict protocol:
+ # directories/trees can be seen as object dicts.
+ def __getitem__(self, key):
+ return self._contents[key]
+
+ def __iter__(self):
+ return iter(self._contents)
+
+ def __len__(self):
+ return len(self._contents)
+
+ def __contains__(self, key):
+ return key in self._contents
+
+ def get(self, key):
+ return self._contents.get(key)
+
+ def items(self):
+ return self._contents.items()
+
+ def keys(self):
+ return self._contents.keys()
+
+ def values(self):
+ return self._contents.values()