kopia lustrzana https://github.com/collective/icalendar
commit
8f23cf8f17
|
@ -35,6 +35,8 @@ Breaking changes:
|
|||
|
||||
- Replaced ``pkg_resources.get_distribution`` with ``importlib.metadata`` in
|
||||
``docs/conf.py`` to allow building docs on Python 3.12.
|
||||
- Remove untested and broken ``LocalTimezone`` and ``FixedOffset`` tzinfo
|
||||
sub-classes, see `Issue 67 <https://github.com/collective/icalendar/issues/67>`_
|
||||
|
||||
New features:
|
||||
|
||||
|
|
|
@ -34,11 +34,6 @@ from icalendar.prop import (
|
|||
vUTCOffset,
|
||||
TypesFactory,
|
||||
)
|
||||
# useful tzinfo subclasses
|
||||
from icalendar.prop import (
|
||||
FixedOffset,
|
||||
LocalTimezone,
|
||||
)
|
||||
# Parameters and helper methods for splitting and joining string with escaped
|
||||
# chars.
|
||||
from icalendar.parser import (
|
||||
|
|
|
@ -40,12 +40,6 @@ from datetime import datetime
|
|||
from datetime import time
|
||||
from datetime import timedelta
|
||||
from datetime import tzinfo
|
||||
|
||||
try:
|
||||
from dateutil.tz import tzutc
|
||||
except ImportError:
|
||||
tzutc = None
|
||||
|
||||
from icalendar.caselessdict import CaselessDict
|
||||
from icalendar.parser import Parameters
|
||||
from icalendar.parser import escape_char
|
||||
|
@ -70,19 +64,6 @@ DURATION_REGEX = re.compile(r'([-+]?)P(?:(\d+)W)?(?:(\d+)D)?'
|
|||
WEEKDAY_RULE = re.compile(r'(?P<signal>[+-]?)(?P<relative>[\d]{0,2})'
|
||||
r'(?P<weekday>[\w]{2})$')
|
||||
|
||||
####################################################
|
||||
# handy tzinfo classes you can use.
|
||||
#
|
||||
|
||||
ZERO = timedelta(0)
|
||||
HOUR = timedelta(hours=1)
|
||||
STDOFFSET = timedelta(seconds=-_time.timezone)
|
||||
if _time.daylight:
|
||||
DSTOFFSET = timedelta(seconds=-_time.altzone)
|
||||
else:
|
||||
DSTOFFSET = STDOFFSET
|
||||
DSTDIFF = DSTOFFSET - STDOFFSET
|
||||
|
||||
|
||||
def tzid_from_dt(dt: datetime) -> Optional[str]:
|
||||
"""Retrieve the timezone id from the datetime object."""
|
||||
|
@ -98,46 +79,6 @@ def tzid_from_dt(dt: datetime) -> Optional[str]:
|
|||
return tzid
|
||||
|
||||
|
||||
class FixedOffset(tzinfo):
|
||||
"""Fixed offset in minutes east from UTC.
|
||||
"""
|
||||
|
||||
def __init__(self, offset, name):
|
||||
self.__offset = timedelta(minutes=offset)
|
||||
self.__name = name
|
||||
|
||||
def utcoffset(self, dt):
|
||||
return self.__offset
|
||||
|
||||
def tzname(self, dt):
|
||||
return self.__name
|
||||
|
||||
def dst(self, dt):
|
||||
return ZERO
|
||||
|
||||
|
||||
class LocalTimezone(tzinfo):
|
||||
"""Timezone of the machine where the code is running.
|
||||
"""
|
||||
|
||||
def utcoffset(self, dt):
|
||||
return DSTOFFSET if self._isdst(dt) else STDOFFSET
|
||||
|
||||
def dst(self, dt):
|
||||
return DSTDIFF if self._isdst(dt) else ZERO
|
||||
|
||||
def tzname(self, dt):
|
||||
return _time.tzname[self._isdst(dt)]
|
||||
|
||||
def _isdst(self, dt):
|
||||
tt = (dt.year, dt.month, dt.day,
|
||||
dt.hour, dt.minute, dt.second,
|
||||
dt.weekday(), 0, -1)
|
||||
stamp = _time.mktime(tt)
|
||||
tt = _time.localtime(stamp)
|
||||
return tt.tm_isdst > 0
|
||||
|
||||
|
||||
class vBinary:
|
||||
"""Binary property values are base 64 encoded.
|
||||
"""
|
||||
|
|
Ładowanie…
Reference in New Issue