diff options
Diffstat (limited to 'sphinx/util/jsdump.py')
-rw-r--r-- | sphinx/util/jsdump.py | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sphinx/util/jsdump.py b/sphinx/util/jsdump.py index e75648a6b..49813672d 100644 --- a/sphinx/util/jsdump.py +++ b/sphinx/util/jsdump.py @@ -89,11 +89,13 @@ def dumps(obj, key=False): elif isinstance(obj, integer_types + (float,)): return str(obj) elif isinstance(obj, dict): - return '{%s}' % ','.join('%s:%s' % ( + return '{%s}' % ','.join(sorted('%s:%s' % ( dumps(key, True), dumps(value) - ) for key, value in iteritems(obj)) - elif isinstance(obj, (tuple, list, set)): + ) for key, value in iteritems(obj))) + elif isinstance(obj, set): + return '[%s]' % ','.join(sorted(dumps(x) for x in obj)) + elif isinstance(obj, (tuple, list)): return '[%s]' % ','.join(dumps(x) for x in obj) elif isinstance(obj, string_types): return encode_string(obj) |