aboutsummaryrefslogtreecommitdiffhomepage
path: root/gbp/git/__init__.py
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2011-11-15 19:30:03 +0100
committerGuido Günther <agx@sigxcpu.org>2011-11-20 14:24:24 +0100
commite7bbada49300f987ae129147fffe244d0d7a4cb6 (patch)
tree16c7ae029fc61c541eb21a2a2f2da37432ffedff /gbp/git/__init__.py
parent917a496fd8ffc7e857571ca747df01051ef12e35 (diff)
Move GitModifier class to separate file
and introduce a new base exception for Git related errors.
Diffstat (limited to 'gbp/git/__init__.py')
-rw-r--r--gbp/git/__init__.py55
1 files changed, 4 insertions, 51 deletions
diff --git a/gbp/git/__init__.py b/gbp/git/__init__.py
index 9b461d1c..2aef0d5a 100644
--- a/gbp/git/__init__.py
+++ b/gbp/git/__init__.py
@@ -25,60 +25,13 @@ import gbp.log as log
import dateutil.parser
import calendar
-class GitRepositoryError(Exception):
+from gbp.git.modifier import GitModifier
+from gbp.git.errors import GitError
+
+class GitRepositoryError(GitError):
"""Exception thrown by L{GitRepository}"""
pass
-
-class GitModifier(object):
- """Stores authorship/comitter information"""
- def __init__(self, name=None, email=None, date=None):
- self.name = name
- self.email = email
- self.date = date
-
- def _get_env(self, who):
- """Get author or comitter information as env var dictionary"""
- who = who.upper()
- if who not in ['AUTHOR', 'COMMITTER']:
- raise GitRepository("Neither comitter nor author")
-
- extra_env = {}
- if self.name:
- extra_env['GIT_%s_NAME' % who] = self.name
- if self.email:
- extra_env['GIT_%s_EMAIL' % who] = self.email
- if self.date:
- extra_env['GIT_%s_DATE' % who] = self.date
- return extra_env
-
- def get_author_env(self):
- """
- Get env vars for authorship information
-
- >>> g = GitModifier("foo", "bar")
- >>> g.get_author_env()
- {'GIT_AUTHOR_EMAIL': 'bar', 'GIT_AUTHOR_NAME': 'foo'}
-
- @return: Author information suitable to use as environment variables
- @rtype: C{dict}
- """
- return self._get_env('author')
-
- def get_committer_env(self):
- """
- Get env vars for comitter information
-
- >>> g = GitModifier("foo", "bar")
- >>> g.get_committer_env()
- {'GIT_COMMITTER_NAME': 'foo', 'GIT_COMMITTER_EMAIL': 'bar'}
-
- @return: Commiter information suitable to use as environment variables
- @rtype: C{dict}
- """
- return self._get_env('committer')
-
-
class GitCommit(object):
"""A git commit"""
sha1_re = re.compile(r'[0-9a-f]{40}$')