MCPcopy Create free account
hub / github.com/RustPython/RustPython / USTimeZone

Class USTimeZone

Lib/test/datetimetester.py:5587–5627  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5585DSTEND = datetime(1, 10, 25, 1)
5586
5587class USTimeZone(tzinfo):
5588
5589 def __init__(self, hours, reprname, stdname, dstname):
5590 self.stdoffset = timedelta(hours=hours)
5591 self.reprname = reprname
5592 self.stdname = stdname
5593 self.dstname = dstname
5594
5595 def __repr__(self):
5596 return self.reprname
5597
5598 def tzname(self, dt):
5599 if self.dst(dt):
5600 return self.dstname
5601 else:
5602 return self.stdname
5603
5604 def utcoffset(self, dt):
5605 return self.stdoffset + self.dst(dt)
5606
5607 def dst(self, dt):
5608 if dt is None or dt.tzinfo is None:
5609 # An exception instead may be sensible here, in one or more of
5610 # the cases.
5611 return ZERO
5612 assert dt.tzinfo is self
5613
5614 # Find first Sunday in April.
5615 start = first_sunday_on_or_after(DSTSTART.replace(year=dt.year))
5616 assert start.weekday() == 6 and start.month == 4 and start.day <= 7
5617
5618 # Find last Sunday in October.
5619 end = first_sunday_on_or_after(DSTEND.replace(year=dt.year))
5620 assert end.weekday() == 6 and end.month == 10 and end.day >= 25
5621
5622 # Can't compare naive to aware objects, so strip the timezone from
5623 # dt first.
5624 if start <= dt.replace(tzinfo=None) < end:
5625 return HOUR
5626 else:
5627 return ZERO
5628
5629Eastern = USTimeZone(-5, "Eastern", "EST", "EDT")
5630Central = USTimeZone(-6, "Central", "CST", "CDT")

Callers 1

datetimetester.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected