diff options
| author | Tom Christie | 2012-10-17 22:07:56 +0100 | 
|---|---|---|
| committer | Tom Christie | 2012-10-17 22:07:56 +0100 | 
| commit | 99d48f90030d174ef80498b48f56af6489865f0d (patch) | |
| tree | 4c4181d708fc6733c3f4459af7235fe1a17f0632 /rest_framework | |
| parent | 6717d654d0bbfdfca4aaea84a5b4814c4e5f7567 (diff) | |
| download | django-rest-framework-99d48f90030d174ef80498b48f56af6489865f0d.tar.bz2 | |
Drop .parse_string_or_stream() - keep API minimal.
Diffstat (limited to 'rest_framework')
| -rw-r--r-- | rest_framework/parsers.py | 28 | ||||
| -rw-r--r-- | rest_framework/tests/request.py | 2 | ||||
| -rw-r--r-- | rest_framework/views.py | 2 | 
3 files changed, 10 insertions, 22 deletions
| diff --git a/rest_framework/parsers.py b/rest_framework/parsers.py index 048b71e1..6287b842 100644 --- a/rest_framework/parsers.py +++ b/rest_framework/parsers.py @@ -21,7 +21,6 @@ from xml.etree import ElementTree as ET  from xml.parsers.expat import ExpatError  import datetime  import decimal -from io import BytesIO  class DataAndFiles(object): @@ -33,29 +32,18 @@ class DataAndFiles(object):  class BaseParser(object):      """      All parsers should extend `BaseParser`, specifying a `media_type` -    attribute, and overriding the `.parse_stream()` method. +    attribute, and overriding the `.parse()` method.      """      media_type = None -    def parse(self, string_or_stream, parser_context=None): -        """ -        The main entry point to parsers.  This is a light wrapper around -        `parse_stream`, that instead handles both string and stream objects. -        """ -        if isinstance(string_or_stream, basestring): -            stream = BytesIO(string_or_stream) -        else: -            stream = string_or_stream -        return self.parse_stream(stream, parser_context) - -    def parse_stream(self, stream, parser_context=None): +    def parse(self, stream, parser_context=None):          """          Given a stream to read from, return the deserialized output.          Should return parsed data, or a DataAndFiles object consisting of the          parsed data and files.          """ -        raise NotImplementedError(".parse_stream() must be overridden.") +        raise NotImplementedError(".parse() must be overridden.")  class JSONParser(BaseParser): @@ -65,7 +53,7 @@ class JSONParser(BaseParser):      media_type = 'application/json' -    def parse_stream(self, stream, parser_context=None): +    def parse(self, stream, parser_context=None):          """          Returns a 2-tuple of `(data, files)`. @@ -85,7 +73,7 @@ class YAMLParser(BaseParser):      media_type = 'application/yaml' -    def parse_stream(self, stream, parser_context=None): +    def parse(self, stream, parser_context=None):          """          Returns a 2-tuple of `(data, files)`. @@ -105,7 +93,7 @@ class FormParser(BaseParser):      media_type = 'application/x-www-form-urlencoded' -    def parse_stream(self, stream, parser_context=None): +    def parse(self, stream, parser_context=None):          """          Returns a 2-tuple of `(data, files)`. @@ -123,7 +111,7 @@ class MultiPartParser(BaseParser):      media_type = 'multipart/form-data' -    def parse_stream(self, stream, parser_context=None): +    def parse(self, stream, parser_context=None):          """          Returns a DataAndFiles object. @@ -148,7 +136,7 @@ class XMLParser(BaseParser):      media_type = 'application/xml' -    def parse_stream(self, stream, parser_context=None): +    def parse(self, stream, parser_context=None):          try:              tree = ET.parse(stream)          except (ExpatError, ETParseError, ValueError), exc: diff --git a/rest_framework/tests/request.py b/rest_framework/tests/request.py index f90bebf4..f698e845 100644 --- a/rest_framework/tests/request.py +++ b/rest_framework/tests/request.py @@ -27,7 +27,7 @@ factory = RequestFactory()  class PlainTextParser(BaseParser):      media_type = 'text/plain' -    def parse_stream(self, stream, parser_context=None): +    def parse(self, stream, parser_context=None):          """          Returns a 2-tuple of `(data, files)`. diff --git a/rest_framework/views.py b/rest_framework/views.py index 62fc92f9..1be2593c 100644 --- a/rest_framework/views.py +++ b/rest_framework/views.py @@ -158,7 +158,7 @@ class APIView(View):      def get_parser_context(self, http_request):          """ -        Returns a dict that is passed through to Parser.parse_stream(), +        Returns a dict that is passed through to Parser.parse(),          as the `parser_context` keyword argument.          """          return { | 
