summaryrefslogtreecommitdiffstats
path: root/google_appengine/lib/django/django/core/serializers/pyyaml.py
diff options
context:
space:
mode:
Diffstat (limited to 'google_appengine/lib/django/django/core/serializers/pyyaml.py')
-rwxr-xr-xgoogle_appengine/lib/django/django/core/serializers/pyyaml.py36
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
+