# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
# You can obtain one at http://mozilla.org/MPL/2.0/.

try:
    import json
except ImportError:
    import simplejson as json

def json_response(func):
    """ Translates results of 'func' into a JSON response. """
    def wrap(*a, **kw):
        (code, data) = func(*a, **kw)
        json_data = json.dumps(data)
        return (code, { 'Content-type': 'application/json',
                        'Content-Length': len(json_data) }, json_data)

    return wrap
