Lines Matching refs:self

102     def key(self):
103 return self._key
105 def utcoffset(self, dt):
106 return self._find_trans(dt).utcoff
108 def dst(self, dt):
109 return self._find_trans(dt).dstoff
111 def tzname(self, dt):
112 return self._find_trans(dt).tzname
114 def fromutc(self, dt):
119 if dt.tzinfo is not self:
120 raise ValueError("dt.tzinfo is not self")
122 timestamp = self._get_local_timestamp(dt)
123 num_trans = len(self._trans_utc)
125 if num_trans >= 1 and timestamp < self._trans_utc[0]:
126 tti = self._tti_before
129 num_trans == 0 or timestamp > self._trans_utc[-1]
130 ) and not isinstance(self._tz_after, _ttinfo):
131 tti, fold = self._tz_after.get_trans_info_fromutc(
135 tti = self._tz_after
138 idx = bisect.bisect_right(self._trans_utc, timestamp)
140 if num_trans > 1 and timestamp >= self._trans_utc[1]:
141 tti_prev, tti = self._ttinfos[idx - 2 : idx]
142 elif timestamp > self._trans_utc[-1]:
143 tti_prev = self._ttinfos[-1]
144 tti = self._tz_after
146 tti_prev = self._tti_before
147 tti = self._ttinfos[0]
151 fold = shift.total_seconds() > timestamp - self._trans_utc[idx - 1]
158 def _find_trans(self, dt):
160 if self._fixed_offset:
161 return self._tz_after
165 ts = self._get_local_timestamp(dt)
167 lt = self._trans_local[dt.fold]
172 return self._tti_before
174 if isinstance(self._tz_after, _TZStr):
175 return self._tz_after.get_trans_info(ts, dt.year, dt.fold)
177 return self._tz_after
183 return self._ttinfos[idx]
185 def _get_local_timestamp(self, dt):
193 def __str__(self):
194 if self._key is not None:
195 return f"{self._key}"
197 return repr(self)
199 def __repr__(self):
200 if self._key is not None:
201 return f"{self.__class__.__name__}(key={self._key!r})"
203 return f"{self.__class__.__name__}.from_file({self._file_repr})"
205 def __reduce__(self):
206 return (self.__class__._unpickle, (self._key, self._from_cache))
208 def _file_reduce(self):
222 def _find_tzfile(self, key):
225 def _load_file(self, fobj):
232 dstoff = self._utcoff_to_dstoff(trans_idx, utcoff, isdst)
235 trans_local = self._ts_to_local(trans_idx, trans_utc, utcoff)
245 self._trans_utc = trans_utc
246 self._trans_local = trans_local
247 self._ttinfos = [_ttinfo_list[idx] for idx in trans_idx]
252 self._tti_before = _ttinfo_list[i]
255 if self._ttinfos:
256 self._tti_before = self._ttinfos[0]
258 self._tti_before = None
262 self._tz_after = _parse_tz_str(tz_str.decode())
264 if not self._ttinfos and not _ttinfo_list:
267 if self._ttinfos:
268 self._tz_after = self._ttinfos[-1]
270 self._tz_after = _ttinfo_list[-1]
291 if len(_ttinfo_list) > 1 or not isinstance(self._tz_after, _ttinfo):
292 self._fixed_offset = False
294 self._fixed_offset = True
296 self._fixed_offset = _ttinfo_list[0] == self._tz_after
399 def __init__(self, utcoff, dstoff, tzname):
400 self.utcoff = utcoff
401 self.dstoff = dstoff
402 self.tzname = tzname
404 def __eq__(self, other):
406 self.utcoff == other.utcoff
407 and self.dstoff == other.dstoff
408 and self.tzname == other.tzname
411 def __repr__(self): # pragma: nocover
413 f"{self.__class__.__name__}"
414 + f"({self.utcoff}, {self.dstoff}, {self.tzname})"
433 self, std_abbr, std_offset, dst_abbr, dst_offset, start=None, end=None
435 self.dst_diff = dst_offset - std_offset
437 self.std = _ttinfo(
441 self.start = start
442 self.end = end
445 delta = _load_timedelta(self.dst_diff)
446 self.dst = _ttinfo(utcoff=dst_offset, dstoff=delta, tzname=dst_abbr)
453 self.get_trans_info = self._get_trans_info
454 self.get_trans_info_fromutc = self._get_trans_info_fromutc
456 def transitions(self, year):
457 start = self.start.year_to_epoch(year)
458 end = self.end.year_to_epoch(year)
461 def _get_trans_info(self, ts, year, fold):
463 start, end = self.transitions(year)
473 if fold == (self.dst_diff >= 0):
474 end -= self.dst_diff
476 start += self.dst_diff
483 return self.dst if isdst else self.std
485 def _get_trans_info_fromutc(self, ts, year):
486 start, end = self.transitions(year)
487 start -= self.std.utcoff.total_seconds()
488 end -= self.dst.utcoff.total_seconds()
498 if self.dst_diff > 0:
500 ambig_end = end + self.dst_diff
503 ambig_end = start - self.dst_diff
507 return (self.dst if isdst else self.std, fold)
519 def __init__(self, d, julian, hour=2, minute=0, second=0):
524 self.d = d
525 self.julian = julian
526 self.hour = hour
527 self.minute = minute
528 self.second = second
530 def year_to_epoch(self, year):
533 d = self.d
534 if self.julian and d >= 59 and calendar.isleap(year):
538 epoch += self.hour * 3600 + self.minute * 60 + self.second
562 def __init__(self, m, w, d, hour=2, minute=0, second=0):
572 self.m = m
573 self.w = w
574 self.d = d
575 self.hour = hour
576 self.minute = minute
577 self.second = second
589 def year_to_epoch(self, year):
596 first_day, days_in_month = calendar.monthrange(year, self.m)
605 month_day = (self.d - (first_day + 1)) % 7 + 1
609 month_day += (self.w - 1) * 7
617 ordinal = self._ymd2ord(year, self.m, month_day)
619 epoch += self.hour * 3600 + self.minute * 60 + self.second