用途:解决 Sverchok 中数据看起来错误、顶点被拍平或列表长度不匹配的问题,重点是防止数据嵌套层级出错(作者称其为 Sverchok 最常见错误来源)。
主要能力:
- 嵌套层级约定:0 为标量,1 为标量列表,2 为列表的列表,3 为列表的列表的列表。
- 各插槽所需层级:SvStringsSocket 为 2,SvVerticesSocket 为 3,SvMatrixSocket 为 1,边/面数据用 SvStringsSocket 的第 2 层。
- 调试工具:get_data_nesting_level() 检测层级,describe_data_shape() 输出可读形状;ensure_min_nesting() 用于输入可能已更深的情况。
- 列表匹配模式:REPEAT(默认,重复末元素)、CYCLE、SHORT、XREF、XREF2。
- 向量化写法:SvRecursiveNode 混入类、vectorize() 装饰器(须用关键字参数)、match_sockets() 生成器、match_long_repeat()/zip_long_repeat()。
- 插槽配置:nesting_level、is_mandatory、default_mode(NONE/EMPTY_LIST/MATRIX/MASK)、pre_processing(NONE/ONE_ITEM)。
- 插槽预处理与后处理标志:flatten、simplify、graft、unwrap、wrap 等及其显示标签。
限制与注意:sv_get() 始终返回插槽对应层级;match_long_repeat 只做浅拷贝;vectorize() 包装的函数不接受位置参数;SvRecursiveNode 仅支持 SHORT/CYCLE/REPEAT,不支持 XREF/XREF2。文档同时给出 GitHub 源码链接与 references 目录(methods.md、examples.md、anti-patterns.md)。