summaryrefslogtreecommitdiff
path: root/lib/python2.7/site-packages/django/utils/dateparse.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/django/utils/dateparse.py')
-rw-r--r--lib/python2.7/site-packages/django/utils/dateparse.py82
1 files changed, 0 insertions, 82 deletions
diff --git a/lib/python2.7/site-packages/django/utils/dateparse.py b/lib/python2.7/site-packages/django/utils/dateparse.py
deleted file mode 100644
index b4bd559..0000000
--- a/lib/python2.7/site-packages/django/utils/dateparse.py
+++ /dev/null
@@ -1,82 +0,0 @@
-"""Functions to parse datetime objects."""
-
-# We're using regular expressions rather than time.strptime because:
-# - They provide both validation and parsing.
-# - They're more flexible for datetimes.
-# - The date/datetime/time constructors produce friendlier error messages.
-
-import datetime
-import re
-from django.utils import six
-from django.utils.timezone import utc
-from django.utils.tzinfo import FixedOffset
-
-date_re = re.compile(
- r'(?P<year>\d{4})-(?P<month>\d{1,2})-(?P<day>\d{1,2})$'
-)
-
-time_re = re.compile(
- r'(?P<hour>\d{1,2}):(?P<minute>\d{1,2})'
- r'(?::(?P<second>\d{1,2})(?:\.(?P<microsecond>\d{1,6})\d{0,6})?)?'
-)
-
-datetime_re = re.compile(
- r'(?P<year>\d{4})-(?P<month>\d{1,2})-(?P<day>\d{1,2})'
- r'[T ](?P<hour>\d{1,2}):(?P<minute>\d{1,2})'
- r'(?::(?P<second>\d{1,2})(?:\.(?P<microsecond>\d{1,6})\d{0,6})?)?'
- r'(?P<tzinfo>Z|[+-]\d{2}:?\d{2})?$'
-)
-
-def parse_date(value):
- """Parses a string and return a datetime.date.
-
- Raises ValueError if the input is well formatted but not a valid date.
- Returns None if the input isn't well formatted.
- """
- match = date_re.match(value)
- if match:
- kw = dict((k, int(v)) for k, v in six.iteritems(match.groupdict()))
- return datetime.date(**kw)
-
-def parse_time(value):
- """Parses a string and return a datetime.time.
-
- This function doesn't support time zone offsets.
-
- Raises ValueError if the input is well formatted but not a valid time.
- Returns None if the input isn't well formatted, in particular if it
- contains an offset.
- """
- match = time_re.match(value)
- if match:
- kw = match.groupdict()
- if kw['microsecond']:
- kw['microsecond'] = kw['microsecond'].ljust(6, '0')
- kw = dict((k, int(v)) for k, v in six.iteritems(kw) if v is not None)
- return datetime.time(**kw)
-
-def parse_datetime(value):
- """Parses a string and return a datetime.datetime.
-
- This function supports time zone offsets. When the input contains one,
- the output uses an instance of FixedOffset as tzinfo.
-
- Raises ValueError if the input is well formatted but not a valid datetime.
- Returns None if the input isn't well formatted.
- """
- match = datetime_re.match(value)
- if match:
- kw = match.groupdict()
- if kw['microsecond']:
- kw['microsecond'] = kw['microsecond'].ljust(6, '0')
- tzinfo = kw.pop('tzinfo')
- if tzinfo == 'Z':
- tzinfo = utc
- elif tzinfo is not None:
- offset = 60 * int(tzinfo[1:3]) + int(tzinfo[-2:])
- if tzinfo[0] == '-':
- offset = -offset
- tzinfo = FixedOffset(offset)
- kw = dict((k, int(v)) for k, v in six.iteritems(kw) if v is not None)
- kw['tzinfo'] = tzinfo
- return datetime.datetime(**kw)