diff --git a/src/flask/helpers.py b/src/flask/helpers.py index 359a842a..f891eed1 100644 --- a/src/flask/helpers.py +++ b/src/flask/helpers.py @@ -47,9 +47,21 @@ def get_load_dotenv(default: bool = True) -> bool: return val.lower() in ("0", "false", "no") +@t.overload +def stream_with_context( + generator_or_function: t.Iterator[t.AnyStr], +) -> t.Iterator[t.AnyStr]: ... + + +@t.overload +def stream_with_context( + generator_or_function: t.Callable[..., t.Iterator[t.AnyStr]], +) -> t.Callable[[t.Iterator[t.AnyStr]], t.Iterator[t.AnyStr]]: ... + + def stream_with_context( generator_or_function: t.Iterator[t.AnyStr] | t.Callable[..., t.Iterator[t.AnyStr]], -) -> t.Iterator[t.AnyStr]: +) -> t.Iterator[t.AnyStr] | t.Callable[[t.Iterator[t.AnyStr]], t.Iterator[t.AnyStr]]: """Request contexts disappear when the response is started on the server. This is done for efficiency reasons and to make it less likely to encounter memory leaks with badly written WSGI middlewares. The downside is that if diff --git a/src/flask/json/provider.py b/src/flask/json/provider.py index f9b2e8ff..b086e668 100644 --- a/src/flask/json/provider.py +++ b/src/flask/json/provider.py @@ -113,7 +113,7 @@ def _default(o: t.Any) -> t.Any: return str(o) if dataclasses and dataclasses.is_dataclass(o): - return dataclasses.asdict(o) + return dataclasses.asdict(o) # type: ignore[call-overload] if hasattr(o, "__html__"): return str(o.__html__())