Skip to content

Commit 6065f3d

Browse files
authored
Merge pull request #1249 from nklever/master
timestamp_format raises an exception
2 parents f5ea735 + b9fa65d commit 6065f3d

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

nbgrader/exchange/exchange.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@
77
from textwrap import dedent
88

99
from dateutil.tz import gettz
10+
from dateutil.parser import parse
1011
from traitlets.config import LoggingConfigurable
11-
from traitlets import Unicode, Bool, Instance, Type, default, validate
12+
from traitlets import Unicode, Bool, Instance, Type, default, validate, TraitError
1213
from jupyter_core.paths import jupyter_data_dir
1314

1415
from ..utils import check_directory, ignore_patterns, self_owned
@@ -42,6 +43,15 @@ class Exchange(LoggingConfigurable):
4243
help="Format string for timestamps"
4344
).tag(config=True)
4445

46+
@validate('timestamp_format')
47+
def _valid_timestamp_format(self, proposal):
48+
try:
49+
ts = datetime.datetime.now().strftime(proposal['value'])
50+
ts = parse(ts)
51+
except ValueError:
52+
raise TraitError('Invalid timestamp_format: {} - could not be parsed by dateutil'.format(proposal['value']))
53+
return proposal['value']
54+
4555
root = Unicode(
4656
"/srv/nbgrader/exchange",
4757
help="The nbgrader exchange directory writable to everyone. MUST be preexisting."

0 commit comments

Comments
 (0)