(
self,
dash_app: Dash,
package_name: str,
fingerprinted_path: str,
request: Request,
)
| 488 | return JSONResponse(content=obj) |
| 489 | |
| 490 | def serve_component_suites( |
| 491 | self, |
| 492 | dash_app: Dash, |
| 493 | package_name: str, |
| 494 | fingerprinted_path: str, |
| 495 | request: Request, |
| 496 | ): |
| 497 | |
| 498 | path_in_pkg, has_fingerprint = check_fingerprint(fingerprinted_path) |
| 499 | _validate.validate_js_path(dash_app.registered_paths, package_name, path_in_pkg) |
| 500 | extension = "." + path_in_pkg.split(".")[-1] |
| 501 | mimetype = mimetypes.types_map.get(extension, "application/octet-stream") |
| 502 | package = sys.modules[package_name] |
| 503 | dash_app.logger.debug( |
| 504 | "serving -- package: %s[%s] resource: %s => location: %s", |
| 505 | package_name, |
| 506 | package.__version__, |
| 507 | path_in_pkg, |
| 508 | package.__path__, |
| 509 | ) |
| 510 | data = pkgutil.get_data(package_name, path_in_pkg) |
| 511 | headers = {} |
| 512 | if has_fingerprint: |
| 513 | headers["Cache-Control"] = "public, max-age=31536000" |
| 514 | return StarletteResponse(content=data, media_type=mimetype, headers=headers) |
| 515 | etag = hashlib.md5(data).hexdigest() if data else "" |
| 516 | headers["ETag"] = etag |
| 517 | if request.headers.get("if-none-match") == etag: |
| 518 | return StarletteResponse(status_code=304) |
| 519 | return StarletteResponse(content=data, media_type=mimetype, headers=headers) |
| 520 | |
| 521 | def setup_component_suites(self, dash_app: Dash): |
| 522 | async def serve(request: Request, package_name: str, fingerprinted_path: str): |
no test coverage detected