def render(self, request): stream = StringIO.StringIO() xml = SimplerXMLGenerator(stream, "utf-8") xml.startDocument() xml.startElement("response", {}) self._to_xml(xml, self.construct()) xml.endElement("response") xml.endDocument() return stream.getvalue() Emitter.register('xml', XMLEmitter, 'text/xml; charset=utf-8') Mimer.register(lambda *a: None, ('text/xml',)) class JSONEmitter(Emitter): """ JSON emitter, understands timestamps. """ def render(self, request): cb = request.GET.get('callback', None) seria = json.dumps(self.construct(), cls=DateTimeAwareJSONEncoder, ensure_ascii=False, indent=4) # Callback if cb and is_valid_jsonp_callback_value(cb): return '%s(%s)' % (cb, seria) return seria
def render(self, request): stream = StringIO.StringIO() xml = SimplerXMLGenerator(stream, "utf-8") xml.startDocument() xml.startElement("response", {}) self._to_xml(xml, self.construct()) xml.endElement("response") xml.endDocument() return stream.getvalue() Emitter.register('xml', XMLEmitter, 'text/xml; charset=utf-8') Mimer.register(lambda *a: None, ('text/xml',)) class JSONEmitter(Emitter): """ JSON emitter, understands timestamps. """ def render(self, request): cb = request.GET.get('callback', None) seria = simplejson.dumps(self.construct(), cls=DateTimeAwareJSONEncoder, ensure_ascii=False, indent=4) # Callback if cb and is_valid_jsonp_callback_value(cb): return '%s(%s)' % (cb, seria) return seria
def render(self, request, post_processor=None): stream = StringIO.StringIO() xml = SimplerXMLGenerator(stream, "utf-8") xml.startDocument() xml.startElement("response", {}) self._to_xml(xml, self.construct(post_processor=post_processor)) xml.endElement("response") xml.endDocument() return stream.getvalue() Emitter.register('xml', XMLEmitter, 'text/xml; charset=utf-8') Mimer.register(lambda *a: None, ('text/xml',)) class JSONEmitter(Emitter): """ JSON emitter, understands timestamps. """ def render(self, request, post_processor=None): cb = request.GET.get('callback') seria = json.dumps(self.construct(), cls=DjangoJSONEncoder, ensure_ascii=False, indent=4) # Callback if cb: return '%s(%s)' % (cb, seria) return seria
stream = StringIO.StringIO() xml = SimplerXMLGenerator(stream, "utf-8") xml.startDocument() xml.startElement("response", {}) self._to_xml(xml, self.construct(post_processor=post_processor)) xml.endElement("response") xml.endDocument() return stream.getvalue() Emitter.register('xml', XMLEmitter, 'text/xml; charset=utf-8') Mimer.register(lambda *a: None, ('text/xml', )) class JSONEmitter(Emitter): """ JSON emitter, understands timestamps. """ def render(self, request, post_processor=None): cb = request.GET.get('callback') seria = json.dumps(self.construct(), cls=DateTimeEncoder, ensure_ascii=False, indent=4) # Callback if cb:
stream = StringIO.StringIO() xml = SimplerXMLGenerator(stream, "utf-8") xml.startDocument() xml.startElement("response", {}) self._to_xml(xml, self.construct()) xml.endElement("response") xml.endDocument() return stream.getvalue() Emitter.register('xml', XMLEmitter, 'text/xml; charset=utf-8') Mimer.register(lambda *a: None, ('text/xml', )) class JSONEmitter(Emitter): """ JSON emitter, understands timestamps. """ def construct_one(self, data): """ Recursively serialize a lot of types, and in cases where it doesn't recognize the type, it will fall back to Django's `smart_unicode`. Returns `dict`. """ def _any(thing, fields=()):
stream = StringIO.StringIO() xml = SimplerXMLGenerator(stream, "utf-8") xml.startDocument() xml.startElement("response", {}) self._to_xml(xml, self.construct()) xml.endElement("response") xml.endDocument() return stream.getvalue() Emitter.register('xml', XMLEmitter, 'text/xml; charset=utf-8') Mimer.register(xml_to_dict.fromstring, ('text/xml',)) class JSONEmitter(Emitter): """ JSON emitter, understands timestamps. """ def render(self, request): cb = request.GET.get('callback') seria = simplejson.dumps(self.construct(), cls=DateTimeAwareJSONEncoder, ensure_ascii=False, indent=4) # Callback if cb: return '%s(%s)' % (cb, seria) return seria
return '%s(%s)' % (cb, seria) return seria class YAMLEmitter(Emitter): """ YAML emitter, uses `safe_dump` to omit the specific types when outputting to non-Python. """ def render(self, request): return yaml.safe_dump(self.construct()) if yaml: # Only register yaml if it was import successfully. Emitter.register('yaml', YAMLEmitter, 'application/x-yaml; charset=utf-8') Mimer.register(lambda s: dict(yaml.load(s)), ('application/x-yaml',)) class PickleEmitter(Emitter): """ Emitter that returns Python pickled. """ def render(self, request): return pickle.dumps(self.construct()) """ WARNING: Accepting arbitrary pickled data is a huge security concern. The unpickler has been disabled by default now, and if you want to use it, please be aware of what implications it will have. Read more: http://nadiana.com/python-pickle-insecure
stream = StringIO.StringIO() xml = SimplerXMLGenerator(stream, "utf-8") xml.startDocument() xml.startElement("response", {}) self._to_xml(xml, self.construct()) xml.endElement("response") xml.endDocument() return stream.getvalue() Emitter.register("xml", XMLEmitter, "text/xml; charset=utf-8") Mimer.register(lambda *a: None, ("text/xml",)) class JSONEmitter(Emitter): """ JSON emitter, understands timestamps. """ def render(self, request): cb = request.GET.get("callback") seria = json.dumps(self.construct(), cls=DateTimeAwareJSONEncoder, ensure_ascii=False, indent=4) # Callback if cb: return "%s(%s)" % (cb, seria)
return seria class YAMLEmitter(Emitter): """ YAML emitter, uses `safe_dump` to omit the specific types when outputting to non-Python. """ def render(self, request): return yaml.safe_dump(self.construct()) if yaml: # Only register yaml if it was import successfully. Emitter.register('yaml', YAMLEmitter, 'application/x-yaml; charset=utf-8') Mimer.register(lambda s: dict(yaml.load(s)), ('application/x-yaml', )) class PickleEmitter(Emitter): """ Emitter that returns Python pickled. """ def render(self, request): return pickle.dumps(self.construct()) """ WARNING: Accepting arbitrary pickled data is a huge security concern. The unpickler has been disabled by default now, and if you want to use it, please be aware of what implications it will have.