summaryrefslogtreecommitdiff
path: root/lib/git/objects/blob.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/git/objects/blob.py')
-rw-r--r--lib/git/objects/blob.py34
1 files changed, 17 insertions, 17 deletions
diff --git a/lib/git/objects/blob.py b/lib/git/objects/blob.py
index 3f91d078..ed7a8d04 100644
--- a/lib/git/objects/blob.py
+++ b/lib/git/objects/blob.py
@@ -4,33 +4,33 @@
# This module is part of GitPython and is released under
# the BSD License: http://www.opensource.org/licenses/bsd-license.php
-import mimetypes
+from mimetypes import guess_type
import base
+__all__ = ('Blob', )
+
class Blob(base.IndexObject):
"""A Blob encapsulates a git blob object"""
DEFAULT_MIME_TYPE = "text/plain"
type = "blob"
- __slots__ = tuple()
+ __slots__ = "data"
+
+ def _set_cache_(self, attr):
+ if attr == "data":
+ ostream = self.repo.odb.stream(self.binsha)
+ self.size = ostream.size
+ self.data = ostream.read()
+ # assert ostream.type == self.type, _assertion_msg_format % (self.binsha, ostream.type, self.type)
+ else:
+ super(Blob, self)._set_cache_(attr)
+ # END handle data
-
@property
def mime_type(self):
- """
- The mime type of this file (based on the filename)
-
- Returns
- str
-
- NOTE
- Defaults to 'text/plain' in case the actual file type is unknown.
- """
+ """ :return:String describing the mime type of this file (based on the filename)
+ :note: Defaults to 'text/plain' in case the actual file type is unknown. """
guesses = None
if self.path:
- guesses = mimetypes.guess_type(self.path)
+ guesses = guess_type(self.path)
return guesses and guesses[0] or self.DEFAULT_MIME_TYPE
-
-
- def __repr__(self):
- return '<git.Blob "%s">' % self.sha