Commit 47c61679 by kazmiruk

adds backward compatibility

parent e4e3f573
...@@ -30,6 +30,11 @@ from rest_framework.compat import ( ...@@ -30,6 +30,11 @@ from rest_framework.compat import (
) )
from rest_framework.settings import api_settings from rest_framework.settings import api_settings
try:
from collections import OrderedDict
except ImportError:
from django.utils.datastructures import SortedDict as OrderedDict
def is_simple_callable(obj): def is_simple_callable(obj):
""" """
...@@ -224,7 +229,7 @@ class Field(object): ...@@ -224,7 +229,7 @@ class Field(object):
return [self.to_native(item) for item in value] return [self.to_native(item) for item in value]
elif isinstance(value, dict): elif isinstance(value, dict):
# Make sure we preserve field ordering, if it exists # Make sure we preserve field ordering, if it exists
ret = collections.OrderedDict() ret = OrderedDict()
for key, val in value.items(): for key, val in value.items():
ret[key] = self.to_native(val) ret[key] = self.to_native(val)
return ret return ret
...@@ -239,7 +244,7 @@ class Field(object): ...@@ -239,7 +244,7 @@ class Field(object):
return {} return {}
def metadata(self): def metadata(self):
metadata = collections.OrderedDict() metadata = OrderedDict()
metadata['type'] = self.type_label metadata['type'] = self.type_label
metadata['required'] = getattr(self, 'required', False) metadata['required'] = getattr(self, 'required', False)
optional_attrs = ['read_only', 'label', 'help_text', optional_attrs = ['read_only', 'label', 'help_text',
......
...@@ -16,7 +16,7 @@ For example, you might have a `urls.py` that looks something like this: ...@@ -16,7 +16,7 @@ For example, you might have a `urls.py` that looks something like this:
from __future__ import unicode_literals from __future__ import unicode_literals
import itertools import itertools
from collections import namedtuple, OrderedDict from collections import namedtuple
from django.conf.urls import patterns, url from django.conf.urls import patterns, url
from django.core.exceptions import ImproperlyConfigured from django.core.exceptions import ImproperlyConfigured
from django.core.urlresolvers import NoReverseMatch from django.core.urlresolvers import NoReverseMatch
...@@ -25,6 +25,11 @@ from rest_framework.response import Response ...@@ -25,6 +25,11 @@ from rest_framework.response import Response
from rest_framework.reverse import reverse from rest_framework.reverse import reverse
from rest_framework.urlpatterns import format_suffix_patterns from rest_framework.urlpatterns import format_suffix_patterns
try:
from collections import OrderedDict
except ImportError:
from django.utils.datastructures import SortedDict as OrderedDict
Route = namedtuple('Route', ['url', 'mapping', 'name', 'initkwargs']) Route = namedtuple('Route', ['url', 'mapping', 'name', 'initkwargs'])
DynamicDetailRoute = namedtuple('DynamicDetailRoute', ['url', 'name', 'initkwargs']) DynamicDetailRoute = namedtuple('DynamicDetailRoute', ['url', 'name', 'initkwargs'])
......
...@@ -11,7 +11,6 @@ python primitives. ...@@ -11,7 +11,6 @@ python primitives.
response content is handled by parsers and renderers. response content is handled by parsers and renderers.
""" """
from __future__ import unicode_literals from __future__ import unicode_literals
from collections import OrderedDict
import copy import copy
import datetime import datetime
import inspect import inspect
...@@ -37,6 +36,11 @@ from rest_framework.settings import api_settings ...@@ -37,6 +36,11 @@ from rest_framework.settings import api_settings
from rest_framework.relations import * # NOQA from rest_framework.relations import * # NOQA
from rest_framework.fields import * # NOQA from rest_framework.fields import * # NOQA
try:
from collections import OrderedDict
except ImportError:
from django.utils.datastructures import SortedDict as OrderedDict
def _resolve_model(obj): def _resolve_model(obj):
""" """
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
Helper classes for parsers. Helper classes for parsers.
""" """
from __future__ import unicode_literals from __future__ import unicode_literals
from collections import OrderedDict
from django.utils import timezone from django.utils import timezone
from django.db.models.query import QuerySet from django.db.models.query import QuerySet
from django.utils.functional import Promise from django.utils.functional import Promise
...@@ -13,6 +12,11 @@ import decimal ...@@ -13,6 +12,11 @@ import decimal
import types import types
import json import json
try:
from collections import OrderedDict
except ImportError:
from django.utils.datastructures import SortedDict as OrderedDict
class JSONEncoder(json.JSONEncoder): class JSONEncoder(json.JSONEncoder):
""" """
......
...@@ -3,7 +3,6 @@ Provides an APIView class that is the base of all views in REST framework. ...@@ -3,7 +3,6 @@ Provides an APIView class that is the base of all views in REST framework.
""" """
from __future__ import unicode_literals from __future__ import unicode_literals
from collections import OrderedDict
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
from django.http import Http404 from django.http import Http404
from django.views.decorators.csrf import csrf_exempt from django.views.decorators.csrf import csrf_exempt
...@@ -14,6 +13,11 @@ from rest_framework.response import Response ...@@ -14,6 +13,11 @@ from rest_framework.response import Response
from rest_framework.settings import api_settings from rest_framework.settings import api_settings
from rest_framework.utils import formatting from rest_framework.utils import formatting
try:
from collections import OrderedDict
except ImportError:
from django.utils.datastructures import SortedDict as OrderedDict
def get_view_name(view_cls, suffix=None): def get_view_name(view_cls, suffix=None):
""" """
......
...@@ -3,7 +3,6 @@ General serializer field tests. ...@@ -3,7 +3,6 @@ General serializer field tests.
""" """
from __future__ import unicode_literals from __future__ import unicode_literals
from collections import OrderedDict
import datetime import datetime
import re import re
from decimal import Decimal from decimal import Decimal
...@@ -14,6 +13,11 @@ from django.test import TestCase ...@@ -14,6 +13,11 @@ from django.test import TestCase
from rest_framework import serializers from rest_framework import serializers
from tests.models import RESTFrameworkModel from tests.models import RESTFrameworkModel
try:
from collections import OrderedDict
except ImportError:
from django.utils.datastructures import SortedDict as OrderedDict
class TimestampedModel(models.Model): class TimestampedModel(models.Model):
added = models.DateTimeField(auto_now_add=True) added = models.DateTimeField(auto_now_add=True)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment