def start(self, time): q = self.get_quarter(time) if q == 0: m = 13 else: m = (q - 1) * 3 + 1 return BosparanianDateTime.from_ymd(BosparanianDateTime.from_time(time).year, m, 1).to_time()
def move_period_num_months(period, num): try: delta = num years = abs(delta) / 13 bosparanian_start = BosparanianDateTime.from_time(period.start_time) bosparanian_end = BosparanianDateTime.from_time(period.end_time) if num < 0: years = -years delta = delta - 13 * years if delta < 0: start_month = bosparanian_start.month + 13 + delta end_month = bosparanian_end.month + 13 + delta if start_month > 13: start_month -= 13 end_month -= 13 if start_month > bosparanian_start.month: years -= 1 else: start_month = bosparanian_start.month + delta end_month = bosparanian_start.month + delta if start_month > 13: start_month -= 13 end_month -= 13 years += 1 start_year = bosparanian_start.year + years end_year = bosparanian_start.year + years start_time = bosparanian_start.replace(year=start_year, month=start_month) end_time = bosparanian_end.replace(year=end_year, month=end_month) return TimePeriod(start_time.to_time(), end_time.to_time()) except ValueError: return None
def navigate(tp): start = BosparanianDateTime.from_time(curret_period.start_time) end = BosparanianDateTime.from_time(curret_period.end_time) start_months = start.year * 13 + start.month end_months = end.year * 13 + end.month month_diff = end_months - start_months month_delta = month_diff * direction new_start_year, new_start_month = _months_to_year_and_month( start_months + month_delta) new_end_year, new_end_month = _months_to_year_and_month(end_months + month_delta) try: new_start = start.replace(year=new_start_year, month=new_start_month) new_end = end.replace(year=new_end_year, month=new_end_month) start = new_start.to_time() end = new_end.to_time() if end > BosparanianTimeType().get_max_time(): raise ValueError() if start < BosparanianTimeType().get_min_time(): raise ValueError() except ValueError: if direction < 0: raise TimeOutOfRangeLeftError() else: raise TimeOutOfRangeRightError() return tp.update(start, end)
def move_period_num_months(period, num): try: delta = num years = abs(delta) / 13 bosparanian_start = BosparanianDateTime.from_time(period.start_time) bosparanian_end = BosparanianDateTime.from_time(period.end_time) if num < 0: years = -years delta = delta - 13 * years if delta < 0: start_month = bosparanian_start.month + 13 + delta end_month = bosparanian_end.month + 13 + delta if start_month > 13: start_month -= 13 end_month -= 13 if start_month > bosparanian_start.month: years -= 1 else: start_month = bosparanian_start.month + delta end_month = bosparanian_start.month + delta if start_month > 13: start_month -= 13 end_month -= 13 years += 1 start_year = bosparanian_start.year + years end_year = bosparanian_start.year + years start_time = bosparanian_start.replace(year=start_year, month=start_month) end_time = bosparanian_end.replace(year=end_year, month=end_month) return TimePeriod(start_time.to_time(), end_time.to_time()) except ValueError: return None
def fit_decade_fn(main_frame, current_period, navigation_fn): mean = BosparanianDateTime.from_time(current_period.mean_time()) start = BosparanianDateTime.from_ymd(int(mean.year / 10) * 10, 1, 1).to_time() end = BosparanianDateTime.from_ymd(int(mean.year / 10) * 10 + 10, 1, 1).to_time() navigation_fn(lambda tp: tp.update(start, end))
def set_value(self, time): if time is None: time = self.now_fn() self.date_picker.set_value( BosparanianDateTime.from_time(time).to_date_tuple()) self.time_picker.set_value( BosparanianDateTime.from_time(time).to_time_tuple())
def start(self, time): q = self.get_quarter(time) if q == 0: m = 13 else: m = (q - 1) * 3 + 1 return BosparanianDateTime.from_ymd( BosparanianDateTime.from_time(time).year, m, 1).to_time()
def increment_day(date): year, month, day = date time = BosparanianDateTime.from_ymd(year, month, day).to_time() if time < BosparanianTimeType().get_max_time( ) - BosparanianDelta.from_days(1): return BosparanianDateTime.from_time( time + BosparanianDelta.from_days(1)).to_date_tuple() return date
def _whole_number_of_months(period): start, end = BosparanianDateTime.from_time(period.start_time), BosparanianDateTime.from_time(period.end_time) start_months = start.year * 13 + start.month end_months = end.year * 13 + end.month month_diff = end_months - start_months return (start.is_first_of_month() and end.is_first_of_month() and month_diff > 0)
def _whole_number_of_months(period): start, end = BosparanianDateTime.from_time( period.start_time), BosparanianDateTime.from_time(period.end_time) start_months = start.year * 13 + start.month end_months = end.year * 13 + end.month month_diff = end_months - start_months return (start.is_first_of_month() and end.is_first_of_month() and month_diff > 0)
def fit_month_fn(main_frame, current_period, navigation_fn): mean = BosparanianDateTime.from_time(current_period.mean_time()) start = BosparanianDateTime.from_ymd(mean.year, mean.month, 1).to_time() if mean.month == 13: end = BosparanianDateTime.from_ymd(mean.year + 1, 1, 1).to_time() else: end = BosparanianDateTime.from_ymd(mean.year, mean.month + 1, 1).to_time() navigation_fn(lambda tp: tp.update(start, end))
def label(self, time, major=False): if major: first_weekday = self.start(time) next_first_weekday = self.increment(first_weekday) last_weekday = next_first_weekday - BosparanianDelta.from_days(1) range_string = self._time_range_string(first_weekday, last_weekday) return (_("Week") + " %s (%s)") % (BosparanianDateTime.from_time(time).week_number, range_string) return _("Week") + " %s" % BosparanianDateTime.from_time(time).week_number
def fit_week_fn(main_frame, current_period, navigation_fn): mean = BosparanianDateTime.from_time(current_period.mean_time()) start = BosparanianDateTime.from_ymd(mean.year, mean.month, mean.day).to_time() weekday = BosparanianTimeType().get_day_of_week(start) start = start - BosparanianDelta.from_days(weekday) if not main_frame.week_starts_on_monday(): start = start - BosparanianDelta.from_days(1) end = start + BosparanianDelta.from_days(7) navigation_fn(lambda tp: tp.update(start, end))
def fit_century_fn(main_frame, current_period, navigation_fn): mean = BosparanianDateTime.from_time(current_period.mean_time()) if mean.year > get_century_max_year(): year = get_century_max_year() else: year = max(get_min_year_containing_praios_1(), int(mean.year / 100) * 100) start = BosparanianDateTime.from_ymd(year, 1, 1).to_time() end = BosparanianDateTime.from_ymd(year + 100, 1, 1).to_time() navigation_fn(lambda tp: tp.update(start, end))
def fit_month_fn(main_frame, current_period, navigation_fn): mean = BosparanianDateTime.from_time(current_period.mean_time()) start = BosparanianDateTime.from_ymd(mean.year, mean.month, 1).to_time() if mean.month == 13: end = BosparanianDateTime.from_ymd(mean.year + 1, 1, 1).to_time() else: end = BosparanianDateTime.from_ymd(mean.year, mean.month + 1, 1).to_time() navigation_fn(lambda tp: tp.update(start, end))
def label(self, time, major=False): if major: first_weekday = self.start(time) next_first_weekday = self.increment(first_weekday) last_weekday = next_first_weekday - BosparanianDelta.from_days(1) range_string = self._time_range_string(first_weekday, last_weekday) return (_("Week") + " %s (%s)") % ( BosparanianDateTime.from_time(time).week_number, range_string) return _( "Week") + " %s" % BosparanianDateTime.from_time(time).week_number
def label(self, time, major=False): day_of_week = BosparanianTimeType().get_day_of_week(time) if major: time = BosparanianDateTime.from_time(time) return "%s %s %s %s" % ( bosp_abbreviated_name_of_weekday(day_of_week), time.day, bosp_abbreviated_name_of_month( time.month), format_year(time.year)) return (bosp_abbreviated_name_of_weekday(day_of_week) + " %s" % BosparanianDateTime.from_time(time).day)
def fit_century_fn(main_frame, current_period, navigation_fn): mean = BosparanianDateTime.from_time(current_period.mean_time()) if mean.year > get_century_max_year(): year = get_century_max_year() else: year = max(get_min_year_containing_praios_1(), int(mean.year / 100) * 100) start = BosparanianDateTime.from_ymd(year, 1, 1).to_time() end = BosparanianDateTime.from_ymd(year + 100, 1, 1).to_time() navigation_fn(lambda tp: tp.update(start, end))
def move_period_num_years(period, num): try: delta = num start_year = BosparanianDateTime.from_time(period.start_time).year end_year = BosparanianDateTime.from_time(period.end_time).year start_time = BosparanianDateTime.from_time(period.start_time).replace(year=start_year + delta) end_time = BosparanianDateTime.from_time(period.end_time).replace(year=end_year + delta) return TimePeriod(start_time.to_time(), end_time.to_time()) except ValueError: return None
def fit_week_fn(main_frame, current_period, navigation_fn): mean = BosparanianDateTime.from_time(current_period.mean_time()) start = BosparanianDateTime.from_ymd(mean.year, mean.month, mean.day).to_time() weekday = BosparanianTimeType().get_day_of_week(start) start = start - BosparanianDelta.from_days(weekday) if not main_frame.week_starts_on_monday(): start = start - BosparanianDelta.from_days(1) end = start + BosparanianDelta.from_days(7) navigation_fn(lambda tp: tp.update(start, end))
def label(self, time, major=False): day_of_week = BosparanianTimeType().get_day_of_week(time) if major: time = BosparanianDateTime.from_time(time) return "%s %s %s %s" % (bosp_abbreviated_name_of_weekday(day_of_week), time.day, bosp_abbreviated_name_of_month(time.month), format_year(time.year)) return (bosp_abbreviated_name_of_weekday(day_of_week) + " %s" % BosparanianDateTime.from_time(time).day)
def move_period_num_years(period, num): try: delta = num start_year = BosparanianDateTime.from_time(period.start_time).year end_year = BosparanianDateTime.from_time(period.end_time).year start_time = BosparanianDateTime.from_time( period.start_time).replace(year=start_year + delta) end_time = BosparanianDateTime.from_time( period.end_time).replace(year=end_year + delta) return TimePeriod(start_time.to_time(), end_time.to_time()) except ValueError: return None
def on_down(self): def decrement_year(date): year, month, day = date if year > BosparanianDateTime.from_time( BosparanianTimeType().get_min_time()).year: return self._set_valid_day(year - 1, month, day) return date def decrement_month(date): year, month, day = date if month > 1: return self._set_valid_day(year, month - 1, day) elif year > BosparanianDateTime.from_time( BosparanianTimeType().get_min_time()).year: return self._set_valid_day(year - 1, 13, day) return date def decrement_day(date): year, month, day = date if day > 1: return self._set_valid_day(year, month, day - 1) elif month > 1: return self._set_valid_day(year, month - 1, 30) elif year > BosparanianDateTime.from_time( BosparanianTimeType().get_min_time()).year: return self._set_valid_day(year - 1, 13, 5) return date if not self._current_date_is_valid(): return selection = self.date_picker.GetSelection() current_date = self.get_value() if self._insertion_point_in_region(self.region_year): new_date = decrement_year(current_date) elif self._insertion_point_in_region(self.region_month): new_date = decrement_month(current_date) else: year, month, day = current_date BosparanianDateTime.from_ymd(year, month, day) if BosparanianDateTime.from_ymd( year, month, day).to_time() == BosparanianTimeType().get_min_time(): return new_date = decrement_day(current_date) self._save_preferred_day(new_date) if current_date != new_date: self._set_new_date_and_restore_selection(new_date, selection) self._on_change()
def label(self, time, major=False): time = BosparanianDateTime.from_time(time) if major: return "%s %s %s" % (time.day, bosp_abbreviated_name_of_month(time.month), format_year(time.year)) return str(time.day)
def decrement_month(date): year, month, day = date if month > 1: return self._set_valid_day(year, month - 1, day) elif year > BosparanianDateTime.from_time(BosparanianTimeType().get_min_time()).year: return self._set_valid_day(year - 1, 13, day) return date
def on_up(self): max_year = BosparanianDateTime.from_time(BosparanianTimeType().get_max_time()).year def increment_year(date): year, month, day = date if year < max_year - 1: return self._set_valid_day(year + 1, month, day) return date def increment_month(date): year, month, day = date if month < 13: return self._set_valid_day(year, month + 1, day) elif year < max_year - 1: return self._set_valid_day(year + 1, 1, day) return date def increment_day(date): year, month, day = date time = BosparanianDateTime.from_ymd(year, month, day).to_time() if time < BosparanianTimeType().get_max_time() - BosparanianDelta.from_days(1): return BosparanianDateTime.from_time(time + BosparanianDelta.from_days(1)).to_date_tuple() return date if not self._current_date_is_valid(): return selection = self.date_picker.GetSelection() current_date = self.get_value() if self._insertion_point_in_region(self.region_year): new_date = increment_year(current_date) elif self._insertion_point_in_region(self.region_month): new_date = increment_month(current_date) else: new_date = increment_day(current_date) self._save_preferred_day(new_date) if current_date != new_date: self._set_new_date_and_restore_selection(new_date, selection) self._on_change()
def label(self, time, major=False): time = BosparanianDateTime.from_time(time) if major: return "%s %s %s: %s:%s" % ( time.day, bosp_abbreviated_name_of_month(time.month), format_year(time.year), time.hour, time.minute) return str(time.minute)
def get_value(self): if self.time_picker.IsShown(): hour, minute, second = self.time_picker.get_value() else: hour, minute, second = (0, 0, 0) year, month, day = self.date_picker.get_value() return BosparanianDateTime(year, month, day, hour, minute, second).to_time()
def decrement_month(date): year, month, day = date if month > 1: return self._set_valid_day(year, month - 1, day) elif year > BosparanianDateTime.from_time( BosparanianTimeType().get_min_time()).year: return self._set_valid_day(year - 1, 13, day) return date
def label(self, time, major=False): time = BosparanianDateTime.from_time(time) if major: return "%s %s" % (bosp_name_of_month( time.month), format_year(time.year)) if time.month == 13: return bosp_abbreviated_name_of_month(time.month) return bosp_name_of_month(time.month)
def _time_range_string(self, start, end): start = BosparanianDateTime.from_time(start) end = BosparanianDateTime.from_time(end) if start.year == end.year: if start.month == end.month: return "%s-%s %s %s" % (start.day, end.day, bosp_abbreviated_name_of_month( start.month), format_year(start.year)) return "%s %s-%s %s %s" % ( start.day, bosp_abbreviated_name_of_month(start.month), end.day, bosp_abbreviated_name_of_month( end.month), format_year(start.year)) return "%s %s %s-%s %s %s" % ( start.day, bosp_abbreviated_name_of_month( start.month), format_year(start.year), end.day, bosp_abbreviated_name_of_month(end.month), format_year(end.year))
def _set_valid_day(self, new_year, new_month, new_day): done = False while not done: try: date = BosparanianDateTime.from_ymd(new_year, new_month, new_day) done = True except Exception: new_day -= 1 return date.to_date_tuple()
def label(self, time, major=False): if major: # TODO: This only works for English. Possible to localize? time = BosparanianDateTime.from_time(time) start_year = self._century_start_year(time.year) century = (start_year + 100) / 100 if century <= 0: century -= 1 return str(century) + " century BF" return ""
def _time_range_string(self, start, end): start = BosparanianDateTime.from_time(start) end = BosparanianDateTime.from_time(end) if start.year == end.year: if start.month == end.month: return "%s-%s %s %s" % (start.day, end.day, bosp_abbreviated_name_of_month(start.month), format_year(start.year)) return "%s %s-%s %s %s" % (start.day, bosp_abbreviated_name_of_month(start.month), end.day, bosp_abbreviated_name_of_month(end.month), format_year(start.year)) return "%s %s %s-%s %s %s" % (start.day, bosp_abbreviated_name_of_month(start.month), format_year(start.year), end.day, bosp_abbreviated_name_of_month(end.month), format_year(end.year))
def navigate(tp): year_delta = direction * _calculate_year_diff(curret_period) bosparanian_start = BosparanianDateTime.from_time(curret_period.start_time) bosparanian_end = BosparanianDateTime.from_time(curret_period.end_time) new_start_year = bosparanian_start.year + year_delta new_end_year = bosparanian_end.year + year_delta try: new_start = bosparanian_start.replace(year=new_start_year).to_time() new_end = bosparanian_end.replace(year=new_end_year).to_time() if new_end > BosparanianTimeType().get_max_time(): raise ValueError() if new_start < BosparanianTimeType().get_min_time(): raise ValueError() except ValueError: if direction < 0: raise TimeOutOfRangeLeftError() else: raise TimeOutOfRangeRightError() return tp.update(new_start, new_end)
def label(self, time, major=False): if major: # TODO: This only works for English. Possible to localize? time = BosparanianDateTime.from_time(time) start_year = self._century_start_year(time.year) century = (start_year + 100) / 100 if century <= 0: century -= 1 return str(century) + " century BF" return ""
def _set_valid_day(self, new_year, new_month, new_day): done = False while not done: try: date = BosparanianDateTime.from_ymd(new_year, new_month, new_day) done = True except Exception: new_day -= 1 return date.to_date_tuple()
def navigate(tp): year_delta = direction * _calculate_year_diff(curret_period) bosparanian_start = BosparanianDateTime.from_time( curret_period.start_time) bosparanian_end = BosparanianDateTime.from_time(curret_period.end_time) new_start_year = bosparanian_start.year + year_delta new_end_year = bosparanian_end.year + year_delta try: new_start = bosparanian_start.replace( year=new_start_year).to_time() new_end = bosparanian_end.replace(year=new_end_year).to_time() if new_end > BosparanianTimeType().get_max_time(): raise ValueError() if new_start < BosparanianTimeType().get_min_time(): raise ValueError() except ValueError: if direction < 0: raise TimeOutOfRangeLeftError() else: raise TimeOutOfRangeRightError() return tp.update(new_start, new_end)
def on_down(self): def decrement_year(date): year, month, day = date if year > BosparanianDateTime.from_time(BosparanianTimeType().get_min_time()).year: return self._set_valid_day(year - 1, month, day) return date def decrement_month(date): year, month, day = date if month > 1: return self._set_valid_day(year, month - 1, day) elif year > BosparanianDateTime.from_time(BosparanianTimeType().get_min_time()).year: return self._set_valid_day(year - 1, 13, day) return date def decrement_day(date): year, month, day = date if day > 1: return self._set_valid_day(year, month, day - 1) elif month > 1: return self._set_valid_day(year, month - 1, 30) elif year > BosparanianDateTime.from_time(BosparanianTimeType().get_min_time()).year: return self._set_valid_day(year - 1, 13, 5) return date if not self._current_date_is_valid(): return selection = self.date_picker.GetSelection() current_date = self.get_value() if self._insertion_point_in_region(self.region_year): new_date = decrement_year(current_date) elif self._insertion_point_in_region(self.region_month): new_date = decrement_month(current_date) else: year, month, day = current_date BosparanianDateTime.from_ymd(year, month, day) if BosparanianDateTime.from_ymd(year, month, day).to_time() == BosparanianTimeType().get_min_time(): return new_date = decrement_day(current_date) self._save_preferred_day(new_date) if current_date != new_date: self._set_new_date_and_restore_selection(new_date, selection) self._on_change()
def navigate(tp): start = BosparanianDateTime.from_time(curret_period.start_time) end = BosparanianDateTime.from_time(curret_period.end_time) start_months = start.year * 13 + start.month end_months = end.year * 13 + end.month month_diff = end_months - start_months month_delta = month_diff * direction new_start_year, new_start_month = _months_to_year_and_month(start_months + month_delta) new_end_year, new_end_month = _months_to_year_and_month(end_months + month_delta) try: new_start = start.replace(year=new_start_year, month=new_start_month) new_end = end.replace(year=new_end_year, month=new_end_month) start = new_start.to_time() end = new_end.to_time() if end > BosparanianTimeType().get_max_time(): raise ValueError() if start < BosparanianTimeType().get_min_time(): raise ValueError() except ValueError: if direction < 0: raise TimeOutOfRangeLeftError() else: raise TimeOutOfRangeRightError() return tp.update(start, end)
def parse_time(self, time_string): match = re.search(r"^(-?\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)$", time_string) if match: year = int(match.group(1)) month = int(match.group(2)) day = int(match.group(3)) hour = int(match.group(4)) minute = int(match.group(5)) second = int(match.group(6)) try: return BosparanianDateTime(year, month, day, hour, minute, second).to_time() except ValueError: raise ValueError("Invalid time, time string = '%s'" % time_string) else: raise ValueError("Time not on correct format = '%s'" % time_string)
def on_up(self): max_year = BosparanianDateTime.from_time( BosparanianTimeType().get_max_time()).year def increment_year(date): year, month, day = date if year < max_year - 1: return self._set_valid_day(year + 1, month, day) return date def increment_month(date): year, month, day = date if month < 13: return self._set_valid_day(year, month + 1, day) elif year < max_year - 1: return self._set_valid_day(year + 1, 1, day) return date def increment_day(date): year, month, day = date time = BosparanianDateTime.from_ymd(year, month, day).to_time() if time < BosparanianTimeType().get_max_time( ) - BosparanianDelta.from_days(1): return BosparanianDateTime.from_time( time + BosparanianDelta.from_days(1)).to_date_tuple() return date if not self._current_date_is_valid(): return selection = self.date_picker.GetSelection() current_date = self.get_value() if self._insertion_point_in_region(self.region_year): new_date = increment_year(current_date) elif self._insertion_point_in_region(self.region_month): new_date = increment_month(current_date) else: new_date = increment_day(current_date) self._save_preferred_day(new_date) if current_date != new_date: self._set_new_date_and_restore_selection(new_date, selection) self._on_change()
def label(self, time, major=False): time = BosparanianDateTime.from_time(time) return format_decade(self._decade_start_year(time.year))
def start(self, time): bosparanian_time = BosparanianDateTime.from_time(time) new_bosparanian = BosparanianDateTime.from_ymd(self._decade_start_year(bosparanian_time.year), 1, 1) return new_bosparanian.to_time()
def label(self, time, major=False): return format_year(BosparanianDateTime.from_time(time).year)
def increment(self, time): bosparanian_time = BosparanianDateTime.from_time(time) return bosparanian_time.replace(year=bosparanian_time.year + 1).to_time()
def increment(self, time): bosparanian_time = BosparanianDateTime.from_time(time) return bosparanian_time.replace(year=bosparanian_time.year + 1).to_time()
def _ensure_within_allowed_period(self, date): year, month, day = date time = BosparanianDateTime(year, month, day, 0, 0, 0).to_time() if (time >= BosparanianTimeType().get_max_time() or time < BosparanianTimeType().get_min_time()): raise ValueError()
def time_string(self, time): return "%d-%02d-%02d %02d:%02d:%02d" % BosparanianDateTime.from_time(time).to_tuple()
def start(self, time): bosparanian_time = BosparanianDateTime.from_time(time) new_bosparanian = BosparanianDateTime.from_ymd(bosparanian_time.year, bosparanian_time.month, bosparanian_time.day) return new_bosparanian.to_time()
def get_quarter(self, time): m = BosparanianDateTime.from_time(time).month if m == 13: return 0 return (m - 1) // 3 + 1
def increment(self, time): days_in_month = BosparanianDateTime.from_time(time).days_in_month() return time + BosparanianDelta.from_days(days_in_month)
def increment_day(date): year, month, day = date time = BosparanianDateTime.from_ymd(year, month, day).to_time() if time < BosparanianTimeType().get_max_time() - BosparanianDelta.from_days(1): return BosparanianDateTime.from_time(time + BosparanianDelta.from_days(1)).to_date_tuple() return date
def increment(self, time): time = BosparanianDateTime.from_time(time) return time.replace(year=time.year + 100).to_time()
def start(self, time): time = BosparanianDateTime.from_time(time) return BosparanianDateTime.from_ymd(self._century_start_year(time.year), 1, 1).to_time()
def start(self, time): bosparanian_time = BosparanianDateTime.from_time(time) new_bosparanian = BosparanianDateTime.from_ymd(bosparanian_time.year, bosparanian_time.month, bosparanian_time.day) return new_bosparanian.to_time()
def get_quarter(self, time): m = BosparanianDateTime.from_time(time).month if m == 13: return 0 return (m - 1) // 3 + 1
def label(self, time, major=False): return format_year(BosparanianDateTime.from_time(time).year)
def increment(self, time): days_in_month = BosparanianDateTime.from_time(time).days_in_month() return time + BosparanianDelta.from_days(days_in_month)
def set_value(self, time): if time is None: time = self.now_fn() self.date_picker.set_value(BosparanianDateTime.from_time(time).to_date_tuple()) self.time_picker.set_value(BosparanianDateTime.from_time(time).to_time_tuple())