diff options
Diffstat (limited to 'iso8601/iso8601.py')
-rw-r--r-- | iso8601/iso8601.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/iso8601/iso8601.py b/iso8601/iso8601.py index f923938..38266c3 100644 --- a/iso8601/iso8601.py +++ b/iso8601/iso8601.py @@ -9,10 +9,17 @@ datetime.datetime(2007, 1, 25, 12, 0, tzinfo=<iso8601.iso8601.Utc ...>) """ from datetime import datetime, timedelta, tzinfo +import sys import re __all__ = ["parse_date", "ParseError"] +if sys.version_info >= (3, 0, 0): + _basestring = str +else: + _basestring = basestring + + # Adapted from http://delete.me.uk/2005/03/iso8601.html ISO8601_REGEX = re.compile(r"(?P<year>[0-9]{4})(-(?P<month>[0-9]{1,2})(-(?P<day>[0-9]{1,2})" r"((?P<separator>.)(?P<hour>[0-9]{2}):(?P<minute>[0-9]{2})(:(?P<second>[0-9]{2})(\.(?P<fraction>[0-9]+))?)?" @@ -86,7 +93,7 @@ def parse_date(datestring, default_timezone=UTC): default timezone specified in default_timezone is used. This is UTC by default. """ - if not isinstance(datestring, basestring): + if not isinstance(datestring, _basestring): raise ParseError("Expecting a string %r" % datestring) m = ISO8601_REGEX.match(datestring) if not m: |