diff -r b758351d191f -r cc9b7e14412b web/lib/django/core/serializers/pyyaml.py --- a/web/lib/django/core/serializers/pyyaml.py Wed May 19 17:43:59 2010 +0200 +++ b/web/lib/django/core/serializers/pyyaml.py Tue May 25 02:43:45 2010 +0200 @@ -5,13 +5,9 @@ """ from StringIO import StringIO +import decimal import yaml -try: - import decimal -except ImportError: - from django.utils import _decimal as decimal # Python 2.3 fallback - from django.db import models from django.core.serializers.python import Serializer as PythonSerializer from django.core.serializers.python import Deserializer as PythonDeserializer @@ -26,9 +22,9 @@ """ Convert a queryset to YAML. """ - + internal_use_only = False - + def handle_field(self, obj, field): # A nasty special case: base YAML doesn't support serialization of time # types (as opposed to dates or datetimes, which it does support). Since @@ -40,10 +36,11 @@ self._current[field.name] = str(getattr(obj, field.name)) else: super(Serializer, self).handle_field(obj, field) - + def end_serialization(self): self.options.pop('stream', None) self.options.pop('fields', None) + self.options.pop('use_natural_keys', None) yaml.dump(self.objects, self.stream, Dumper=DjangoSafeDumper, **self.options) def getvalue(self): @@ -57,6 +54,6 @@ stream = StringIO(stream_or_string) else: stream = stream_or_string - for obj in PythonDeserializer(yaml.load(stream)): + for obj in PythonDeserializer(yaml.load(stream), **options): yield obj