Removed custom StringIO, force_text, smart_text compat

This commit is contained in:
Tymur Maryokhin 2014-12-04 03:11:42 +01:00
parent 09e59f2686
commit d54c67d79d
15 changed files with 31 additions and 52 deletions

View File

@ -9,31 +9,19 @@ from __future__ import unicode_literals
import inspect import inspect
from django.core.exceptions import ImproperlyConfigured from django.core.exceptions import ImproperlyConfigured
from django.utils.encoding import force_text
from django.conf import settings from django.conf import settings
from django.utils import six from django.utils import six
import django 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. # OrderedDict only available in Python 2.7.
# This will always be the case in Django 1.7 and above, as these versions # This will always be the case in Django 1.7 and above, as these versions
# no longer support Python 2.6. # no longer support Python 2.6.
# For Django <= 1.6 and Python 2.6 fall back to OrderedDict. # For Django <= 1.6 and Python 2.6 fall back to OrderedDict.
try: try:
from collections import OrderedDict from collections import OrderedDict
except: except ImportError:
from django.utils.datastructures import SortedDict as OrderedDict from django.utils.datastructures import SortedDict as OrderedDict
@ -72,21 +60,13 @@ if 'guardian' in settings.INSTALLED_APPS:
pass 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) # urlparse compat import (Required because it changed in python 3.x)
try: try:
from urllib import parse as urlparse from urllib import parse as urlparse
except ImportError: except ImportError:
import urlparse import urlparse
# UserDict moves in Python 3 # UserDict moves in Python 3
try: try:
from UserDict import UserDict from UserDict import UserDict
@ -104,14 +84,6 @@ def get_model_name(model_cls):
return model_cls._meta.module_name 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 # View._allowed_methods only present from 1.5 onwards
if django.VERSION >= (1, 5): if django.VERSION >= (1, 5):
from django.views.generic import View from django.views.generic import View

View File

@ -5,11 +5,11 @@ In addition Django's built in 403 and 404 exceptions are handled.
(`django.http.Http404` and `django.core.exceptions.PermissionDenied`) (`django.http.Http404` and `django.core.exceptions.PermissionDenied`)
""" """
from __future__ import unicode_literals 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 ugettext_lazy as _
from django.utils.translation import ungettext_lazy from django.utils.translation import ungettext_lazy
from rest_framework import status from rest_framework import status
from rest_framework.compat import force_text
import math import math

View File

@ -5,11 +5,11 @@ from django.core.validators import RegexValidator
from django.forms import ImageField as DjangoImageField from django.forms import ImageField as DjangoImageField
from django.utils import six, timezone from django.utils import six, timezone
from django.utils.dateparse import parse_date, parse_datetime, parse_time 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 django.utils.translation import ugettext_lazy as _
from rest_framework import ISO_8601 from rest_framework import ISO_8601
from rest_framework.compat import ( from rest_framework.compat import (
smart_text, EmailValidator, MinValueValidator, MaxValueValidator, EmailValidator, MinValueValidator, MaxValueValidator,
MinLengthValidator, MaxLengthValidator, URLValidator, OrderedDict MinLengthValidator, MaxLengthValidator, URLValidator, OrderedDict
) )
from rest_framework.exceptions import ValidationError from rest_framework.exceptions import ValidationError

View File

@ -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 are handled. We currently provide a single default implementation that returns
some fairly ad-hoc information about the view. 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. to return this information in a more standardized way.
""" """
from __future__ import unicode_literals from __future__ import unicode_literals
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
from django.http import Http404 from django.http import Http404
from django.utils.encoding import force_text
from rest_framework import exceptions, serializers 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.request import clone_request
from rest_framework.utils.field_mapping import ClassLookupDict from rest_framework.utils.field_mapping import ClassLookupDict

View File

@ -12,7 +12,8 @@ from django.http import QueryDict
from django.http.multipartparser import MultiPartParser as DjangoMultiPartParser from django.http.multipartparser import MultiPartParser as DjangoMultiPartParser
from django.http.multipartparser import MultiPartParserError, parse_header, ChunkIter from django.http.multipartparser import MultiPartParserError, parse_header, ChunkIter
from django.utils import six 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.exceptions import ParseError
from rest_framework import renderers from rest_framework import renderers
import json import json

View File

@ -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.fields import get_attribute, empty, Field
from rest_framework.reverse import reverse from rest_framework.reverse import reverse
from rest_framework.utils import html from rest_framework.utils import html

View File

@ -16,11 +16,11 @@ from django.http.multipartparser import parse_header
from django.template import Context, RequestContext, loader, Template from django.template import Context, RequestContext, loader, Template
from django.test.client import encode_multipart from django.test.client import encode_multipart
from django.utils import six from django.utils import six
from django.utils.encoding import smart_text
from django.utils.xmlutils import SimplerXMLGenerator from django.utils.xmlutils import SimplerXMLGenerator
from django.utils.six.moves import StringIO
from rest_framework import exceptions, serializers, status, VERSION from rest_framework import exceptions, serializers, status, VERSION
from rest_framework.compat import ( from rest_framework.compat import SHORT_SEPARATORS, LONG_SEPARATORS, yaml
SHORT_SEPARATORS, LONG_SEPARATORS, StringIO, smart_text, yaml
)
from rest_framework.exceptions import ParseError from rest_framework.exceptions import ParseError
from rest_framework.settings import api_settings from rest_framework.settings import api_settings
from rest_framework.request import is_form_media_type, override_method from rest_framework.request import is_form_media_type, override_method

View File

@ -14,9 +14,9 @@ from django.http import QueryDict
from django.http.multipartparser import parse_header from django.http.multipartparser import parse_header
from django.utils.datastructures import MultiValueDict from django.utils.datastructures import MultiValueDict
from django.utils.datastructures import MergeDict as DjangoMergeDict 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 HTTP_HEADER_ENCODING
from rest_framework import exceptions from rest_framework import exceptions
from rest_framework.compat import BytesIO
from rest_framework.settings import api_settings from rest_framework.settings import api_settings
import warnings import warnings

View File

@ -3,11 +3,11 @@ from django import template
from django.core.urlresolvers import reverse, NoReverseMatch from django.core.urlresolvers import reverse, NoReverseMatch
from django.http import QueryDict from django.http import QueryDict
from django.utils import six 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.html import escape
from django.utils.safestring import SafeData, mark_safe from django.utils.safestring import SafeData, mark_safe
from django.utils.html import smart_urlquote 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 from rest_framework.renderers import HTMLFormRenderer
import re import re

View File

@ -4,8 +4,9 @@ Helper classes for parsers.
from __future__ import unicode_literals from __future__ import unicode_literals
from django.db.models.query import QuerySet from django.db.models.query import QuerySet
from django.utils import six, timezone from django.utils import six, timezone
from django.utils.encoding import force_text
from django.utils.functional import Promise from django.utils.functional import Promise
from rest_framework.compat import force_text, OrderedDict from rest_framework.compat import OrderedDict
import datetime import datetime
import decimal import decimal
import types import types

View File

@ -3,8 +3,8 @@ Helper functions for creating user-friendly representations
of serializer classes and serializer fields. of serializer classes and serializer fields.
""" """
from django.db import models from django.db import models
from django.utils.encoding import force_text
from django.utils.functional import Promise from django.utils.functional import Promise
from rest_framework.compat import force_text
import re import re

View File

@ -5,9 +5,10 @@ from __future__ import unicode_literals
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
from django.http import Http404 from django.http import Http404
from django.utils.encoding import smart_text
from django.views.decorators.csrf import csrf_exempt from django.views.decorators.csrf import csrf_exempt
from rest_framework import status, exceptions 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.request import Request
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.settings import api_settings from rest_framework.settings import api_settings

View File

@ -2,8 +2,8 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from django.test import TestCase from django.test import TestCase
from django.utils.encoding import python_2_unicode_compatible from django.utils.encoding import python_2_unicode_compatible, smart_text
from rest_framework.compat import apply_markdown, smart_text from rest_framework.compat import apply_markdown
from rest_framework.views import APIView from rest_framework.views import APIView
from .description import ViewWithNonASCIICharactersInDocstring from .description import ViewWithNonASCIICharactersInDocstring
from .description import UTF8_TEST_DOCSTRING from .description import UTF8_TEST_DOCSTRING

View File

@ -5,8 +5,8 @@ from django import forms
from django.core.files.uploadhandler import MemoryFileUploadHandler from django.core.files.uploadhandler import MemoryFileUploadHandler
from django.test import TestCase from django.test import TestCase
from django.utils import unittest from django.utils import unittest
from django.utils.six.moves import StringIO
from rest_framework.compat import etree from rest_framework.compat import etree
from rest_framework.compat import StringIO
from rest_framework.exceptions import ParseError from rest_framework.exceptions import ParseError
from rest_framework.parsers import FormParser, FileUploadParser from rest_framework.parsers import FormParser, FileUploadParser
from rest_framework.parsers import XMLParser from rest_framework.parsers import XMLParser

View File

@ -7,9 +7,11 @@ from django.core.cache import cache
from django.db import models from django.db import models
from django.test import TestCase from django.test import TestCase
from django.utils import six, unittest 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 django.utils.translation import ugettext_lazy as _
from rest_framework import status, permissions 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.response import Response
from rest_framework.views import APIView from rest_framework.views import APIView
from rest_framework.renderers import BaseRenderer, JSONRenderer, YAMLRenderer, \ from rest_framework.renderers import BaseRenderer, JSONRenderer, YAMLRenderer, \