def to_jsonp(self, data, options=None): """ Given some Python data, produces JSON output wrapped in the provided callback. Due to a difference between JSON and Javascript, two newline characters, \u2028 and \u2029, need to be escaped. See http://timelessrepo.com/json-isnt-a-javascript-subset for details. """ options = options or {} json = self.to_json(data, options) json = json.replace(u'\u2028', u'\\u2028').replace(u'\u2029', u'\\u2029') return u'%s(%s)' % (options['callback'], json)