aboutsummaryrefslogtreecommitdiff
path: root/git/objects/tag.py
diff options
context:
space:
mode:
Diffstat (limited to 'git/objects/tag.py')
-rw-r--r--git/objects/tag.py35
1 files changed, 17 insertions, 18 deletions
diff --git a/git/objects/tag.py b/git/objects/tag.py
index d0b5a11a..3fd7a4d4 100644
--- a/git/objects/tag.py
+++ b/git/objects/tag.py
@@ -13,26 +13,28 @@ from util import (
__all__ = ("TagObject", )
+
class TagObject(base.Object):
+
"""Non-Lightweight tag carrying additional information about an object we are pointing to."""
type = "tag"
- __slots__ = ( "object", "tag", "tagger", "tagged_date", "tagger_tz_offset", "message" )
-
- def __init__(self, repo, binsha, object=None, tag=None,
+ __slots__ = ("object", "tag", "tagger", "tagged_date", "tagger_tz_offset", "message")
+
+ def __init__(self, repo, binsha, object=None, tag=None,
tagger=None, tagged_date=None, tagger_tz_offset=None, message=None):
"""Initialize a tag object with additional data
-
+
:param repo: repository this object is located in
:param binsha: 20 byte SHA1
:param object: Object instance of object we are pointing to
:param tag: name of this tag
:param tagger: Actor identifying the tagger
:param tagged_date: int_seconds_since_epoch
- is the DateTime of the tag creation - use time.gmtime to convert
+ is the DateTime of the tag creation - use time.gmtime to convert
it into a different format
- :param tagged_tz_offset: int_seconds_west_of_utc is the timezone that the
+ :param tagged_tz_offset: int_seconds_west_of_utc is the timezone that the
authored_date is in, in a format similar to time.altzone"""
- super(TagObject, self).__init__(repo, binsha )
+ super(TagObject, self).__init__(repo, binsha)
if object is not None:
self.object = object
if tag is not None:
@@ -45,24 +47,24 @@ class TagObject(base.Object):
self.tagger_tz_offset = tagger_tz_offset
if message is not None:
self.message = message
-
+
def _set_cache_(self, attr):
"""Cache all our attributes at once"""
if attr in TagObject.__slots__:
ostream = self.repo.odb.stream(self.binsha)
lines = ostream.read().splitlines()
-
+
obj, hexsha = lines[0].split(" ") # object <hexsha>
- type_token, type_name = lines[1].split(" ") # type <type_name>
+ type_token, type_name = lines[1].split(" ") # type <type_name>
self.object = get_object_type_by_name(type_name)(self.repo, hex_to_bin(hexsha))
-
+
self.tag = lines[2][4:] # tag <tag name>
-
- tagger_info = lines[3]# tagger <actor> <date>
+
+ tagger_info = lines[3] # tagger <actor> <date>
self.tagger, self.tagged_date, self.tagger_tz_offset = parse_actor_and_date(tagger_info)
-
+
# line 4 empty - it could mark the beginning of the next header
- # in case there really is no message, it would not exist. Otherwise
+ # in case there really is no message, it would not exist. Otherwise
# a newline separates header from message
if len(lines) > 5:
self.message = "\n".join(lines[5:])
@@ -71,6 +73,3 @@ class TagObject(base.Object):
# END check our attributes
else:
super(TagObject, self)._set_cache_(attr)
-
-
-