1- from typing import Dict , Tuple
1+ try :
2+ from typing import Dict , Tuple
3+ except ImportError :
4+ pass
25
36
47class HTTPRequest :
58
69 method : str
710 path : str
8- query_params : Dict [str , str ] = {}
11+ query_params : Dict [str , str ]
912 http_version : str
1013
11- headers : Dict [str , str ] = {}
14+ headers : Dict [str , str ]
1215 body : bytes | None
1316
1417 raw_request : bytes
@@ -21,15 +24,15 @@ def __init__(
2124 if raw_request is None : raise ValueError ("raw_request cannot be None" )
2225
2326 try :
24- self .method , self .path , self .query_params , self .http_version = self .parse_start_line (raw_request )
25- self .headers = self .parse_headers (raw_request )
26- self .body = self .parse_body (raw_request )
27+ self .method , self .path , self .query_params , self .http_version = self ._parse_start_line (raw_request )
28+ self .headers = self ._parse_headers (raw_request )
29+ self .body = self ._parse_body (raw_request )
2730 except Exception as error :
2831 raise ValueError ("Unparseable raw_request: " , raw_request ) from error
2932
3033
3134 @staticmethod
32- def parse_start_line (raw_request : bytes ) -> Tuple (str , str , Dict [str , str ], str ):
35+ def _parse_start_line (raw_request : bytes ) -> Tuple (str , str , Dict [str , str ], str ):
3336 """Parse HTTP Start line to method, path, query_params and http_version."""
3437
3538 start_line = raw_request .decode ("utf8" ).splitlines ()[0 ]
@@ -45,7 +48,7 @@ def parse_start_line(raw_request: bytes) -> Tuple(str, str, Dict[str, str], str)
4548
4649
4750 @staticmethod
48- def parse_headers (raw_request : bytes ) -> Dict [str , str ]:
51+ def _parse_headers (raw_request : bytes ) -> Dict [str , str ]:
4952 """Parse HTTP headers from raw request."""
5053 parsed_request_lines = raw_request .decode ("utf8" ).splitlines ()
5154 empty_line = parsed_request_lines .index ("" )
@@ -54,7 +57,7 @@ def parse_headers(raw_request: bytes) -> Dict[str, str]:
5457
5558
5659 @staticmethod
57- def parse_body (raw_request : bytes ) -> Dict [str , str ]:
60+ def _parse_body (raw_request : bytes ) -> Dict [str , str ]:
5861 """Parse HTTP body from raw request."""
5962 parsed_request_lines = raw_request .decode ("utf8" ).splitlines ()
6063 empty_line = parsed_request_lines .index ("" )
0 commit comments