def test_determine_league_name() -> None: start_date = dtutil.parse('2017-11-01 00:00:00', '%Y-%m-%d %H:%M:%S', dtutil.WOTC_TZ) end_date = dtutil.parse('2017-11-30 11:59:59.999', '%Y-%m-%d %H:%M:%S.%f', dtutil.WOTC_TZ) assert league.determine_league_name(start_date, end_date) == 'League November 2017' start_date = dtutil.parse('2017-09-01 00:00:00', '%Y-%m-%d %H:%M:%S', dtutil.WOTC_TZ) end_date = dtutil.parse('2017-10-10 11:59:59.999', '%Y-%m-%d %H:%M:%S.%f', dtutil.WOTC_TZ) assert league.determine_league_name(start_date, end_date) == 'League September 2017'
def test_determine_end_of_league(): start_date = dtutil.parse('2017-11-01 00:00:00', '%Y-%m-%d %H:%M:%S', dtutil.WOTC_TZ) end_date = league.determine_end_of_league(start_date) assert dtutil.dt2ts(end_date) == 1512115199 start_date = dtutil.parse('2017-10-31 11:59:59.999', '%Y-%m-%d %H:%M:%S.%f', dtutil.WOTC_TZ) end_date = league.determine_end_of_league(start_date) assert dtutil.dt2ts(end_date) == 1512115199
def test_parse() -> None: s = '1970-01-01 00:00:00' dt = dtutil.parse(s, '%Y-%m-%d %H:%M:%S', timezone('UTC')) assert '{:%Y-%m-%d %H:%M:%S %z}'.format(dt) == '1970-01-01 00:00:00 +0000' s = '2016-01-01 00:00:00' dt = dtutil.parse(s, '%Y-%m-%d %H:%M:%S', timezone('UTC')) assert '{:%Y-%m-%d %H:%M:%S %z}'.format(dt) == '2016-01-01 00:00:00 +0000' dt = dtutil.parse(s, '%Y-%m-%d %H:%M:%S', timezone('America/Los_Angeles')) assert '{:%Y-%m-%d %H:%M:%S %z}'.format(dt) == '2016-01-01 08:00:00 +0000'
def tournament(url, name): s = fetcher.internal.fetch(url, character_encoding='utf-8') # Tournament details soup = BeautifulSoup(s, 'html.parser') cell = soup.find('div', {'id': 'EventReport'}).find_all('td')[1] # Hack in the known start time because it's not in the page. start_time = '19:00' name = cell.find('a').string.strip() if 'Saturday' in name or 'Sunday' in name or 'PDS' in name: start_time = '13:30' date_s = cell.find('br').next.strip() + ' {start_time}'.format( start_time=start_time) if '-0001' in date_s: # Tournament has been incorrectly configured. return 0 dt = dtutil.parse(date_s, '%d %B %Y %H:%M', dtutil.GATHERLING_TZ) competition_id = competition.get_or_insert_competition( dt, dt, name, 'Penny Dreadful {day}s'.format( day=dtutil.day_of_week(dt, dtutil.GATHERLING_TZ)), url) table = soup.find(text='Current Standings').find_parent('table') ranks = rankings(table) return add_decks(dt, competition_id, ranks, s)
def subreddit(start_date: datetime.datetime, end_date: datetime.datetime, max_items: int = sys.maxsize) -> List[Container]: try: redis_key = 'decksite:news:subreddit' items = redis.get_container_list(redis_key) if items: for item in items: item.date = dtutil.ts2dt(item.date) return items feed = fetcher.subreddit() items = [] for entry in feed.entries: item = Container({ 'title': entry.title, 'date': dtutil.parse(entry.updated, '%Y-%m-%dT%H:%M:%S+00:00', dtutil.UTC_TZ), 'url': entry.link, 'type': 'subreddit-post' }) if item.date > end_date: continue if item.date < start_date: break items.append(item) if len(items) >= max_items: break redis.store(redis_key, items, ex=3600) return items except ConnectionError: return []
def test_display_date(): dt = dtutil.parse('2008-03-29', '%Y-%m-%d', dtutil.WOTC_TZ) assert dtutil.display_date(dt) == 'Mar 29th, 2008' dt = dtutil.parse('2008-03-29 02:00', '%Y-%m-%d %H:%M', timezone('UTC')) assert dtutil.display_date(dt) == 'Mar 28th, 2008' dt = datetime.datetime.now( datetime.timezone.utc) - datetime.timedelta(seconds=10) assert dtutil.display_date(dt).find('seconds ago') >= 0 dt = datetime.datetime.now( datetime.timezone.utc) + datetime.timedelta(hours=72) assert dtutil.display_date(dt).find('days') >= 0 assert dtutil.display_date(dt).find('from now') >= 0 assert dtutil.display_date(dt).find('ago') == -1 dt = datetime.datetime.now(datetime.timezone.utc) assert dtutil.display_date(dt).find('just now') >= 0 assert dtutil.display_date(dt).find('from now') == -1
def ad_hoc() -> None: try: start = dtutil.parse(sys.argv[2], '%Y-%m-%d', dtutil.GATHERLING_TZ) except (IndexError, TypeError, ValueError): start = dtutil.now() - datetime.timedelta(days=7) print( f'Checking all Gatherling decks from {start}. To check from a different date supply it as a commandline arg in the form YYYY-MM-DD' ) decks = deck.load_decks( f"d.created_date >= UNIX_TIMESTAMP('{start}') AND ct.name = 'Gatherling'" ) print(f'Found {len(decks)} decks.') searcher = WhooshSearcher() for d in decks: comments = fetcher.gatherling_deck_comments(d) for c in comments: if '=' not in c: print(f'Ignoring {c}') continue print(c) def best_match_f(s: str) -> Optional[str]: return searcher.search(s.strip()).get_best_match() placeholder, real = map(best_match_f, c.split('=')) print( f'I think this means replace {placeholder} with {real}. Go ahead? (Y/n)' ) answer = input() if answer == '' or answer.lower() == 'y': rows_affected = db().execute( 'UPDATE deck_card SET card = %s WHERE deck_id = %s AND card = %s', [real, d.id, placeholder]) print(f'{rows_affected} rows were updated.')
def post_news(news_id: int, title: str = None, url: str = None, date: str = None) -> wrappers.Response: if request.form.get('action') == 'delete': ns.delete(news_id) else: if date is not None and title is not None and url is not None: date_dt = dtutil.parse(date, dtutil.FORM_FORMAT, dtutil.WOTC_TZ) ns.add_or_update_news(news_id, date_dt, title, url) return redirect(url_for('edit_news'))
def determine_league_name(start_date: datetime.datetime, end_date: datetime.datetime) -> str: start_of_end_month_s = '{year}-{month}-01 00:00:00'.format(year=end_date.year, month=end_date.month) start_of_end_month = dtutil.parse(start_of_end_month_s, '%Y-%m-%d %H:%M:%S', dtutil.WOTC_TZ).astimezone(dtutil.WOTC_TZ) if start_date + datetime.timedelta(weeks=2) < start_of_end_month: key_date = start_date else: key_date = end_date return 'League {MM} {YYYY}'.format(MM=calendar.month_name[key_date.month], YYYY=key_date.year)
def __init__(self, competition_id: int, decks: Sequence[Deck]) -> None: super().__init__() self.hide_active_runs = False self.competition_id = competition_id far_future = dtutil.parse('2100-01-01', '%Y-%m-%d', dtutil.UTC_TZ) self.decks = sorted(decks, key=lambda d: d.person + str( (far_future - d.created_date).total_seconds()))
def post_news(): print(request.form) if request.form.get('action') == 'delete': ns.delete(request.form.get('id')) else: date = dtutil.parse(request.form.get('date'), dtutil.FORM_FORMAT, dtutil.WOTC_TZ) ns.add_or_update_news(request.form.get('id'), date, request.form.get('title'), request.form.get('body')) return edit_news()
def postprocess(setinfo: SetInfoType) -> SetInfoType: setinfo['enter_date_dt'] = dtutil.parse(setinfo['enterDate']['exact'], WIS_DATE_FORMAT, dtutil.WOTC_TZ) if setinfo['code'] == 'DOM': # !quality setinfo['mtgo_code'] = 'DAR' else: setinfo['mtgo_code'] = setinfo['code'] return setinfo
def postprocess(setinfo: SetInfoType) -> SetInfoType: setinfo['enter_date_dt'] = dtutil.parse(setinfo['enter_date'], '%Y-%m-%dT%H:%M:%S.%f', dtutil.WOTC_TZ) if setinfo['code'] == 'DOM': # !quality setinfo['mtgo_code'] = 'DAR' else: setinfo['mtgo_code'] = setinfo['code'] return setinfo
def parse(cls, json: 'fetcher.WISSetInfoType') -> 'SetInfo': json['mtgoCode'] = json['code'] json.update(OVERRIDES.get(json['name'], {})) # type: ignore return cls(name=json['name'], code=json['code'], codename=json['codename'], mtgo_code=json['mtgoCode'], enter_date=DateType(**json['enterDate']), exit_date=DateType(**json['exitDate']), enter_date_dt=dtutil.parse(json['enterDate']['exact'], WIS_DATE_FORMAT, dtutil.WOTC_TZ) if json['enterDate']['exact'] else dtutil.ts2dt(0), )
def test_determine_end_of_league() -> None: next_rotation = dtutil.parse('2018-02-01 00:00:00', '%Y-%m-%d %H:%M:%S', dtutil.WOTC_TZ) start_date = dtutil.parse('2017-11-01 00:00:00', '%Y-%m-%d %H:%M:%S', dtutil.WOTC_TZ) end_date = league.determine_end_of_league(start_date, next_rotation) assert dtutil.dt2ts(end_date) == 1512115199 start_date = dtutil.parse('2017-10-31 11:59:59.999', '%Y-%m-%d %H:%M:%S.%f', dtutil.WOTC_TZ) end_date = league.determine_end_of_league(start_date, next_rotation) assert dtutil.dt2ts(end_date) == 1512115199 next_rotation = dtutil.parse('2018-07-13 00:00:00', '%Y-%m-%d %H:%M:%S', dtutil.WOTC_TZ) start_date = dtutil.parse('2018-05-31 11:04:15', '%Y-%m-%d %H:%M:%S', dtutil.WOTC_TZ) end_date = league.determine_end_of_league(start_date, next_rotation) assert dtutil.dt2ts(end_date) == dtutil.dt2ts(next_rotation) - 1 start_date = dtutil.parse('2018-07-13 00:00:00', '%Y-%m-%d %H:%M:%S', dtutil.WOTC_TZ) end_date = league.determine_end_of_league(start_date, next_rotation) assert end_date == dtutil.parse('2018-07-31 23:59:59', '%Y-%m-%d %H:%M:%S', dtutil.WOTC_TZ) start_date = dtutil.parse('2018-08-01 00:00:00', '%Y-%m-%d %H:%M:%S', dtutil.WOTC_TZ) end_date = league.determine_end_of_league(start_date, next_rotation) assert end_date == dtutil.parse('2018-08-31 23:59:59', '%Y-%m-%d %H:%M:%S', dtutil.WOTC_TZ)
def determine_end_of_league(start_date): if start_date.day < 15: month = start_date.month + 1 else: month = start_date.month + 2 if month > 12: year = start_date.year + 1 month = month - 12 else: year = start_date.year end_date_s = '{year}-{month}-01 00:00:00'.format(year=year, month=month) end_date = dtutil.parse(end_date_s, '%Y-%m-%d %H:%M:%S', dtutil.WOTC_TZ) if end_date > rotation.next_rotation(): end_date = rotation.next_rotation() return end_date - datetime.timedelta(seconds=1)
def __init__(self, decks: List[Deck], matches: List[Container]) -> None: super().__init__() self.matches = matches self.hide_active_runs = False far_future = dtutil.parse('2100-01-01', '%Y-%m-%d', dtutil.UTC_TZ) self.decks = sorted( decks, key=lambda d: d.person + str(far_future - d.created_date)) decks_by_id = {d.id: d for d in decks} for m in self.matches: m.display_date = dtutil.display_date(m.date) m.left_deck = decks_by_id.get(int(m.left_id)) m.right_deck = decks_by_id.get(int(m.right_id)) m.left_url = url_for('deck', deck_id=m.left_id) if m.get('right_id'): m.right_url = url_for('deck', deck_id=m.right_id) else: m.right_url = None
def determine_end_of_league(start_date: datetime.datetime, next_rotation: datetime.datetime, lookahead: bool = True) -> datetime.datetime: if start_date.day < 15: month = start_date.month + 1 else: month = start_date.month + 2 if month > 12: year = start_date.year + 1 month = month - 12 else: year = start_date.year end_date_s = '{year}-{month}-01 00:00:00'.format(year=year, month=month) end_date = dtutil.parse(end_date_s, '%Y-%m-%d %H:%M:%S', dtutil.WOTC_TZ).astimezone(dtutil.WOTC_TZ) if start_date < next_rotation < end_date: end_date = next_rotation end_date = end_date - datetime.timedelta(seconds=1) # Now we have an end date for this league let's make sure that it doesn't make the next league too short. See #5061. if lookahead: next_end_date = determine_end_of_league(end_date, next_rotation, False) if next_end_date - end_date < datetime.timedelta(days=14): end_date = next_end_date return end_date
def get_dt(day_s: str, start_time: str, timezone: Any) -> datetime.datetime: date_s = day_s + ' {start_time}'.format(start_time=start_time) return dtutil.parse(date_s, '%d %B %Y %H:%M', timezone)
def disabled() -> None: match.insert_match( dtutil.parse('10/2/2016 0:18:08', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 233, 2, 279, 0) match.insert_match( dtutil.parse('10/2/2016 0:28:25', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 234, 2, 231, 0) match.insert_match( dtutil.parse('10/2/2016 1:31:02', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 234, 2, 233, 0) match.insert_match( dtutil.parse('10/2/2016 3:07:38', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 231, 2, 227, 1) match.insert_match( dtutil.parse('10/2/2016 13:21:58', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 231, 2, 233, 0) match.insert_match( dtutil.parse('10/2/2016 16:42:54', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 234, 2, 232, 0) match.insert_match( dtutil.parse('10/2/2016 21:38:31', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 234, 2, 240, 1) match.insert_match( dtutil.parse('10/2/2016 21:51:14', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 239, 2, 231, 0) match.insert_match( dtutil.parse('10/2/2016 22:36:02', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 240, 2, 239, 0) match.insert_match( dtutil.parse('10/3/2016 16:25:48', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 234, 2, 228, 0) match.insert_match( dtutil.parse('10/3/2016 20:12:06', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 232, 2, 228, 1) match.insert_match( dtutil.parse('10/3/2016 20:35:35', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 242, 2, 231, 0) match.insert_match( dtutil.parse('10/3/2016 23:30:40', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 240, 2, 245, 0) match.insert_match( dtutil.parse('10/4/2016 1:59:41', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 247, 2, 246, 0) match.insert_match( dtutil.parse('10/4/2016 13:37:35', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 247, 2, 238, 0) match.insert_match( dtutil.parse('10/4/2016 18:05:12', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 248, 2, 247, 0) match.insert_match( dtutil.parse('10/4/2016 20:05:29', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 249, 2, 247, 1) match.insert_match( dtutil.parse('10/4/2016 20:59:42', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 247, 2, 282, 0) match.insert_match( dtutil.parse('10/5/2016 0:01:53', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 246, 2, 251, 1) match.insert_match( dtutil.parse('10/5/2016 2:31:44', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 248, 2, 264, 1) match.insert_match( dtutil.parse('10/5/2016 15:49:53', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 246, 2, 249, 1) match.insert_match( dtutil.parse('10/5/2016 16:19:55', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 249, 2, 248, 1) match.insert_match( dtutil.parse('10/5/2016 17:00:27', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 246, 2, 252, 0) match.insert_match( dtutil.parse('10/5/2016 17:02:56', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 248, 2, 251, 1) match.insert_match( dtutil.parse('10/5/2016 20:17:02', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 241, 2, 248, 1) match.insert_match( dtutil.parse('10/5/2016 22:38:15', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 252, 2, 253, 1) match.insert_match( dtutil.parse('10/6/2016 17:57:02', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 255, 2, 256, 1) match.insert_match( dtutil.parse('10/6/2016 18:42:06', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 257, 2, 256, 1) match.insert_match( dtutil.parse('10/6/2016 19:11:41', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 249, 2, 257, 0) match.insert_match( dtutil.parse('10/6/2016 19:24:17', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 256, 2, 258, 1) match.insert_match( dtutil.parse('10/6/2016 19:48:29', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 256, 2, 249, 0) match.insert_match( dtutil.parse('10/6/2016 21:05:31', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 256, 2, 232, 0) match.insert_match( dtutil.parse('10/6/2016 21:23:45', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 257, 2, 301, 0) match.insert_match( dtutil.parse('10/6/2016 23:42:09', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 258, 2, 260, 1) match.insert_match( dtutil.parse('10/7/2016 1:58:24', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 257, 2, 258, 1) match.insert_match( dtutil.parse('10/7/2016 6:08:27', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 255, 2, 261, 1) match.insert_match( dtutil.parse('10/7/2016 15:05:04', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 258, 2, 262, 0) match.insert_match( dtutil.parse('10/7/2016 19:35:42', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 260, 2, 254, 1) match.insert_match( dtutil.parse('10/8/2016 1:06:56', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 262, 2, 232, 1) match.insert_match( dtutil.parse('10/8/2016 1:36:57', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 260, 2, 232, 0) match.insert_match( dtutil.parse('10/8/2016 2:05:31', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 257, 2, 260, 0) match.insert_match( dtutil.parse('10/8/2016 12:06:26', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 237, 2, 245, 1) match.insert_match( dtutil.parse('10/8/2016 16:36:17', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 241, 2, 263, 0) match.insert_match( dtutil.parse('10/9/2016 13:31:10', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 241, 2, 255, 1) match.insert_match( dtutil.parse('10/9/2016 14:06:28', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 241, 2, 264, 0) match.insert_match( dtutil.parse('10/9/2016 14:24:57', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 258, 2, 241, 0) match.insert_match( dtutil.parse('10/10/2016 22:57:48', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 263, 2, 252, 0) match.insert_match( dtutil.parse('10/11/2016 16:44:16', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 261, 2, 269, 0) match.insert_match( dtutil.parse('10/11/2016 17:20:03', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 263, 2, 261, 0) match.insert_match( dtutil.parse('10/11/2016 18:56:03', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 266, 2, 261, 0) match.insert_match( dtutil.parse('10/11/2016 20:35:36', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 261, 2, 271, 0) match.insert_match( dtutil.parse('10/11/2016 21:09:15', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 263, 2, 271, 1) match.insert_match( dtutil.parse('10/12/2016 15:58:19', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 263, 2, 244, 0) match.insert_match( dtutil.parse('10/14/2016 15:23:19', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 264, 2, 267, 1) match.insert_match( dtutil.parse('10/15/2016 16:49:52', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 275, 2, 274, 0) match.insert_match( dtutil.parse('10/16/2016 6:20:41', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 275, 2, 273, 0) match.insert_match( dtutil.parse('10/17/2016 16:53:14', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 266, 2, 275, 0) match.insert_match( dtutil.parse('10/18/2016 1:03:28', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 260, 2, 268, 0) match.insert_match( dtutil.parse('10/18/2016 17:07:41', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 275, 2, 267, 1) match.insert_match( dtutil.parse('10/18/2016 17:54:29', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 275, 2, 278, 1) match.insert_match( dtutil.parse('10/18/2016 20:58:12', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 267, 2, 277, 0) match.insert_match( dtutil.parse('10/18/2016 21:21:54', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 266, 2, 279, 1) match.insert_match( dtutil.parse('10/18/2016 23:55:41', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 277, 2, 280, 0) match.insert_match( dtutil.parse('10/19/2016 0:08:47', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 251, 2, 276, 0) match.insert_match( dtutil.parse('10/21/2016 17:27:38', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 266, 2, 281, 1) match.insert_match( dtutil.parse('10/21/2016 17:58:53', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 265, 2, 264, 0) match.insert_match( dtutil.parse('10/22/2016 17:47:50', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 281, 2, 264, 1) match.insert_match( dtutil.parse('10/22/2016 19:04:44', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 281, 2, 268, 1) match.insert_match( dtutil.parse('10/22/2016 22:27:40', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 266, 2, 277, 0) match.insert_match( dtutil.parse('10/22/2016 23:05:20', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 277, 2, 273, 0) match.insert_match( dtutil.parse('10/23/2016 3:41:29', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 281, 2, 273, 1) match.insert_match( dtutil.parse('10/23/2016 3:54:56', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 281, 2, 282, 0) match.insert_match( dtutil.parse('10/23/2016 13:00:10', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 253, 2, 267, 1) match.insert_match( dtutil.parse('10/23/2016 13:12:24', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 283, 2, 280, 0) match.insert_match( dtutil.parse('10/23/2016 13:34:52', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 253, 2, 284, 0) match.insert_match( dtutil.parse('10/23/2016 14:12:30', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 267, 2, 283, 1) match.insert_match( dtutil.parse('10/23/2016 14:38:40', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 285, 2, 283, 0) match.insert_match( dtutil.parse('10/23/2016 16:09:03', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 283, 2, 286, 0) match.insert_match( dtutil.parse('10/23/2016 17:43:39', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 284, 2, 283, 1) match.insert_match( dtutil.parse('10/23/2016 18:57:13', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 284, 2, 282, 1) match.insert_match( dtutil.parse('10/23/2016 19:58:42', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 284, 2, 287, 0) match.insert_match( dtutil.parse('10/23/2016 20:32:55', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 284, 2, 288, 1) match.insert_match( dtutil.parse('10/23/2016 20:57:13', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 289, 2, 288, 0) match.insert_match( dtutil.parse('10/24/2016 0:45:48', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 289, 2, 282, 0) match.insert_match( dtutil.parse('10/24/2016 1:33:04', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 290, 2, 289, 0) match.insert_match( dtutil.parse('10/24/2016 10:25:50', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 288, 2, 285, 1) match.insert_match( dtutil.parse('10/24/2016 16:56:57', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 289, 2, 291, 0) match.insert_match( dtutil.parse('10/24/2016 17:29:46', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 282, 2, 291, 0) match.insert_match( dtutil.parse('10/24/2016 18:37:35', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 291, 2, 292, 1) match.insert_match( dtutil.parse('10/24/2016 18:57:55', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 292, 2, 289, 0) match.insert_match( dtutil.parse('10/24/2016 20:50:22', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 290, 2, 292, 0) match.insert_match( dtutil.parse('10/25/2016 17:04:42', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 291, 2, 294, 1) match.insert_match( dtutil.parse('10/26/2016 0:19:27', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 290, 2, 293, 0) match.insert_match( dtutil.parse('10/26/2016 14:23:25', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 293, 2, 295, 1) match.insert_match( dtutil.parse('10/26/2016 15:46:29', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 293, 2, 291, 0) match.insert_match( dtutil.parse('10/29/2016 5:05:18', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 298, 2, 297, 0) match.insert_match( dtutil.parse('10/29/2016 16:36:58', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 253, 2, 274, 0) match.insert_match( dtutil.parse('10/29/2016 17:32:41', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 290, 2, 274, 0) match.insert_match( dtutil.parse('10/30/2016 14:54:02', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 298, 2, 293, 0) match.insert_match( dtutil.parse('10/30/2016 22:28:49', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 293, 2, 297, 0)
def test_now() -> None: then = dtutil.parse('2016-01-01', '%Y-%m-%d', dtutil.WOTC_TZ) now = dtutil.now() assert (now - then).total_seconds() > 0
def disabled(): # Time is the earliest time that either player reported. match.insert_match( dtutil.parse('8/30/2016 20:13:27', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 141, 2, 140, 0) match.insert_match( dtutil.parse('8/31/2016 1:06:40', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 146, 2, 144, 0) match.insert_match( dtutil.parse('8/31/2016 1:32:28', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 144, 2, 148, 0) match.insert_match( dtutil.parse('8/31/2016 1:55:33', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 150, 2, 151, 0) match.insert_match( dtutil.parse('8/31/2016 1:59:12', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 149, 2, 152, 0) match.insert_match( dtutil.parse('8/31/2016 2:54:28', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 146, 2, 149, 1) match.insert_match( dtutil.parse('8/31/2016 3:26:32', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 153, 2, 150, 1) match.insert_match( dtutil.parse('8/31/2016 6:12:11', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 157, 2, 156, 0) match.insert_match( dtutil.parse('8/31/2016 12:43:09', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 157, 2, 146, 0) match.insert_match( dtutil.parse('8/31/2016 15:14:29', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 146, 2, 147, 1) match.insert_match( dtutil.parse('8/31/2016 15:59:13', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 147, 2, 150, 0) match.insert_match( dtutil.parse('8/31/2016 16:36:03', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 150, 2, 146, 1) match.insert_match( dtutil.parse('8/31/2016 16:46:57', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 147, 2, 144, 0) match.insert_match( dtutil.parse('8/31/2016 17:06:25', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 150, 2, 159, 0) match.insert_match( dtutil.parse('8/31/2016 20:13:20', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 141, 2, 144, 0) match.insert_match( dtutil.parse('8/31/2016 20:40:44', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 160, 2, 155, 1) match.insert_match( dtutil.parse('8/31/2016 22:33:14', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 140, 2, 151, 1) match.insert_match( dtutil.parse('8/31/2016 22:54:14', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 151, 2, 139, 0) match.insert_match( dtutil.parse('8/31/2016 23:13:44', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 144, 2, 139, 0) match.insert_match( dtutil.parse('8/31/2016 23:43:48', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 161, 2, 162, 1) match.insert_match( dtutil.parse('9/1/2016 0:04:23', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 163, 2, 161, 1) match.insert_match( dtutil.parse('9/1/2016 0:07:43', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 162, 2, 151, 1) match.insert_match( dtutil.parse('9/1/2016 0:25:10', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 158, 2, 151, 0) match.insert_match( dtutil.parse('9/1/2016 0:35:27', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 158, 2, 161, 0) match.insert_match( dtutil.parse('9/1/2016 1:09:46', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 164, 2, 161, 1) match.insert_match( dtutil.parse('9/1/2016 1:19:20', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 148, 2, 158, 1) match.insert_match( dtutil.parse('9/1/2016 1:39:18', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 163, 2, 164, 1) match.insert_match( dtutil.parse('9/1/2016 2:39:05', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 164, 2, 153, 1) match.insert_match( dtutil.parse('9/1/2016 13:09:47', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 157, 2, 163, 0) match.insert_match( dtutil.parse('9/1/2016 17:27:16', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 142, 2, 166, 1) match.insert_match( dtutil.parse('9/1/2016 18:29:24', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 166, 2, 162, 0) match.insert_match( dtutil.parse('9/1/2016 20:22:30', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 153, 2, 166, 0) match.insert_match( dtutil.parse('9/2/2016 17:02:22', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 167, 2, 147, 0) match.insert_match( dtutil.parse('9/2/2016 18:30:48', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 168, 2, 147, 0) match.insert_match( dtutil.parse('9/3/2016 2:04:24', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 169, 2, 164, 0) match.insert_match( dtutil.parse('9/3/2016 2:29:14', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 163, 2, 169, 1) match.insert_match( dtutil.parse('9/3/2016 17:27:07', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 171, 2, 166, 1) match.insert_match( dtutil.parse('9/3/2016 17:59:05', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 171, 2, 164, 0) match.insert_match( dtutil.parse('9/3/2016 19:09:12', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 160, 2, 166, 0) match.insert_match( dtutil.parse('9/3/2016 20:33:14', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 160, 2, 169, 1) match.insert_match( dtutil.parse('9/3/2016 22:38:57', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 172, 2, 160, 0) match.insert_match( dtutil.parse('9/3/2016 23:59:06', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 169, 2, 173, 1) match.insert_match( dtutil.parse('9/4/2016 1:12:04', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 172, 2, 169, 0) match.insert_match( dtutil.parse('9/4/2016 1:29:36', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 173, 2, 140, 0) match.insert_match( dtutil.parse('9/4/2016 1:55:01', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 174, 2, 173, 1) match.insert_match( dtutil.parse('9/4/2016 2:05:58', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 163, 2, 140, 0) match.insert_match( dtutil.parse('9/4/2016 12:46:16', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 157, 2, 174, 1) match.insert_match( dtutil.parse('9/4/2016 17:22:49', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 172, 2, 173, 1) match.insert_match( dtutil.parse('9/4/2016 20:06:53', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 174, 2, 172, 1) match.insert_match( dtutil.parse('9/5/2016 2:20:14', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 178, 2, 174, 1) match.insert_match( dtutil.parse('9/5/2016 3:13:32', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 178, 2, 172, 0) match.insert_match( dtutil.parse('9/5/2016 12:18:43', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 157, 2, 167, 1) match.insert_match( dtutil.parse('9/5/2016 13:05:56', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 168, 2, 167, 1) match.insert_match( dtutil.parse('9/6/2016 0:56:16', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 182, 2, 173, 0) match.insert_match( dtutil.parse('9/6/2016 1:24:56', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 174, 2, 182, 0) match.insert_match( dtutil.parse('9/6/2016 1:54:04', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 182, 2, 178, 1) match.insert_match( dtutil.parse('9/6/2016 18:35:04', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 173, 2, 182, 0) match.insert_match( dtutil.parse('9/6/2016 20:27:01', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 167, 2, 182, 0) match.insert_match( dtutil.parse('9/6/2016 20:51:18', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 160, 2, 182, 0) match.insert_match( dtutil.parse('9/6/2016 20:54:20', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 167, 2, 173, 0) match.insert_match( dtutil.parse('9/6/2016 21:24:24', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 170, 2, 161, 1) match.insert_match( dtutil.parse('9/6/2016 21:36:31', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 173, 2, 185, 1) match.insert_match( dtutil.parse('9/6/2016 22:34:24', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 173, 2, 180, 0) match.insert_match( dtutil.parse('9/6/2016 23:00:45', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 184, 2, 186, 0) match.insert_match( dtutil.parse('9/6/2016 23:54:40', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 186, 2, 140, 1) match.insert_match( dtutil.parse('9/7/2016 16:22:45', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 190, 2, 185, 0) match.insert_match( dtutil.parse('9/7/2016 18:06:36', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 185, 2, 189, 0) match.insert_match( dtutil.parse('9/7/2016 20:15:33', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 186, 2, 185, 1) match.insert_match( dtutil.parse('9/7/2016 21:57:38', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 187, 2, 178, 0) match.insert_match( dtutil.parse('9/8/2016 1:55:22', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 184, 2, 188, 1) match.insert_match( dtutil.parse('9/8/2016 21:04:55', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 173, 2, 192, 0) match.insert_match( dtutil.parse('9/8/2016 22:02:57', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 192, 2, 155, 0) match.insert_match( dtutil.parse('9/8/2016 22:24:55', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 194, 2, 193, 1) match.insert_match( dtutil.parse('9/8/2016 22:37:33', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 186, 2, 193, 0) match.insert_match( dtutil.parse('9/8/2016 23:41:50', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 194, 2, 192, 0) match.insert_match( dtutil.parse('9/8/2016 23:58:03', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 192, 2, 184, 1) match.insert_match( dtutil.parse('9/9/2016 0:20:28', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 184, 2, 185, 0) match.insert_match( dtutil.parse('9/9/2016 1:12:04', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 194, 2, 184, 0) match.insert_match( dtutil.parse('9/9/2016 16:50:39', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 190, 2, 193, 0) match.insert_match( dtutil.parse('9/9/2016 22:40:28', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 186, 2, 194, 1) match.insert_match( dtutil.parse('9/9/2016 22:47:49', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 196, 2, 192, 0) match.insert_match( dtutil.parse('9/10/2016 11:39:35', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 207, 2, 198, 1) match.insert_match( dtutil.parse('9/10/2016 12:53:54', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 181, 2, 155, 1) match.insert_match( dtutil.parse('9/10/2016 20:14:30', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 201, 2, 196, 0) match.insert_match( dtutil.parse('9/10/2016 20:49:09', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 202, 2, 170, 0) match.insert_match( dtutil.parse('9/11/2016 7:54:24', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 191, 2, 201, 1) match.insert_match( dtutil.parse('9/11/2016 12:32:42', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 181, 2, 199, 0) match.insert_match( dtutil.parse('9/11/2016 12:45:40', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 190, 2, 201, 1) match.insert_match( dtutil.parse('9/11/2016 13:29:05', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 181, 2, 207, 1) match.insert_match( dtutil.parse('9/11/2016 18:30:42', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 203, 2, 204, 1) match.insert_match( dtutil.parse('9/12/2016 22:23:12', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 196, 2, 207, 0) match.insert_match( dtutil.parse('9/12/2016 23:12:08', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 196, 2, 202, 1) match.insert_match( dtutil.parse('9/13/2016 0:19:39', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 170, 2, 193, 0) match.insert_match( dtutil.parse('9/13/2016 1:23:55', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 204, 2, 193, 1) match.insert_match( dtutil.parse('9/13/2016 17:48:01', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 203, 2, 181, 0) match.insert_match( dtutil.parse('9/13/2016 19:00:03', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 207, 2, 206, 1) match.insert_match( dtutil.parse('9/13/2016 21:15:43', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 207, 2, 187, 1) match.insert_match( dtutil.parse('9/14/2016 17:15:13', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 199, 2, 203, 0) match.insert_match( dtutil.parse('9/15/2016 2:13:18', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 208, 2, 210, 1) match.insert_match( dtutil.parse('9/16/2016 2:36:54', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 202, 2, 210, 1) match.insert_match( dtutil.parse('9/16/2016 10:22:41', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 213, 2, 214, 1) match.insert_match( dtutil.parse('9/16/2016 10:53:13', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 214, 2, 215, 1) match.insert_match( dtutil.parse('9/16/2016 11:09:06', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 213, 2, 197, 1) match.insert_match( dtutil.parse('9/16/2016 11:50:44', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 215, 2, 213, 1) match.insert_match( dtutil.parse('9/16/2016 14:29:28', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 213, 2, 196, 1) match.insert_match( dtutil.parse('9/17/2016 0:06:18', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 216, 2, 202, 0) match.insert_match( dtutil.parse('9/17/2016 0:39:13', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 216, 2, 210, 1) match.insert_match( dtutil.parse('9/18/2016 6:18:19', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 210, 2, 214, 0) match.insert_match( dtutil.parse('9/18/2016 6:45:47', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 213, 2, 210, 1) match.insert_match( dtutil.parse('9/18/2016 9:10:14', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 201, 2, 213, 1) match.insert_match( dtutil.parse('9/18/2016 11:16:10', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 218, 2, 216, 0) match.insert_match( dtutil.parse('9/18/2016 11:43:36', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 214, 2, 216, 0) match.insert_match( dtutil.parse('9/18/2016 12:56:54', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 214, 2, 217, 1) match.insert_match( dtutil.parse('9/19/2016 9:23:26', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 199, 2, 223, 1) match.insert_match( dtutil.parse('9/19/2016 12:31:28', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 218, 2, 203, 1) match.insert_match( dtutil.parse('9/19/2016 13:49:35', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 221, 2, 220, 0) match.insert_match( dtutil.parse('9/19/2016 16:31:42', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 215, 2, 194, 1) match.insert_match( dtutil.parse('9/19/2016 16:57:39', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 206, 2, 194, 1) match.insert_match( dtutil.parse('9/19/2016 17:18:28', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 222, 2, 206, 0) match.insert_match( dtutil.parse('9/19/2016 18:11:13', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 222, 2, 215, 1) match.insert_match( dtutil.parse('9/20/2016 15:50:49', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 190, 2, 220, 0) match.insert_match( dtutil.parse('9/20/2016 20:14:15', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 190, 2, 211, 1) match.insert_match( dtutil.parse('9/21/2016 3:02:24', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 178, 2, 155, 0) match.insert_match( dtutil.parse('9/21/2016 4:22:07', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 221, 2, 206, 0) match.insert_match( dtutil.parse('9/21/2016 18:19:02', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 215, 2, 221, 1) match.insert_match( dtutil.parse('9/21/2016 19:20:31', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 206, 2, 181, 0) match.insert_match( dtutil.parse('9/22/2016 7:39:53', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 223, 2, 221, 1) match.insert_match( dtutil.parse('9/22/2016 12:05:39', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 218, 2, 223, 0) match.insert_match( dtutil.parse('9/22/2016 12:12:55', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 222, 2, 221, 1) match.insert_match( dtutil.parse('9/22/2016 12:59:51', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 222, 2, 223, 0) match.insert_match( dtutil.parse('9/22/2016 13:56:12', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 224, 2, 222, 1) match.insert_match( dtutil.parse('9/23/2016 0:02:20', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 223, 2, 202, 0) match.insert_match( dtutil.parse('9/23/2016 13:33:09', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 155, 2, 226, 1) match.insert_match( dtutil.parse('9/23/2016 14:04:03', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 226, 2, 225, 1) match.insert_match( dtutil.parse('9/24/2016 13:36:55', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 226, 2, 212, 1) match.insert_match( dtutil.parse('9/24/2016 14:14:35', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 218, 2, 212, 1) match.insert_match( dtutil.parse('9/14/2016 18:04:15', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 209, 2, 199, 1) match.insert_match( dtutil.parse('9/18/2016 13:33:32', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 219, 2, 216, 1)
def vivify_date(s: str) -> datetime.datetime: return dtutil.parse(s, dtutil.GATHERLING_FORMAT, dtutil.GATHERLING_TZ)
def disabled() -> None: match.insert_match( dtutil.parse('11/1/2016 16:55:02', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 307, 2, 308, 0) match.insert_match( dtutil.parse('11/1/2016 17:46:07', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 307, 2, 309, 0) match.insert_match( dtutil.parse('11/2/2016 1:40:27', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 307, 2, 311, 0) match.insert_match( dtutil.parse('11/2/2016 23:14:54', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 308, 2, 310, 1) match.insert_match( dtutil.parse('11/2/2016 23:42:34', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 303, 2, 310, 0) match.insert_match( dtutil.parse('11/2/2016 23:58:52', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 307, 2, 310, 0) match.insert_match( dtutil.parse('11/3/2016 2:53:38', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 313, 2, 312, 0) match.insert_match( dtutil.parse('11/3/2016 4:04:58', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 307, 2, 315, 0) match.insert_match( dtutil.parse('11/3/2016 4:56:02', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 315, 2, 312, 0) match.insert_match( dtutil.parse('11/3/2016 15:21:40', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 313, 2, 310, 0) match.insert_match( dtutil.parse('11/3/2016 16:58:05', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 314, 2, 308, 0) match.insert_match( dtutil.parse('11/3/2016 18:01:07', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 313, 2, 317, 0) match.insert_match( dtutil.parse('11/4/2016 2:48:12', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 316, 2, 312, 0) match.insert_match( dtutil.parse('11/4/2016 3:08:13', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 314, 2, 312, 0) match.insert_match( dtutil.parse('11/4/2016 3:58:28', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 312, 2, 320, 0) match.insert_match( dtutil.parse('11/4/2016 5:02:45', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 315, 2, 316, 1) match.insert_match( dtutil.parse('11/4/2016 5:53:29', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 316, 2, 322, 0) match.insert_match( dtutil.parse('11/4/2016 11:36:01', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 303, 2, 323, 0) match.insert_match( dtutil.parse('11/4/2016 15:34:53', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 308, 2, 305, 1) match.insert_match( dtutil.parse('11/4/2016 22:04:09', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 311, 2, 316, 0) match.insert_match( dtutil.parse('11/4/2016 23:27:12', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 316, 2, 321, 1) match.insert_match( dtutil.parse('11/5/2016 0:11:59', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 308, 2, 321, 0) match.insert_match( dtutil.parse('11/5/2016 1:46:10', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 313, 2, 325, 1) match.insert_match( dtutil.parse('11/5/2016 3:08:41', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 313, 2, 321, 1) match.insert_match( dtutil.parse('11/5/2016 3:31:58', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 326, 2, 321, 0) match.insert_match( dtutil.parse('11/5/2016 5:13:03', '%m/%d/%Y %H:%M:%S', dtutil.WOTC_TZ), 323, 2, 321, 0)
def parse_rotation_date(setinfo): setinfo['enter_date'] = dtutil.parse(setinfo['enter_date'], '%Y-%m-%dT%H:%M:%S.%fZ', dtutil.WOTC_TZ) return setinfo
def parse_rotation_date(setinfo): setinfo["enter_date"] = dtutil.parse(setinfo["enter_date"], "%Y-%m-%dT%H:%M:%S.%fZ", dtutil.WOTC_TZ) return setinfo