Skip to content

Commit a7d4643

Browse files
Virv12wil93
authored andcommitted
parse iso datetime in constest.yaml for start/stop
1 parent 1a687a4 commit a7d4643

1 file changed

Lines changed: 9 additions & 4 deletions

File tree

cmscontrib/loaders/italy_yaml.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
import os
2828
import os.path
2929
import sys
30-
from datetime import timedelta
30+
from datetime import datetime, timedelta, timezone
3131
from copy import deepcopy
3232

3333
import yaml
@@ -40,7 +40,6 @@
4040
from cmscommon.constants import \
4141
SCORE_MODE_MAX, SCORE_MODE_MAX_SUBTASK, SCORE_MODE_MAX_TOKENED_LAST
4242
from cmscommon.crypto import build_password
43-
from cmscommon.datetime import make_datetime
4443
from cmscontrib import touch
4544
from .base_loader import ContestLoader, TaskLoader, UserLoader, TeamLoader, LANGUAGE_MAP
4645

@@ -125,6 +124,12 @@ def load(src, dst, src_name, dst_name=None, conv=lambda i: i):
125124
return conv(res)
126125

127126

127+
def parse_datetime(val):
128+
if isinstance(val, (int, float)):
129+
return datetime.fromtimestamp(val, timezone.utc)
130+
return datetime.fromisoformat(val)
131+
132+
128133
def make_timedelta(t):
129134
return timedelta(seconds=t)
130135

@@ -214,8 +219,8 @@ def get_contest(self):
214219
if args["token_gen_interval"].total_seconds() == 0:
215220
args["token_gen_interval"] = timedelta(minutes=1)
216221

217-
load(conf, args, ["start", "inizio"], conv=make_datetime)
218-
load(conf, args, ["stop", "fine"], conv=make_datetime)
222+
load(conf, args, ["start", "inizio"], conv=parse_datetime)
223+
load(conf, args, ["stop", "fine"], conv=parse_datetime)
219224
load(conf, args, ["per_user_time"], conv=make_timedelta)
220225
load(conf, args, ["timezone"])
221226

0 commit comments

Comments
 (0)