Skip to content

Commit de59ee6

Browse files
committed
Allow the Pydantic Dump Options to be specified on construction
This is more typesafe and convenient.
1 parent abf72c1 commit de59ee6

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

src/quart_schema/extension.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
Server,
3030
Tag,
3131
)
32+
from .typing import PydanticDumpOptions
3233
from .validation import (
3334
DataSource,
3435
QUART_SCHEMA_HEADERS_ATTRIBUTE,
@@ -217,6 +218,7 @@ def __init__(
217218
security: Optional[List[Dict[str, List[str]]]] = None,
218219
external_docs: Optional[Union[ExternalDocumentation, dict]] = None,
219220
conversion_preference: Literal["msgspec", "pydantic", None] = None,
221+
pydantic_dump_options: Optional[PydanticDumpOptions] = None,
220222
) -> None:
221223
self.openapi_path = openapi_path
222224
self.redoc_ui_path = redoc_ui_path
@@ -225,6 +227,7 @@ def __init__(
225227

226228
self.convert_casing = convert_casing
227229
self.conversion_preference = conversion_preference
230+
self.pydantic_dump_options = {} if pydantic_dump_options is None else pydantic_dump_options
228231

229232
self.info: Optional[Info] = None
230233
if info is not None:
@@ -299,7 +302,7 @@ def init_app(self, app: Quart) -> None:
299302
"QUART_SCHEMA_SCALAR_JS_URL",
300303
"https://cdn.jsdelivr.net/npm/@scalar/api-reference",
301304
)
302-
app.config.setdefault("QUART_SCHEMA_PYDANTIC_DUMP_OPTIONS", {})
305+
app.config.setdefault("QUART_SCHEMA_PYDANTIC_DUMP_OPTIONS", self.pydantic_dump_options)
303306
app.config.setdefault("QUART_SCHEMA_CONVERT_CASING", self.convert_casing)
304307
app.config.setdefault("QUART_SCHEMA_CONVERSION_PREFERENCE", self.conversion_preference)
305308
app.json = create_json_provider(app)

0 commit comments

Comments
 (0)