def __call__(self, parser, namespace, values, option_string=None): try: if type(values) == str: daytime = Daytime.fromtime(timeparser.parsetime(values)) else: daytime = [Daytime.fromtime(timeparser.parsetime(d)) for d in values] except ValueError: raise ArgumentError(self, self.ERR % (values, 'daytime')) else: setattr(namespace, self.dest, daytime)
def __call__(self, parser, namespace, values, option_string=None): value = ' '.join(values) if isinstance(values, list) else values try: daytime = Daytime.fromtime(timeparser.parsetime(values)) except ValueError: raise ArgumentError(self, self.ERR % (values, 'daytime')) else: self.append(namespace, daytime)
def setUp(self): self.daytime1 = Daytime.fromtime(time(0, 0, 0, 8000)) self.daytime2 = Daytime.strptime('2,20,22,007000', '%H,%M,%S,%f') self.daytime3 = Daytime.utcfromtimestamp( Daytime(2, 20, 23, 90000).as_seconds) self.daytime4 = Daytime.fromtimestamp( Daytime(12, 25, 0, 8400).as_seconds, UTC()) self.daytime5 = Daytime(18, 43, 20, 6000) self.daytime6 = Daytime.daytime
def check_timetable(database): current_msk = Daytime.fromtime(datetime.datetime.now(MSK_TIMEZONE)) current_weekday = constants.weekdays[datetime.datetime.now( MSK_TIMEZONE).weekday()] interval_start = current_msk + 540 interval_stop = current_msk + 600 for_notifying = {} for user in database.get_all(): user_delta = user.get('settings', {}).get('timezone', 0) timetable = user.get('timetable', {}).get(current_weekday, {}) if timetable: for time, note in timetable.items(): if interval_start < Daytime.strptime( time, '%H:%M') - datetime.timedelta( hours=user_delta) < interval_stop: if for_notifying.get(user['id']): for_notifying[user['id']].append({time: note}) else: for_notifying[user['id']] = [{time: note}] return for_notifying