diff options
author | Jim Rollenhagen <jim@jimrollenhagen.com> | 2019-09-26 09:43:27 -0400 |
---|---|---|
committer | Jim Rollenhagen <jim@jimrollenhagen.com> | 2019-09-26 09:43:27 -0400 |
commit | e9c6edfe510f4ed407f8d2d84b4b931a382b48b3 (patch) | |
tree | 94bbd6a34bcf09e99f7ae1be88b19960192d6adb /wsme/utils.py | |
parent | 1d73d6e50411ebc45fb96a6ed3c63ca91a500323 (diff) | |
download | wsme-master.tar.gz |
Diffstat (limited to 'wsme/utils.py')
-rw-r--r-- | wsme/utils.py | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/wsme/utils.py b/wsme/utils.py deleted file mode 100644 index e52b0ef..0000000 --- a/wsme/utils.py +++ /dev/null @@ -1,118 +0,0 @@ -import decimal -import datetime -import pytz -import re -from six.moves import builtins, http_client - -try: - import dateutil.parser -except ImportError: - dateutil = None # noqa - -date_re = r'(?P<year>-?\d{4,})-(?P<month>\d{2})-(?P<day>\d{2})' -time_re = r'(?P<hour>\d{2}):(?P<min>\d{2}):(?P<sec>\d{2})' + \ - r'(\.(?P<sec_frac>\d+))?' -tz_re = r'((?P<tz_sign>[+-])(?P<tz_hour>\d{2}):(?P<tz_min>\d{2}))' + \ - r'|(?P<tz_z>Z)' - -datetime_re = re.compile( - '%sT%s(%s)?' % (date_re, time_re, tz_re)) -date_re = re.compile(date_re) -time_re = re.compile('%s(%s)?' % (time_re, tz_re)) - - -if hasattr(builtins, '_'): - _ = builtins._ -else: - def _(s): - return s - - -def parse_isodate(value): - m = date_re.match(value) - if m is None: - raise ValueError("'%s' is not a legal date value" % (value)) - try: - return datetime.date( - int(m.group('year')), - int(m.group('month')), - int(m.group('day'))) - except ValueError: - raise ValueError("'%s' is a out-of-range date" % (value)) - - -def parse_isotime(value): - m = time_re.match(value) - if m is None: - raise ValueError("'%s' is not a legal time value" % (value)) - try: - ms = 0 - if m.group('sec_frac') is not None: - f = decimal.Decimal('0.' + m.group('sec_frac')) - f = str(f.quantize(decimal.Decimal('0.000001'))) - ms = int(f[2:]) - tz = _parse_tzparts(m.groupdict()) - return datetime.time( - int(m.group('hour')), - int(m.group('min')), - int(m.group('sec')), - ms, - tz) - except ValueError: - raise ValueError("'%s' is a out-of-range time" % (value)) - - -def parse_isodatetime(value): - if dateutil: - return dateutil.parser.parse(value) - m = datetime_re.match(value) - if m is None: - raise ValueError("'%s' is not a legal datetime value" % (value)) - try: - ms = 0 - if m.group('sec_frac') is not None: - f = decimal.Decimal('0.' + m.group('sec_frac')) - f = f.quantize(decimal.Decimal('0.000001')) - ms = int(str(f)[2:]) - tz = _parse_tzparts(m.groupdict()) - return datetime.datetime( - int(m.group('year')), - int(m.group('month')), - int(m.group('day')), - int(m.group('hour')), - int(m.group('min')), - int(m.group('sec')), - ms, - tz) - except ValueError: - raise ValueError("'%s' is a out-of-range datetime" % (value)) - - -def _parse_tzparts(parts): - if 'tz_z' in parts and parts['tz_z'] == 'Z': - return pytz.UTC - if 'tz_min' not in parts or not parts['tz_min']: - return None - - tz_minute_offset = (int(parts['tz_hour']) * 60 + int(parts['tz_min'])) - tz_multiplier = -1 if parts['tz_sign'] == '-' else 1 - - return pytz.FixedOffset(tz_multiplier * tz_minute_offset) - - -def is_valid_code(code_value): - """ - This function checks if incoming value in http response codes range. - """ - return code_value in http_client.responses - - -def is_client_error(code): - """ Checks client error code (RFC 2616).""" - return 400 <= code < 500 - - -try: - from collections import OrderedDict -except ImportError: - from ordereddict import OrderedDict # noqa |