from starlette.decorators import asgi_application
-from starlette.response import HTMLResponse, JSONResponse, Response, PlainTextResponse, StreamingResponse
+from starlette.response import (
+ HTMLResponse,
+ JSONResponse,
+ Response,
+ PlainTextResponse,
+ StreamingResponse,
+)
from starlette.request import Request
from starlette.routing import Path, PathPrefix, Router
from starlette.testclient import TestClient
self._list = value
def keys(self):
- return [key.decode('latin-1') for key, value in self._list]
+ return [key.decode("latin-1") for key, value in self._list]
def values(self):
- return [value.decode('latin-1') for key, value in self._list]
+ return [value.decode("latin-1") for key, value in self._list]
def items(self):
return [
- (key.decode('latin-1'), value.decode('latin-1'))
+ (key.decode("latin-1"), value.decode("latin-1"))
for key, value in self._list
]
return default
def get_list(self, key: str) -> typing.List[str]:
- get_header_key = key.lower().encode('latin-1')
+ get_header_key = key.lower().encode("latin-1")
return [
- item_value.decode('latin-1') for item_key, item_value in self._list
+ item_value.decode("latin-1")
+ for item_key, item_value in self._list
if item_key == get_header_key
]
def __getitem__(self, key: str):
- get_header_key = key.lower().encode('latin-1')
+ get_header_key = key.lower().encode("latin-1")
for header_key, header_value in self._list:
if header_key == get_header_key:
- return header_value.decode('latin-1')
+ return header_value.decode("latin-1")
raise KeyError(key)
def __contains__(self, key: str):
class MutableHeaders(Headers):
def __setitem__(self, key: str, value: str):
- set_key = key.lower().encode('latin-1')
- set_value = value.encode('latin-1')
+ set_key = key.lower().encode("latin-1")
+ set_value = value.encode("latin-1")
pop_indexes = []
for idx, (item_key, item_value) in enumerate(self._list):
content: typing.Any,
status_code: int = 200,
headers: dict = None,
- media_type: str = None
+ media_type: str = None,
) -> None:
self.body = self.render(content)
self.status_code = status_code
missing_content_type = True
else:
raw_headers = [
- (k.lower().encode('latin-1'), v.encode('latin-1'))
+ (k.lower().encode("latin-1"), v.encode("latin-1"))
for k, v in headers.items()
]
missing_content_length = "content-length" not in headers
content_type = self.media_type
if content_type.startswith("text/") and self.charset is not None:
content_type += "; charset=%s" % self.charset
- content_type_value = content_type.encode('latin-1')
+ content_type_value = content_type.encode("latin-1")
raw_headers.append((b"content-type", content_type_value))
self.raw_headers = raw_headers
@property
def headers(self):
- if not hasattr(self, '_headers'):
+ if not hasattr(self, "_headers"):
self._headers = MutableHeaders(self.raw_headers)
return self._headers
content: typing.Any,
status_code: int = 200,
headers: dict = None,
- media_type: str = None
+ media_type: str = None,
) -> None:
self.body_iterator = content
self.status_code = status_code
missing_content_type = True
else:
raw_headers = [
- (k.lower().encode('latin-1'), v.encode('latin-1'))
+ (k.lower().encode("latin-1"), v.encode("latin-1"))
for k, v in headers.items()
]
missing_content_type = "content-type" not in headers
content_type = self.media_type
if content_type.startswith("text/") and self.charset is not None:
content_type += "; charset=%s" % self.charset
- content_type_value = content_type.encode('latin-1')
+ content_type_value = content_type.encode("latin-1")
raw_headers.append((b"content-type", content_type_value))
self.raw_headers = raw_headers
# Include other request headers.
headers += [
- [key.lower().encode(), value.encode()] for key, value in request.headers.items()
+ [key.lower().encode(), value.encode()]
+ for key, value in request.headers.items()
]
scope = {