From 3ea7117ed15f7b9fa82d7aba11eb32f6f502ddd5 Mon Sep 17 00:00:00 2001 From: Aaron Carlisle Date: Wed, 16 Aug 2023 17:37:30 -0400 Subject: [PATCH] PyAPI Docs: Fix generation after recent node RNA changes This commit allows both `rna_enum_` and `rna_node_`to be used for enum prefixes This also fixes one enum by adding `rna_` to the prefix. Together these changes fix the API documentation generation. --- doc/python_api/sphinx_doc_gen.py | 9 +++++++-- source/blender/makesrna/RNA_enum_items.hh | 2 +- .../blender/makesrna/intern/rna_nodetree.cc | 19 ++++++++++--------- .../nodes/function/nodes/node_fn_compare.cc | 9 +++++---- 4 files changed, 23 insertions(+), 16 deletions(-) diff --git a/doc/python_api/sphinx_doc_gen.py b/doc/python_api/sphinx_doc_gen.py index becb41fa3a7..24e1726cbca 100644 --- a/doc/python_api/sphinx_doc_gen.py +++ b/doc/python_api/sphinx_doc_gen.py @@ -2255,13 +2255,18 @@ def write_rst_enum_items_and_index(basepath): fw(".. toctree::\n") fw("\n") for key, enum_items in rna_enum_dict.items(): - if not key.startswith("rna_enum_"): - raise Exception("Found RNA enum identifier that doesn't use the 'rna_enum_' prefix, found %r!" % key) + valid_prefix = key.startswith("rna_enum_") or key.startswith("rna_node_") + if not valid_prefix: + raise Exception( + "Found RNA enum identifier that doesn't use the 'rna_enum_' or 'rna_node_' prefix, found %r!" % + key) key_no_prefix = key.removeprefix("rna_enum_") + key_no_prefix = key.removeprefix("rna_node_") fw(" %s\n" % key_no_prefix) for key, enum_items in rna_enum_dict.items(): key_no_prefix = key.removeprefix("rna_enum_") + key_no_prefix = key.removeprefix("rna_node_") write_rst_enum_items(basepath_bpy_types_rna_enum, key, key_no_prefix, enum_items) fw("\n") diff --git a/source/blender/makesrna/RNA_enum_items.hh b/source/blender/makesrna/RNA_enum_items.hh index dbe5951f193..ce169b29fd0 100644 --- a/source/blender/makesrna/RNA_enum_items.hh +++ b/source/blender/makesrna/RNA_enum_items.hh @@ -225,7 +225,7 @@ DEF_ENUM(rna_enum_attribute_domain_without_corner_items) DEF_ENUM(rna_enum_attribute_domain_with_auto_items) DEF_ENUM(rna_enum_geometry_component_type_items) DEF_ENUM(rna_node_combsep_color_items) -DEF_ENUM(node_socket_data_type_items) +DEF_ENUM(rna_node_socket_data_type_items) DEF_ENUM(rna_node_geometry_curve_handle_side_items) DEF_ENUM(rna_node_geometry_mesh_circle_fill_type_items) diff --git a/source/blender/makesrna/intern/rna_nodetree.cc b/source/blender/makesrna/intern/rna_nodetree.cc index 383cbbea001..442f437cb4f 100644 --- a/source/blender/makesrna/intern/rna_nodetree.cc +++ b/source/blender/makesrna/intern/rna_nodetree.cc @@ -69,7 +69,7 @@ const EnumPropertyItem rna_enum_node_socket_in_out_items[] = {{SOCK_IN, "IN", 0, {SOCK_OUT, "OUT", 0, "Output", ""}, {0, nullptr, 0, nullptr, nullptr}}; -const EnumPropertyItem node_socket_data_type_items[] = { +const EnumPropertyItem rna_node_socket_data_type_items[] = { {SOCK_FLOAT, "FLOAT", 0, "Float", ""}, {SOCK_INT, "INT", 0, "Integer", ""}, {SOCK_BOOLEAN, "BOOLEAN", 0, "Boolean", ""}, @@ -1944,7 +1944,7 @@ static const EnumPropertyItem *rna_GeometryNodeSwitch_type_itemf(bContext * /*C* bool *r_free) { *r_free = true; - return itemf_function_check(node_socket_data_type_items, switch_type_supported); + return itemf_function_check(rna_node_socket_data_type_items, switch_type_supported); } static bool geometry_node_asset_trait_flag_get(PointerRNA *ptr, @@ -3412,7 +3412,7 @@ static const EnumPropertyItem *rna_SimulationStateItem_socket_type_itemf(bContex bool *r_free) { *r_free = true; - return itemf_function_check(node_socket_data_type_items, + return itemf_function_check(rna_node_socket_data_type_items, rna_SimulationStateItem_socket_type_supported); } @@ -3427,7 +3427,8 @@ static const EnumPropertyItem *rna_RepeatItem_socket_type_itemf(bContext * /*C*/ bool *r_free) { *r_free = true; - return itemf_function_check(node_socket_data_type_items, rna_RepeatItem_socket_type_supported); + return itemf_function_check(rna_node_socket_data_type_items, + rna_RepeatItem_socket_type_supported); } static void rna_SimulationStateItem_name_set(PointerRNA *ptr, const char *value) @@ -9177,7 +9178,7 @@ static void rna_def_simulation_state_item(BlenderRNA *brna) RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_SimulationStateItem_update"); prop = RNA_def_property(srna, "socket_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_items(prop, node_socket_data_type_items); + RNA_def_property_enum_items(prop, rna_node_socket_data_type_items); RNA_def_property_enum_funcs(prop, nullptr, nullptr, "rna_SimulationStateItem_socket_type_itemf"); RNA_def_property_ui_text(prop, "Socket Type", ""); RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); @@ -9215,7 +9216,7 @@ static void rna_def_geo_simulation_output_items(BlenderRNA *brna) RNA_def_function_flag(func, FUNC_USE_SELF_ID | FUNC_USE_MAIN | FUNC_USE_REPORTS); parm = RNA_def_enum(func, "socket_type", - node_socket_data_type_items, + rna_node_socket_data_type_items, SOCK_GEOMETRY, "Socket Type", "Socket type of the item"); @@ -9292,7 +9293,7 @@ static void rna_def_repeat_item(BlenderRNA *brna) RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_RepeatItem_update"); prop = RNA_def_property(srna, "socket_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_items(prop, node_socket_data_type_items); + RNA_def_property_enum_items(prop, rna_node_socket_data_type_items); RNA_def_property_enum_funcs(prop, nullptr, nullptr, "rna_RepeatItem_socket_type_itemf"); RNA_def_property_ui_text(prop, "Socket Type", ""); RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); @@ -9321,7 +9322,7 @@ static void rna_def_geo_repeat_output_items(BlenderRNA *brna) RNA_def_function_flag(func, FUNC_USE_SELF_ID | FUNC_USE_MAIN | FUNC_USE_REPORTS); parm = RNA_def_enum(func, "socket_type", - node_socket_data_type_items, + rna_node_socket_data_type_items, SOCK_GEOMETRY, "Socket Type", "Socket type of the item"); @@ -9453,7 +9454,7 @@ static void def_geo_switch(StructRNA *srna) RNA_def_struct_sdna_from(srna, "NodeSwitch", "storage"); prop = RNA_def_property(srna, "input_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, nullptr, "input_type"); - RNA_def_property_enum_items(prop, node_socket_data_type_items); + RNA_def_property_enum_items(prop, rna_node_socket_data_type_items); RNA_def_property_enum_funcs(prop, nullptr, nullptr, "rna_GeometryNodeSwitch_type_itemf"); RNA_def_property_ui_text(prop, "Input Type", ""); RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_socket_update"); diff --git a/source/blender/nodes/function/nodes/node_fn_compare.cc b/source/blender/nodes/function/nodes/node_fn_compare.cc index 493f8496221..6036f421324 100644 --- a/source/blender/nodes/function/nodes/node_fn_compare.cc +++ b/source/blender/nodes/function/nodes/node_fn_compare.cc @@ -709,14 +709,15 @@ static void node_rna(StructRNA *srna) "data_type", "Input Type", "", - node_socket_data_type_items, + rna_node_socket_data_type_items, NOD_storage_enum_accessors(data_type), std::nullopt, [](bContext * /*C*/, PointerRNA * /*ptr*/, PropertyRNA * /*prop*/, bool *r_free) { *r_free = true; - return enum_items_filter(node_socket_data_type_items, [](const EnumPropertyItem &item) { - return ELEM(item.value, SOCK_FLOAT, SOCK_INT, SOCK_VECTOR, SOCK_STRING, SOCK_RGBA); - }); + return enum_items_filter( + rna_node_socket_data_type_items, [](const EnumPropertyItem &item) { + return ELEM(item.value, SOCK_FLOAT, SOCK_INT, SOCK_VECTOR, SOCK_STRING, SOCK_RGBA); + }); }); RNA_def_property_update_runtime(prop, data_type_update);