Files
deb-python-toml/toml_test.py
Uiri 3936ef5ec1 Work towards full implementation of v0.3.1
Point README to v0.3.1 spec
Write toml test script for python3
Make sure toml passes the new version of the test suite which has 75
tests.
Fix issues with backslashes.
2015-01-17 16:51:24 -05:00

57 lines
1.4 KiB
Python
Executable File

#!/usr/bin/env python2
import datetime
import json
import sys
import toml
try:
_range = xrange
iteritems = dict.iteritems
except NameError:
unicode = str
_range = range
basestring = str
unichr = chr
iteritems = dict.items
long = int
def tag(value):
if isinstance(value, dict):
d = { }
for k, v in iteritems(value):
d[k] = tag(v)
return d
elif isinstance(value, list):
a = []
for v in value:
a.append(tag(v))
try:
a[0]["value"]
except KeyError:
return a
except IndexError:
pass
return {'type': 'array', 'value': a}
elif isinstance(value, basestring):
return {'type': 'string', 'value': value}
elif isinstance(value, bool):
return {'type': 'bool', 'value': str(value).lower()}
elif isinstance(value, int):
return {'type': 'integer', 'value': str(value)}
elif isinstance(value, long):
return {'type': 'integer', 'value': str(value)}
elif isinstance(value, float):
return {'type': 'float', 'value': repr(value)}
elif isinstance(value, datetime.datetime):
sdate = value.strftime('%Y-%m-%dT%H:%M:%SZ')
return {'type': 'datetime', 'value': sdate}
assert False, 'Unknown type: %s' % type(value)
if __name__ == '__main__':
tdata = toml.loads(sys.stdin.read())
tagged = tag(tdata)
print(json.dumps(tagged))