From: Ed Bartosh Date: Wed, 30 May 2012 06:02:55 +0000 (+0300) Subject: Reimplemented rfc822 date parsing without using dateutil to get rid of X-Git-Tag: release/20120807~38^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c3f41c2ad33ebf1ccee1af5aa8ba5ca68f981460;p=tools%2Fgit-buildpackage.git Reimplemented rfc822 date parsing without using dateutil to get rid of dependency to dateutil Change-Id: Ib0676db9bfa535b25f5c9f9a69e79c001013527f --- diff --git a/debian/control b/debian/control index 6d434195..f1a275e6 100644 --- a/debian/control +++ b/debian/control @@ -3,7 +3,7 @@ Section: vcs Priority: optional Maintainer: Guido Günther Build-Depends: debhelper (>= 7.0.50~), python (>> 2.6.6-3~), - pychecker, gtk-doc-tools, sgml2x, docbook-utils, jade, python-dateutil, python-nose, + pychecker, gtk-doc-tools, sgml2x, docbook-utils, jade, python-nose, bash-completion, perl, python-epydoc, python-coverage, python-setuptools, python-rpm, # For the testsuite git, bzip2, unzip, pristine-tar @@ -16,7 +16,7 @@ X-Python-Version: >= 2.6 Package: git-buildpackage-common Architecture: all -Depends: ${python:Depends}, ${shlibs:Depends}, ${misc:Depends}, git, python-dateutil +Depends: ${python:Depends}, ${shlibs:Depends}, ${misc:Depends}, git Recommends: pristine-tar (>= 0.5) Suggests: python-notify, unzip Description: Suite to help with packaging in Git repositories diff --git a/gbp/git/__init__.py b/gbp/git/__init__.py index cf15beb6..31c5a15c 100644 --- a/gbp/git/__init__.py +++ b/gbp/git/__init__.py @@ -17,7 +17,8 @@ """Accessing Git from python""" import calendar -import dateutil.parser +import datetime +import rfc822 from gbp.git.modifier import GitModifier from gbp.git.commit import GitCommit @@ -27,6 +28,23 @@ from gbp.git.fastimport import FastImport from gbp.git.args import GitArgs +class FixedOffset(datetime.tzinfo): + """Fixed offset in seconds east from UTC.""" + + ZERO = datetime.timedelta(0) + + def __init__(self, offset): + datetime.tzinfo.__init__(self) + self._offset = datetime.timedelta(seconds=offset) + + def utcoffset(self, dtime): + return self._offset + self.dst(dtime) + + def dst(self, dtime): + assert dtime.tzinfo is self + return self.ZERO + + def rfc822_date_to_git(rfc822_date): """Parse a date in RFC822 format, and convert to a 'seconds tz' C{str}ing. @@ -37,9 +55,10 @@ def rfc822_date_to_git(rfc822_date): >>> rfc822_date_to_git('Sat, 5 Apr 2008 17:01:32 +0200') '1207407692 +0200' """ - d = dateutil.parser.parse(rfc822_date) - seconds = calendar.timegm(d.utctimetuple()) - tz = d.strftime("%z") - return '%d %s' % (seconds, tz) + parsed = rfc822.parsedate_tz(rfc822_date) + date = datetime.datetime(*parsed[:6], tzinfo=FixedOffset(parsed[-1])) + seconds = calendar.timegm(date.utctimetuple()) + tzone = date.strftime("%z") + return '%d %s' % (seconds, tzone) # vim:et:ts=4:sw=4:et:sts=4:ai:set list listchars=tab\:»·,trail\:·: diff --git a/packaging/git-buildpackage.spec b/packaging/git-buildpackage.spec index 21cc3c2e..dc3bd4b2 100644 --- a/packaging/git-buildpackage.spec +++ b/packaging/git-buildpackage.spec @@ -29,7 +29,6 @@ Summary: Common files for git-buildpackage debian and rpm tools Group: Development/Tools/Building Requires: git-core Requires: python-base -Requires: python-dateutil %description common Common files and documentation, used by both git-buildpackage debian and rpm tools