def serve_file_handle(fh, file_path, file_size=None): resp = Response(fh) resp.direct_passthrough = True if file_size is not None: resp.headers['Content-Length'] = file_size content_type, _ = mimetypes.guess_type(file_path) if content_type is not None: resp.headers['Content-Type'] = content_type resp.freeze() return resp
def serve_file(file_name: str, content: str) -> Response: content_type, _ = mimetypes.guess_type(file_name) resp = Response() resp.direct_passthrough = True resp.data = content if content_type is not None: resp.headers['Content-Type'] = content_type resp.freeze() return resp
def serve_content(file_handle: TextIO, content_type): file_handle.seek(0) content = file_handle.read() resp = Response() resp.content_type = content_type resp.status_code = 200 resp.data = content resp.freeze() return resp
def serve_file(file_name: str, content: bytes) -> Response: """Construct and cache a Response from a static file.""" content_type, _ = mimetypes.guess_type(file_name) resp = Response() resp.direct_passthrough = True resp.data = content if content_type is not None: resp.headers["Content-Type"] = content_type resp.freeze() return resp
def serve_spec( site: str, target: EndpointTarget, url: str, content_type: str, serializer: Callable[[Dict[str, Any]], str], ) -> Response: data = generate_data(target=target) data.setdefault('servers', []) add_once(data['servers'], {'url': url, 'description': f"Site: {site}"}) response = Response(status=200) response.data = serializer(data) response.content_type = content_type response.freeze() return response
def serve_spec( site: str, url: str, content_type: str, serializer: Callable[[Dict[str, Any]], str], ) -> Response: data = generate_data() data.setdefault('servers', []) data['servers'].append({ 'url': url, 'description': f"Site: {site}", }) response = Response(status=200) response.data = serializer(data) response.content_type = content_type response.freeze() return response
def __call__(self, environ, start_response): path_info = environ['PATH_INFO'] path = re.sub(self.prefix, '', path_info) prefix = path_info[:-len(path)] if prefix.endswith("/ui"): prefix = prefix[:-3] if path == "/": path = "/index.html" if path == "/index.html": with open(swagger_ui_3_path + path) as fh: content = fh.read() content = content.replace( "https://petstore.swagger.io/v2/swagger.json", prefix + "/openapi.yaml") resp = Response() resp.content_type = 'text/html' resp.status_code = 200 resp.data = content resp.freeze() return resp(environ, start_response) return serve_file(swagger_ui_3_path + path)(environ, start_response)
def test_etag_response_freezing(): response = Response("Hello World") response.freeze() assert response.get_etag() == (str(generate_etag(b"Hello World")), False)