git.lucas.co / hou-control
SideFX Houdini customization package
git clone https://git.lucas.co/hou-control.git

commit156c56c78e354a063f52b43100a2318c7a4306f4
parentfccd31a465
authorLucas Galante <[email protected]>
date2026-09-18 00:41
check.py: drop the developer_panel check, the HDA is gone

The Developer Panel HDA was replaced by the solver's Visualize tabs and
its file removed, so its check failed on every run with a missing
library and check.py has been reporting 1 failed since.

Co-Authored-By: Claude Fable 5.1 <[email protected]>

 tools/check.py | 31 -------------------------------
 1 file changed, 31 deletions(-)

diff --git a/tools/check.py b/tools/check.py
index 15dc983..62caf58 100644
--- a/tools/check.py
+++ b/tools/check.py
@@ -656,36 +656,6 @@ def check_open_recent():
     check("recentHipFiles() only lists existing files", recent_files_exist)
 
 
-def check_developer_panel():
-    """The Developer Panel HDA's visualizers live in a tabbed multiparm
-    whose instance parms all route to one sync() callback."""
-    print("developer panel")
-    import os
-    path = ROOT / "otls" / "sop_lsgalante.developer_panel.1.0.hdalc"
-
-    def multiparm_interface():
-        hou.hda.installFile(str(path))
-        d = [x for x in hou.hda.definitionsInFile(str(path))][0]
-        ptg = d.parmTemplateGroup()
-        block = ptg.find("visualizers")
-        assert isinstance(block, hou.FolderParmTemplate), "no visualizers folder"
-        assert block.folderType() == hou.folderType.TabbedMultiparmBlock, block.folderType()
-        names = [pt.name() for pt in block.parmTemplates()]
-        for expected in ("attr#", "type#", "coloring#", "coloring_attr#", "bounds#", "ramp#", "color#", "len#", "state#"):
-            assert expected in names, f"{expected} missing from {names}"
-        for pt in block.parmTemplates():
-            assert pt.scriptCallback() == "hou.phm().sync(kwargs)", (pt.name(), pt.scriptCallback())
-        assert block.scriptCallback() == "hou.phm().count_changed(kwargs)"
-        module = d.sections()["PythonModule"].contents()
-        compile(module, "PythonModule", "exec")
-        for fn in ("sync", "rebuild", "count_changed", "attr_menu", "adopt_visualizers"):
-            assert f"def {fn}(" in module, fn
-        assert ".setName(" not in module, "setName segfaults Houdini 22.0.429 from a callback"
-        return f"{len(names)} instance parms, module compiles"
-
-    check("tabbed multiparm, one sync callback", multiparm_interface)
-
-
 def check_status_circle():
     """The status circle's menu is built from the main-menu XML files with
     everything Python cannot run filtered out."""
@@ -2029,7 +1999,6 @@ def main():
     check_split_handles()
     check_nodegraph_hooks()
     check_open_recent()
-    check_developer_panel()
     check_status_circle()
     check_geometry()
     check_node_ops()