This commit is contained in:
2025-05-22 21:22:15 +02:00
parent 3d57f842f9
commit 97cb9c8703
156 changed files with 1205 additions and 6603 deletions

View File

@@ -50,6 +50,10 @@ class Request(_SansIORequest):
prevent consuming the form data in middleware, which would make
it unavailable to the final application.
.. versionchanged:: 3.0
The ``charset``, ``url_charset``, and ``encoding_errors`` parameters
were removed.
.. versionchanged:: 2.1
Old ``BaseRequest`` and mixin classes were removed.
@@ -145,9 +149,6 @@ class Request(_SansIORequest):
"""
from ..test import EnvironBuilder
kwargs.setdefault(
"charset", cls.charset if not isinstance(cls.charset, property) else None
)
builder = EnvironBuilder(*args, **kwargs)
try:
return builder.get_request(cls)
@@ -240,12 +241,8 @@ class Request(_SansIORequest):
.. versionadded:: 0.8
"""
charset = self._charset if self._charset != "utf-8" else None
errors = self._encoding_errors if self._encoding_errors != "replace" else None
return self.form_data_parser_class(
stream_factory=self._get_file_stream,
charset=charset,
errors=errors,
max_form_memory_size=self.max_form_memory_size,
max_content_length=self.max_content_length,
max_form_parts=self.max_form_parts,
@@ -424,7 +421,7 @@ class Request(_SansIORequest):
if cache:
self._cached_data = rv
if as_text:
rv = rv.decode(self._charset, self._encoding_errors)
rv = rv.decode(errors="replace")
return rv
@cached_property

View File

@@ -28,10 +28,10 @@ if t.TYPE_CHECKING:
from .request import Request
def _iter_encoded(iterable: t.Iterable[str | bytes], charset: str) -> t.Iterator[bytes]:
def _iter_encoded(iterable: t.Iterable[str | bytes]) -> t.Iterator[bytes]:
for item in iterable:
if isinstance(item, str):
yield item.encode(charset)
yield item.encode()
else:
yield item
@@ -284,7 +284,7 @@ class Response(_SansIOResponse):
rv = b"".join(self.iter_encoded())
if as_text:
return rv.decode(self._charset)
return rv.decode()
return rv
@@ -296,7 +296,7 @@ class Response(_SansIOResponse):
.. versionadded:: 0.9
"""
if isinstance(value, str):
value = value.encode(self._charset)
value = value.encode()
self.response = [value]
if self.automatically_set_content_length:
self.headers["Content-Length"] = str(len(value))
@@ -366,7 +366,7 @@ class Response(_SansIOResponse):
# Encode in a separate function so that self.response is fetched
# early. This allows us to wrap the response with the return
# value from get_app_iter or iter_encoded.
return _iter_encoded(self.response, self._charset)
return _iter_encoded(self.response)
@property
def is_streamed(self) -> bool:
@@ -832,4 +832,4 @@ class ResponseStream:
@property
def encoding(self) -> str:
return self.response._charset
return "utf-8"