summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Schneier <josh.schneier@gmail.com>2017-04-26 14:17:41 -0400
committerTim Graham <timograham@gmail.com>2017-04-26 19:39:22 -0400
commita1b2c1d76ec4b7ca396b015a0616a1f8a1845066 (patch)
treefaaf81c21a80311ecd8582c7f77666fdc4487280
parent278a09ac1f410cf4e3472146324feded2e2c18b3 (diff)
Fixed #28137 -- Deprecated HttpRequest.xreadlines().
-rw-r--r--django/http/request.py11
-rw-r--r--docs/internals/deprecation.txt2
-rw-r--r--docs/ref/request-response.txt1
-rw-r--r--docs/releases/2.0.txt3
4 files changed, 14 insertions, 3 deletions
diff --git a/django/http/request.py b/django/http/request.py
index 42da121ae1..17771f7ef6 100644
--- a/django/http/request.py
+++ b/django/http/request.py
@@ -1,5 +1,6 @@
import copy
import re
+import warnings
from io import BytesIO
from itertools import chain
from urllib.parse import quote, urlencode, urljoin, urlsplit
@@ -12,6 +13,7 @@ from django.core.exceptions import (
from django.core.files import uploadhandler
from django.http.multipartparser import MultiPartParser, MultiPartParserError
from django.utils.datastructures import ImmutableList, MultiValueDict
+from django.utils.deprecation import RemovedInDjango30Warning
from django.utils.encoding import escape_uri_path, force_bytes, iri_to_uri
from django.utils.http import is_same_domain, limited_parse_qsl
@@ -328,14 +330,19 @@ class HttpRequest:
except IOError as e:
raise UnreadablePostError(*e.args) from e
- def xreadlines(self):
+ def __iter__(self):
while True:
buf = self.readline()
if not buf:
break
yield buf
- __iter__ = xreadlines
+ def xreadlines(self):
+ warnings.warn(
+ 'HttpRequest.xreadlines() is deprecated in favor of iterating the '
+ 'request.', RemovedInDjango30Warning, stacklevel=2,
+ )
+ yield from self
def readlines(self):
return list(iter(self))
diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt
index e9eb6b24cf..cee80fdbe2 100644
--- a/docs/internals/deprecation.txt
+++ b/docs/internals/deprecation.txt
@@ -21,6 +21,8 @@ details on these changes.
* The ``DEFAULT_CONTENT_TYPE`` setting will be removed.
+* ``HttpRequest.xreadlines()`` will be removed.
+
.. _deprecation-removed-in-2.1:
2.1
diff --git a/docs/ref/request-response.txt b/docs/ref/request-response.txt
index 6de18234c4..ec58761a43 100644
--- a/docs/ref/request-response.txt
+++ b/docs/ref/request-response.txt
@@ -362,7 +362,6 @@ Methods
.. method:: HttpRequest.read(size=None)
.. method:: HttpRequest.readline()
.. method:: HttpRequest.readlines()
-.. method:: HttpRequest.xreadlines()
.. method:: HttpRequest.__iter__()
Methods implementing a file-like interface for reading from an
diff --git a/docs/releases/2.0.txt b/docs/releases/2.0.txt
index cc1248a9b0..223e008e37 100644
--- a/docs/releases/2.0.txt
+++ b/docs/releases/2.0.txt
@@ -334,6 +334,9 @@ Miscellaneous
well with third-party apps and is obsolete since HTML5 has mostly superseded
XHTML.
+* ``HttpRequest.xreadlines()`` is deprecated in favor of iterating over the
+ request.
+
.. _removed-features-2.0:
Features removed in 2.0