diff options
author | Andrey Kislyuk <kislyuk@gmail.com> | 2017-12-26 22:18:43 -0800 |
---|---|---|
committer | Andrey Kislyuk <kislyuk@gmail.com> | 2017-12-26 22:18:43 -0800 |
commit | c01a4b3de314162cebb1a74bd263bca02191eef9 (patch) | |
tree | bc7ca21c774637b07dbd527c7b02177f212f7b8a | |
parent | f88017c6c692635dae0fb7084a846769fec54703 (diff) |
Support bare YAML dates and times. Fixes #10
-rwxr-xr-x | test/test.py | 11 | ||||
-rwxr-xr-x | yq/__init__.py | 4 |
2 files changed, 13 insertions, 2 deletions
diff --git a/test/test.py b/test/test.py index 5fa025a..c6805fb 100755 --- a/test/test.py +++ b/test/test.py @@ -57,5 +57,16 @@ class TestYq(unittest.TestCase): self.assertEqual(self.run_yq("- 2016-12-20T22:07:36Z\n", ["."]), "") self.assertEqual(self.run_yq("- 2016-12-20T22:07:36Z\n", ["-y", "."]), "- '2016-12-20T22:07:36'\n") + self.assertEqual(self.run_yq("2016-12-20", ["."]), "") + self.assertEqual(self.run_yq("2016-12-20", ["-y", "."]), "'2016-12-20'\n") + + @unittest.expectedFailure + def test_times(self): + """ + Timestamps are parsed as sexagesimals in YAML 1.1 but not 1.2. No PyYAML support for YAML 1.2 yet. See issue 10 + """ + self.assertEqual(self.run_yq("11:12:13", ["."]), "") + self.assertEqual(self.run_yq("11:12:13", ["-y", "."]), "'11:12:13'\n") + if __name__ == '__main__': unittest.main() diff --git a/yq/__init__.py b/yq/__init__.py index a33c19e..8c9a1d0 100755 --- a/yq/__init__.py +++ b/yq/__init__.py @@ -9,7 +9,7 @@ from __future__ import absolute_import, division, print_function, unicode_litera import os, sys, argparse, subprocess, json from collections import OrderedDict -from datetime import datetime +from datetime import datetime, date, time import yaml from .version import __version__ @@ -30,7 +30,7 @@ class OrderedDumper(yaml.SafeDumper): class JSONDateTimeEncoder(json.JSONEncoder): def default(self, o): - if isinstance(o, datetime): + if isinstance(o, (datetime, date, time)): return o.isoformat() return json.JSONEncoder.default(self, o) |