diff options
author | Guido Günther <agx@sigxcpu.org> | 2011-11-15 19:59:13 +0100 |
---|---|---|
committer | Guido Günther <agx@sigxcpu.org> | 2011-11-20 14:24:24 +0100 |
commit | e87e62fc4969cb7d21e5fb07f7da505f48355e05 (patch) | |
tree | 9d763e9e33af5963631a9468b2de3193ced2b3a5 /gbp/git/commit.py | |
parent | e7bbada49300f987ae129147fffe244d0d7a4cb6 (diff) |
Move GitCommit class into separate file
Diffstat (limited to 'gbp/git/commit.py')
-rw-r--r-- | gbp/git/commit.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/gbp/git/commit.py b/gbp/git/commit.py new file mode 100644 index 00000000..699f1a21 --- /dev/null +++ b/gbp/git/commit.py @@ -0,0 +1,48 @@ +# vim: set fileencoding=utf-8 : +# +# (C) 2011 Guido Guenther <agx@sigxcpu.org> +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +"""Git commit class and helpers""" + +import re + +from gbp.git.errors import GitError + +class GitCommit(object): + """A git commit""" + sha1_re = re.compile(r'[0-9a-f]{40}$') + + @staticmethod + def is_sha1(value): + """ + Is I{value} a valid 40 digit SHA1? + + >>> GitCommit.is_sha1('asdf') + False + >>> GitCommit.is_sha1('deadbeef') + False + >>> GitCommit.is_sha1('17975594b2d42f2a3d144a9678fdf2c2c1dd96a0') + True + >>> GitCommit.is_sha1('17975594b2d42f2a3d144a9678fdf2c2c1dd96a0toolong') + False + + @param value: the value to check + @type value: C{str} + @return: C{True} if I{value} is a 40 digit SHA1, C{False} otherwise. + @rtype: C{bool} + """ + return True if GitCommit.sha1_re.match(value) else False + + |