Coverage for src/local_deep_research/web/dependencies/flash.py: 100%
10 statements
« prev ^ index » next coverage.py v7.16.0, created at 2026-09-06 15:42 +0000
« prev ^ index » next coverage.py v7.16.0, created at 2026-09-06 15:42 +0000
1"""
2Flash message support for FastAPI.
4Replaces Flask's flash() and get_flashed_messages().
5Messages are stored in the session and cleared after retrieval.
6"""
8from fastapi import Request
11def flash(request: Request, message: str, category: str = "info") -> None:
12 """Add a flash message to the session.
14 Args:
15 request: The current request.
16 message: The message text.
17 category: Message category (error, success, info, warning).
18 """
19 messages = request.session.get("_flashes", [])
20 messages.append((category, message))
21 request.session["_flashes"] = messages
24def get_flashed_messages(request: Request, with_categories: bool = False):
25 """Retrieve and clear flash messages from the session.
27 Args:
28 request: The current request.
29 with_categories: If True, return list of (category, message) tuples.
31 Returns:
32 List of messages or (category, message) tuples.
33 """
34 messages = request.session.pop("_flashes", [])
35 if with_categories:
36 return messages
37 return [msg for _, msg in messages]