diff options
Diffstat (limited to 'google_appengine/lib/django/django/core/serializers/pyyaml.py')
-rwxr-xr-x | google_appengine/lib/django/django/core/serializers/pyyaml.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/google_appengine/lib/django/django/core/serializers/pyyaml.py b/google_appengine/lib/django/django/core/serializers/pyyaml.py new file mode 100755 index 0000000..fa3dec9 --- /dev/null +++ b/google_appengine/lib/django/django/core/serializers/pyyaml.py @@ -0,0 +1,36 @@ +""" +YAML serializer. + +Requires PyYaml (http://pyyaml.org/), but that's checked for in __init__. +""" + +import datetime +from django.core.serializers.python import Serializer as PythonSerializer +from django.core.serializers.python import Deserializer as PythonDeserializer +try: + from cStringIO import StringIO +except ImportError: + from StringIO import StringIO +import yaml + +class Serializer(PythonSerializer): + """ + Convert a queryset to YAML. + """ + def end_serialization(self): + yaml.dump(self.objects, self.stream, **self.options) + + def getvalue(self): + return self.stream.getvalue() + +def Deserializer(stream_or_string, **options): + """ + Deserialize a stream or string of YAML data. + """ + if isinstance(stream_or_string, basestring): + stream = StringIO(stream_or_string) + else: + stream = stream_or_string + for obj in PythonDeserializer(yaml.load(stream)): + yield obj + |