dcrey7's picture
fix: search integration, detailed boundaries, cleanup dead files
92d554e
"""
FastAPI application serving the interactive property price map.
Serves static frontend files and pre-computed JSON price data.
Designed for Hugging Face Spaces Docker deployment on port 7860.
"""
from pathlib import Path
from fastapi import FastAPI
from fastapi.middleware.gzip import GZipMiddleware
from fastapi.responses import FileResponse
from fastapi.staticfiles import StaticFiles
ROOT = Path(__file__).resolve().parent
DATA_DIR = ROOT / "data" / "aggregated"
STATIC_DIR = ROOT / "static"
app = FastAPI(title="French Property Prices", docs_url=None, redoc_url=None)
app.add_middleware(GZipMiddleware, minimum_size=1000)
@app.get("/")
async def index():
return FileResponse(STATIC_DIR / "index.html")
# Serve static files (JS, CSS)
app.mount("/static", StaticFiles(directory=STATIC_DIR), name="static")
# Serve data files (JSON, GeoJSON, PMTiles) - StaticFiles handles range requests
# which is required for PMTiles (HTTP range-based tile fetching)
app.mount("/data", StaticFiles(directory=DATA_DIR), name="data")