diff env/lib/python3.7/site-packages/isodate/isotzinfo.py @ 5:9b1c78e6ba9c draft default tip

"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author shellac
date Mon, 01 Jun 2020 08:59:25 -0400
parents 79f47841a781
children
line wrap: on
line diff
--- a/env/lib/python3.7/site-packages/isodate/isotzinfo.py	Thu May 14 16:47:39 2020 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-##############################################################################
-# Copyright 2009, Gerhard Weis
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-#  * Redistributions of source code must retain the above copyright notice,
-#    this list of conditions and the following disclaimer.
-#  * Redistributions in binary form must reproduce the above copyright notice,
-#    this list of conditions and the following disclaimer in the documentation
-#    and/or other materials provided with the distribution.
-#  * Neither the name of the authors nor the names of its contributors
-#    may be used to endorse or promote products derived from this software
-#    without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT
-##############################################################################
-'''
-This module provides an ISO 8601:2004 time zone info parser.
-
-It offers a function to parse the time zone offset as specified by ISO 8601.
-'''
-import re
-
-from isodate.isoerror import ISO8601Error
-from isodate.tzinfo import UTC, FixedOffset, ZERO
-
-TZ_REGEX = r"(?P<tzname>(Z|(?P<tzsign>[+-])"\
-           r"(?P<tzhour>[0-9]{2})(:?(?P<tzmin>[0-9]{2}))?)?)"
-
-TZ_RE = re.compile(TZ_REGEX)
-
-
-def build_tzinfo(tzname, tzsign='+', tzhour=0, tzmin=0):
-    '''
-    create a tzinfo instance according to given parameters.
-
-    tzname:
-      'Z'       ... return UTC
-      '' | None ... return None
-      other     ... return FixedOffset
-    '''
-    if tzname is None or tzname == '':
-        return None
-    if tzname == 'Z':
-        return UTC
-    tzsign = ((tzsign == '-') and -1) or 1
-    return FixedOffset(tzsign * tzhour, tzsign * tzmin, tzname)
-
-
-def parse_tzinfo(tzstring):
-    '''
-    Parses ISO 8601 time zone designators to tzinfo objecs.
-
-    A time zone designator can be in the following format:
-              no designator indicates local time zone
-      Z       UTC
-      +-hhmm  basic hours and minutes
-      +-hh:mm extended hours and minutes
-      +-hh    hours
-    '''
-    match = TZ_RE.match(tzstring)
-    if match:
-        groups = match.groupdict()
-        return build_tzinfo(groups['tzname'], groups['tzsign'],
-                            int(groups['tzhour'] or 0),
-                            int(groups['tzmin'] or 0))
-    raise ISO8601Error('%s not a valid time zone info' % tzstring)
-
-
-def tz_isoformat(dt, format='%Z'):
-    '''
-    return time zone offset ISO 8601 formatted.
-    The various ISO formats can be chosen with the format parameter.
-
-    if tzinfo is None returns ''
-    if tzinfo is UTC returns 'Z'
-    else the offset is rendered to the given format.
-    format:
-        %h ... +-HH
-        %z ... +-HHMM
-        %Z ... +-HH:MM
-    '''
-    tzinfo = dt.tzinfo
-    if (tzinfo is None) or (tzinfo.utcoffset(dt) is None):
-        return ''
-    if tzinfo.utcoffset(dt) == ZERO and tzinfo.dst(dt) == ZERO:
-        return 'Z'
-    tdelta = tzinfo.utcoffset(dt)
-    seconds = tdelta.days * 24 * 60 * 60 + tdelta.seconds
-    sign = ((seconds < 0) and '-') or '+'
-    seconds = abs(seconds)
-    minutes, seconds = divmod(seconds, 60)
-    hours, minutes = divmod(minutes, 60)
-    if hours > 99:
-        raise OverflowError('can not handle differences > 99 hours')
-    if format == '%Z':
-        return '%s%02d:%02d' % (sign, hours, minutes)
-    elif format == '%z':
-        return '%s%02d%02d' % (sign, hours, minutes)
-    elif format == '%h':
-        return '%s%02d' % (sign, hours)
-    raise ValueError('unknown format string "%s"' % format)