Files
spoolman2/spoolman/client.py
2023-09-04 20:22:31 +02:00

26 lines
743 B
Python

"""Functions for providing the client interface."""
# ruff: noqa: PTH118
import os
from typing import Union
from fastapi.staticfiles import StaticFiles
class SinglePageApplication(StaticFiles):
"""Serve a single page application."""
def __init__(self, directory: str) -> None:
"""Construct."""
super().__init__(directory=directory, packages=None, html=True, check_dir=True)
def lookup_path(self, path: str) -> tuple[str, Union[os.stat_result, None]]:
"""Return index.html if the requested file cannot be found."""
full_path, stat_result = super().lookup_path(path)
if stat_result is None:
return super().lookup_path("index.html")
return (full_path, stat_result)