| 1026 | |
| 1027 | |
| 1028 | class RawHeaders: |
| 1029 | def __init__(self, headers: HeadersArray) -> None: |
| 1030 | self._headers_array = headers |
| 1031 | self._headers_map: Dict[str, Dict[str, bool]] = defaultdict(dict) |
| 1032 | for header in headers: |
| 1033 | self._headers_map[header["name"].lower()][header["value"]] = True |
| 1034 | |
| 1035 | @staticmethod |
| 1036 | def _from_headers_dict_lossy(headers: Dict[str, str]) -> "RawHeaders": |
| 1037 | return RawHeaders(serialize_headers(headers)) |
| 1038 | |
| 1039 | def get(self, name: str) -> Optional[str]: |
| 1040 | values = self.get_all(name) |
| 1041 | if not values: |
| 1042 | return None |
| 1043 | separator = "\n" if name.lower() == "set-cookie" else ", " |
| 1044 | return separator.join(values) |
| 1045 | |
| 1046 | def get_all(self, name: str) -> List[str]: |
| 1047 | return list(self._headers_map[name.lower()].keys()) |
| 1048 | |
| 1049 | def headers(self) -> Dict[str, str]: |
| 1050 | result = {} |
| 1051 | for name in self._headers_map.keys(): |
| 1052 | result[name] = cast(str, self.get(name)) |
| 1053 | return result |
| 1054 | |
| 1055 | def headers_array(self) -> HeadersArray: |
| 1056 | return self._headers_array |
no outgoing calls
no test coverage detected