diff options
author | Sebastian Thiel <byronimo@gmail.com> | 2010-06-28 19:16:23 +0200 |
---|---|---|
committer | Sebastian Thiel <byronimo@gmail.com> | 2010-06-28 19:16:23 +0200 |
commit | 8d2239f24f6a54d98201413d4f46256df0d6a5f3 (patch) | |
tree | cd3685e0bd87441eab4888efbc4e14a232a65a7b /lib/git/objects/blob.py | |
parent | 58fb1187b7b8f1e62d3930bdba9be5aba47a52c6 (diff) | |
parent | 1fe889ea0cb2547584075dc1eb77f52c54b9a8c4 (diff) | |
download | gitpython-8d2239f24f6a54d98201413d4f46256df0d6a5f3.tar.gz |
Merge branch 'sha20'
Diffstat (limited to 'lib/git/objects/blob.py')
-rw-r--r-- | lib/git/objects/blob.py | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/lib/git/objects/blob.py b/lib/git/objects/blob.py index 3f91d078..8263e9a2 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 -class Blob(base.IndexObject): - """A Blob encapsulates a git blob object""" - DEFAULT_MIME_TYPE = "text/plain" - type = "blob" - - __slots__ = tuple() +__all__ = ('Blob', ) - - @property - def mime_type(self): - """ - The mime type of this file (based on the filename) +class Blob(base.IndexObject): + """A Blob encapsulates a git blob object""" + DEFAULT_MIME_TYPE = "text/plain" + type = "blob" - Returns - str - - NOTE - Defaults to 'text/plain' in case the actual file type is unknown. - """ - guesses = None - if self.path: - guesses = mimetypes.guess_type(self.path) - return guesses and guesses[0] or self.DEFAULT_MIME_TYPE + __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 - def __repr__(self): - return '<git.Blob "%s">' % self.sha + @property + def mime_type(self): + """ :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 = guess_type(self.path) + return guesses and guesses[0] or self.DEFAULT_MIME_TYPE |