diff options
| author | Tymur Maryokhin | 2014-12-04 03:11:42 +0100 | 
|---|---|---|
| committer | Tymur Maryokhin | 2014-12-04 03:11:42 +0100 | 
| commit | d54c67d79d0f5661ef33d860efe80a4272e22b3e (patch) | |
| tree | 0ef9ba48601c388545efd3f5d86d143ae9b1eeee | |
| parent | 09e59f268619927dc22f15fed97c3ceac05ea306 (diff) | |
| download | django-rest-framework-d54c67d79d0f5661ef33d860efe80a4272e22b3e.tar.bz2 | |
Removed custom StringIO, force_text, smart_text compat
| -rw-r--r-- | rest_framework/compat.py | 34 | ||||
| -rw-r--r-- | rest_framework/exceptions.py | 2 | ||||
| -rw-r--r-- | rest_framework/fields.py | 4 | ||||
| -rw-r--r-- | rest_framework/metadata.py | 7 | ||||
| -rw-r--r-- | rest_framework/parsers.py | 3 | ||||
| -rw-r--r-- | rest_framework/relations.py | 3 | ||||
| -rw-r--r-- | rest_framework/renderers.py | 6 | ||||
| -rw-r--r-- | rest_framework/request.py | 2 | ||||
| -rw-r--r-- | rest_framework/templatetags/rest_framework.py | 4 | ||||
| -rw-r--r-- | rest_framework/utils/encoders.py | 3 | ||||
| -rw-r--r-- | rest_framework/utils/representation.py | 2 | ||||
| -rw-r--r-- | rest_framework/views.py | 3 | ||||
| -rw-r--r-- | tests/test_description.py | 4 | ||||
| -rw-r--r-- | tests/test_parsers.py | 2 | ||||
| -rw-r--r-- | tests/test_renderers.py | 4 | 
15 files changed, 31 insertions, 52 deletions
| diff --git a/rest_framework/compat.py b/rest_framework/compat.py index eefaf22e..91723b45 100644 --- a/rest_framework/compat.py +++ b/rest_framework/compat.py @@ -9,31 +9,19 @@ from __future__ import unicode_literals  import inspect  from django.core.exceptions import ImproperlyConfigured +from django.utils.encoding import force_text  from django.conf import settings  from django.utils import six  import django -# Handle django.utils.encoding rename in 1.5 onwards. -# smart_unicode -> smart_text -# force_unicode -> force_text -try: -    from django.utils.encoding import smart_text -except ImportError: -    from django.utils.encoding import smart_unicode as smart_text -try: -    from django.utils.encoding import force_text -except ImportError: -    from django.utils.encoding import force_unicode as force_text - -  # OrderedDict only available in Python 2.7.  # This will always be the case in Django 1.7 and above, as these versions  # no longer support Python 2.6.  # For Django <= 1.6 and Python 2.6 fall back to OrderedDict.  try:      from collections import OrderedDict -except: +except ImportError:      from django.utils.datastructures import SortedDict as OrderedDict @@ -72,21 +60,13 @@ if 'guardian' in settings.INSTALLED_APPS:          pass -# cStringIO only if it's available, otherwise StringIO -try: -    import cStringIO.StringIO as StringIO -except ImportError: -    StringIO = six.StringIO - -BytesIO = six.BytesIO - -  # urlparse compat import (Required because it changed in python 3.x)  try:      from urllib import parse as urlparse  except ImportError:      import urlparse +  # UserDict moves in Python 3  try:      from UserDict import UserDict @@ -104,14 +84,6 @@ def get_model_name(model_cls):          return model_cls._meta.module_name -def get_concrete_model(model_cls): -    try: -        return model_cls._meta.concrete_model -    except AttributeError: -        # 1.3 does not include concrete model -        return model_cls - -  # View._allowed_methods only present from 1.5 onwards  if django.VERSION >= (1, 5):      from django.views.generic import View diff --git a/rest_framework/exceptions.py b/rest_framework/exceptions.py index 906de3b0..be41d08d 100644 --- a/rest_framework/exceptions.py +++ b/rest_framework/exceptions.py @@ -5,11 +5,11 @@ In addition Django's built in 403 and 404 exceptions are handled.  (`django.http.Http404` and `django.core.exceptions.PermissionDenied`)  """  from __future__ import unicode_literals +from django.utils.encoding import force_text  from django.utils.translation import ugettext_lazy as _  from django.utils.translation import ungettext_lazy  from rest_framework import status -from rest_framework.compat import force_text  import math diff --git a/rest_framework/fields.py b/rest_framework/fields.py index ca9c479f..37adbe16 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -5,11 +5,11 @@ from django.core.validators import RegexValidator  from django.forms import ImageField as DjangoImageField  from django.utils import six, timezone  from django.utils.dateparse import parse_date, parse_datetime, parse_time -from django.utils.encoding import is_protected_type +from django.utils.encoding import is_protected_type, smart_text  from django.utils.translation import ugettext_lazy as _  from rest_framework import ISO_8601  from rest_framework.compat import ( -    smart_text, EmailValidator, MinValueValidator, MaxValueValidator, +    EmailValidator, MinValueValidator, MaxValueValidator,      MinLengthValidator, MaxLengthValidator, URLValidator, OrderedDict  )  from rest_framework.exceptions import ValidationError diff --git a/rest_framework/metadata.py b/rest_framework/metadata.py index de829d00..3b058fab 100644 --- a/rest_framework/metadata.py +++ b/rest_framework/metadata.py @@ -1,17 +1,18 @@  """ -The metadata API is used to allow cusomization of how `OPTIONS` requests +The metadata API is used to allow customization of how `OPTIONS` requests  are handled. We currently provide a single default implementation that returns  some fairly ad-hoc information about the view. -Future implementations might use JSON schema or other definations in order +Future implementations might use JSON schema or other definitions in order  to return this information in a more standardized way.  """  from __future__ import unicode_literals  from django.core.exceptions import PermissionDenied  from django.http import Http404 +from django.utils.encoding import force_text  from rest_framework import exceptions, serializers -from rest_framework.compat import force_text, OrderedDict +from rest_framework.compat import OrderedDict  from rest_framework.request import clone_request  from rest_framework.utils.field_mapping import ClassLookupDict diff --git a/rest_framework/parsers.py b/rest_framework/parsers.py index d229abec..7b948362 100644 --- a/rest_framework/parsers.py +++ b/rest_framework/parsers.py @@ -12,7 +12,8 @@ from django.http import QueryDict  from django.http.multipartparser import MultiPartParser as DjangoMultiPartParser  from django.http.multipartparser import MultiPartParserError, parse_header, ChunkIter  from django.utils import six -from rest_framework.compat import etree, yaml, force_text, urlparse +from django.utils.encoding import force_text +from rest_framework.compat import etree, yaml, urlparse  from rest_framework.exceptions import ParseError  from rest_framework import renderers  import json diff --git a/rest_framework/relations.py b/rest_framework/relations.py index d1ea497a..b889acc8 100644 --- a/rest_framework/relations.py +++ b/rest_framework/relations.py @@ -1,4 +1,5 @@ -from rest_framework.compat import smart_text, urlparse +from django.utils.encoding import smart_text +from rest_framework.compat import urlparse  from rest_framework.fields import get_attribute, empty, Field  from rest_framework.reverse import reverse  from rest_framework.utils import html diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py index e87d16d0..ee34ffae 100644 --- a/rest_framework/renderers.py +++ b/rest_framework/renderers.py @@ -16,11 +16,11 @@ from django.http.multipartparser import parse_header  from django.template import Context, RequestContext, loader, Template  from django.test.client import encode_multipart  from django.utils import six +from django.utils.encoding import smart_text  from django.utils.xmlutils import SimplerXMLGenerator +from django.utils.six.moves import StringIO  from rest_framework import exceptions, serializers, status, VERSION -from rest_framework.compat import ( -    SHORT_SEPARATORS, LONG_SEPARATORS, StringIO, smart_text, yaml -) +from rest_framework.compat import SHORT_SEPARATORS, LONG_SEPARATORS, yaml  from rest_framework.exceptions import ParseError  from rest_framework.settings import api_settings  from rest_framework.request import is_form_media_type, override_method diff --git a/rest_framework/request.py b/rest_framework/request.py index d7e74674..20e049ed 100644 --- a/rest_framework/request.py +++ b/rest_framework/request.py @@ -14,9 +14,9 @@ from django.http import QueryDict  from django.http.multipartparser import parse_header  from django.utils.datastructures import MultiValueDict  from django.utils.datastructures import MergeDict as DjangoMergeDict +from django.utils.six import BytesIO  from rest_framework import HTTP_HEADER_ENCODING  from rest_framework import exceptions -from rest_framework.compat import BytesIO  from rest_framework.settings import api_settings  import warnings diff --git a/rest_framework/templatetags/rest_framework.py b/rest_framework/templatetags/rest_framework.py index f1825a24..f8686439 100644 --- a/rest_framework/templatetags/rest_framework.py +++ b/rest_framework/templatetags/rest_framework.py @@ -3,11 +3,11 @@ from django import template  from django.core.urlresolvers import reverse, NoReverseMatch  from django.http import QueryDict  from django.utils import six -from django.utils.encoding import iri_to_uri +from django.utils.encoding import iri_to_uri, force_text  from django.utils.html import escape  from django.utils.safestring import SafeData, mark_safe  from django.utils.html import smart_urlquote -from rest_framework.compat import urlparse, force_text +from rest_framework.compat import urlparse  from rest_framework.renderers import HTMLFormRenderer  import re diff --git a/rest_framework/utils/encoders.py b/rest_framework/utils/encoders.py index 4d6bb3a3..adc83e57 100644 --- a/rest_framework/utils/encoders.py +++ b/rest_framework/utils/encoders.py @@ -4,8 +4,9 @@ Helper classes for parsers.  from __future__ import unicode_literals  from django.db.models.query import QuerySet  from django.utils import six, timezone +from django.utils.encoding import force_text  from django.utils.functional import Promise -from rest_framework.compat import force_text, OrderedDict +from rest_framework.compat import OrderedDict  import datetime  import decimal  import types diff --git a/rest_framework/utils/representation.py b/rest_framework/utils/representation.py index 2a7c4675..3f17a8b9 100644 --- a/rest_framework/utils/representation.py +++ b/rest_framework/utils/representation.py @@ -3,8 +3,8 @@ Helper functions for creating user-friendly representations  of serializer classes and serializer fields.  """  from django.db import models +from django.utils.encoding import force_text  from django.utils.functional import Promise -from rest_framework.compat import force_text  import re diff --git a/rest_framework/views.py b/rest_framework/views.py index 292431c8..bc870417 100644 --- a/rest_framework/views.py +++ b/rest_framework/views.py @@ -5,9 +5,10 @@ from __future__ import unicode_literals  from django.core.exceptions import PermissionDenied  from django.http import Http404 +from django.utils.encoding import smart_text  from django.views.decorators.csrf import csrf_exempt  from rest_framework import status, exceptions -from rest_framework.compat import smart_text, HttpResponseBase, View +from rest_framework.compat import HttpResponseBase, View  from rest_framework.request import Request  from rest_framework.response import Response  from rest_framework.settings import api_settings diff --git a/tests/test_description.py b/tests/test_description.py index 6cd871ed..78ce2350 100644 --- a/tests/test_description.py +++ b/tests/test_description.py @@ -2,8 +2,8 @@  from __future__ import unicode_literals  from django.test import TestCase -from django.utils.encoding import python_2_unicode_compatible -from rest_framework.compat import apply_markdown, smart_text +from django.utils.encoding import python_2_unicode_compatible, smart_text +from rest_framework.compat import apply_markdown  from rest_framework.views import APIView  from .description import ViewWithNonASCIICharactersInDocstring  from .description import UTF8_TEST_DOCSTRING diff --git a/tests/test_parsers.py b/tests/test_parsers.py index 88eccef3..d28d8bd4 100644 --- a/tests/test_parsers.py +++ b/tests/test_parsers.py @@ -5,8 +5,8 @@ from django import forms  from django.core.files.uploadhandler import MemoryFileUploadHandler  from django.test import TestCase  from django.utils import unittest +from django.utils.six.moves import StringIO  from rest_framework.compat import etree -from rest_framework.compat import StringIO  from rest_framework.exceptions import ParseError  from rest_framework.parsers import FormParser, FileUploadParser  from rest_framework.parsers import XMLParser diff --git a/tests/test_renderers.py b/tests/test_renderers.py index 416d7f22..22eb5459 100644 --- a/tests/test_renderers.py +++ b/tests/test_renderers.py @@ -7,9 +7,11 @@ from django.core.cache import cache  from django.db import models  from django.test import TestCase  from django.utils import six, unittest +from django.utils.six import BytesIO +from django.utils.six.moves import StringIO  from django.utils.translation import ugettext_lazy as _  from rest_framework import status, permissions -from rest_framework.compat import yaml, etree, StringIO, BytesIO +from rest_framework.compat import yaml, etree  from rest_framework.response import Response  from rest_framework.views import APIView  from rest_framework.renderers import BaseRenderer, JSONRenderer, YAMLRenderer, \ | 
