From 2eaf51e826704ba62fe6e5b0ba5b3609f6b32c2e Mon Sep 17 00:00:00 2001 From: Michael Chow Date: Fri, 1 Sep 2023 12:44:44 -0400 Subject: [PATCH 1/2] fix: setting member_options no longer overrides options --- quartodoc/builder/blueprint.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/quartodoc/builder/blueprint.py b/quartodoc/builder/blueprint.py index d7d411de..4f745780 100644 --- a/quartodoc/builder/blueprint.py +++ b/quartodoc/builder/blueprint.py @@ -117,9 +117,7 @@ def _to_simple_dict(el: "BaseModel"): def _non_default_entries(el: Auto): - d = el.dict() - - return {k: d[k] for k in el._fields_specified} + return {k: getattr(el, k) for k in el._fields_specified} class BlueprintTransformer(PydanticTransformer): From fdbc32ab8f5caec2f49ea6176660e3112d252684 Mon Sep 17 00:00:00 2001 From: Michael Chow Date: Fri, 1 Sep 2023 13:03:24 -0400 Subject: [PATCH 2/2] tests: add checks for _non_default_entries --- quartodoc/tests/test_builder_blueprint.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/quartodoc/tests/test_builder_blueprint.py b/quartodoc/tests/test_builder_blueprint.py index 70be5c5f..d5d9ceea 100644 --- a/quartodoc/tests/test_builder_blueprint.py +++ b/quartodoc/tests/test_builder_blueprint.py @@ -1,6 +1,7 @@ from quartodoc import get_object from quartodoc import layout as lo from quartodoc.builder.blueprint import ( + _non_default_entries, BlueprintTransformer, blueprint, WorkaroundKeyError, @@ -37,6 +38,23 @@ def bp(): return BlueprintTransformer() +def test_non_default_entries_auto(): + assert _non_default_entries(lo.Auto(name="a_func", include_attributes=False)) == { + "name": "a_func", + "include_attributes": False, + } + + +def test_non_default_entries_auto_member_options(): + # these entries are nested inside auto + res = _non_default_entries( + lo.Auto(name="a_func", member_options={"include_attributes": False}) + ) + + assert res["name"] == "a_func" + assert _non_default_entries(res["member_options"]) == {"include_attributes": False} + + @pytest.mark.parametrize("path", ["quartodoc.get_object", "quartodoc:get_object"]) def test_blueprint_basic(bp, path): auto = lo.Auto(name=path)