"""HTTP response and request parsers This module contains parses for HTTP response and HTTP requests. """ import webhttp.message class RequestParser: """Class that parses a HTTP request""" def __init__(self): """Initialize the RequestParser""" self.buff = '' def parse_requests(self, buff): """Parse requests in a buffer Args: buff (str): the buffer contents received from socket Returns: list of webhttp.Request """ self.buff += buff requests = self.get_requests() http_requests = [] for request in requests: http_request = webhttp.message.Request() http_request.parse(request) http_requests.append(http_request) return http_requests def get_requests(self): """Split multiple requests from buffer Returns: list of str """ requests = self.buff.split('\r\n\r\n') requests = filter(None, requests) requests = [r.lstrip() + '\r\n\r\n' for r in requests] self.buff = '' return requests class ResponseParser: """Class that parses a HTTP response""" def __init__(self): """Initialize the ResponseParser""" pass def parse_response(self, buff): """Parse responses in buffer Args: buff (str): the buffer contents received from socket Returns: webhttp.Response """ response = webhttp.message.Response() response.parse(buff) return response