Skip to content

Commit c01a4b3

Browse files
committed
Support bare YAML dates and times. Fixes #10
1 parent f88017c commit c01a4b3

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

test/test.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,16 @@ def test_datetimes(self):
5757
self.assertEqual(self.run_yq("- 2016-12-20T22:07:36Z\n", ["."]), "")
5858
self.assertEqual(self.run_yq("- 2016-12-20T22:07:36Z\n", ["-y", "."]), "- '2016-12-20T22:07:36'\n")
5959

60+
self.assertEqual(self.run_yq("2016-12-20", ["."]), "")
61+
self.assertEqual(self.run_yq("2016-12-20", ["-y", "."]), "'2016-12-20'\n")
62+
63+
@unittest.expectedFailure
64+
def test_times(self):
65+
"""
66+
Timestamps are parsed as sexagesimals in YAML 1.1 but not 1.2. No PyYAML support for YAML 1.2 yet. See issue 10
67+
"""
68+
self.assertEqual(self.run_yq("11:12:13", ["."]), "")
69+
self.assertEqual(self.run_yq("11:12:13", ["-y", "."]), "'11:12:13'\n")
70+
6071
if __name__ == '__main__':
6172
unittest.main()

yq/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
import os, sys, argparse, subprocess, json
1111
from collections import OrderedDict
12-
from datetime import datetime
12+
from datetime import datetime, date, time
1313
import yaml
1414
from .version import __version__
1515

@@ -30,7 +30,7 @@ class OrderedDumper(yaml.SafeDumper):
3030

3131
class JSONDateTimeEncoder(json.JSONEncoder):
3232
def default(self, o):
33-
if isinstance(o, datetime):
33+
if isinstance(o, (datetime, date, time)):
3434
return o.isoformat()
3535
return json.JSONEncoder.default(self, o)
3636

0 commit comments

Comments
 (0)