Files
FreeCADWasmDev/docs/p6/spreadsheet-tier2-pure-family-runtime.json
wangdequan 9a7c4f0335 Save FreeCAD Web workspace sources and user validation evidence
IFC native binding remains incomplete; preserve accurate test results.
2026-09-15 22:01:58 +08:00

1257 lines
51 KiB
JSON

{
"schema": "freecad-web-p6-spreadsheet-tier2-pure-family-runtime/v1",
"taskId": "FW-P6-FPA-F2-SPREADSHEET",
"module": "Spreadsheet",
"tier": "tier-2-pure",
"status": "pass_with_boundaries",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"route": {
"worker": "web/src/spreadsheet-python.worker.ts",
"facade": "web/src/spreadsheet-python-family-facade.ts",
"command": "spreadsheet.pythonFamilyBatch",
"native": "freecad-source/src/WebAssembly/FreeCADCoreProbe/SpreadsheetRuntimeProbe.cpp:fc_web_dispatch_json"
},
"input": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "request",
"requestId": "sheet-tier2-success",
"command": "spreadsheet.pythonFamilyBatch",
"payload": {
"schema": "freecad-web-spreadsheet/python-family-batch/v1",
"module": "Spreadsheet",
"tier": "tier-2-pure",
"records": [
{
"apiId": "py:Spreadsheet:function:getText",
"name": "getText",
"family": "pure-function",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:function:handleCells",
"name": "handleCells",
"family": "pure-function",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:function:handleStrings",
"name": "handleStrings",
"family": "pure-function",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:function:handleWorkBook",
"name": "handleWorkBook",
"family": "pure-function",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:function:handleWorkBookRels",
"name": "handleWorkBookRels",
"family": "pure-function",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:function:handleWorkSheet",
"name": "handleWorkSheet",
"family": "pure-function",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:function:insert",
"name": "insert",
"family": "pure-function",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:function:open",
"name": "open",
"family": "pure-function",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:FormulaTranslator.parseAngle",
"name": "FormulaTranslator.parseAngle",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:FormulaTranslator.parseExpr",
"name": "FormulaTranslator.parseExpr",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:FormulaTranslator.parseIF",
"name": "FormulaTranslator.parseIF",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:FormulaTranslator.translateForm",
"name": "FormulaTranslator.translateForm",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:Sheet.clear",
"name": "Sheet.clear",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:Sheet.clearAll",
"name": "Sheet.clearAll",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:Sheet.exportFile",
"name": "Sheet.exportFile",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:Sheet.importFile",
"name": "Sheet.importFile",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:Sheet.insertColumns",
"name": "Sheet.insertColumns",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:Sheet.insertRows",
"name": "Sheet.insertRows",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:Sheet.mergeCells",
"name": "Sheet.mergeCells",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:Sheet.recomputeCells",
"name": "Sheet.recomputeCells",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:Sheet.removeColumns",
"name": "Sheet.removeColumns",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:Sheet.removeRows",
"name": "Sheet.removeRows",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:Sheet.set",
"name": "Sheet.set",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setAlias",
"name": "Sheet.setAlias",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setAlignment",
"name": "Sheet.setAlignment",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setBackground",
"name": "Sheet.setBackground",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setColumnWidth",
"name": "Sheet.setColumnWidth",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setForeground",
"name": "Sheet.setForeground",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setRowHeight",
"name": "Sheet.setRowHeight",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setStyle",
"name": "Sheet.setStyle",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:Sheet.splitCell",
"name": "Sheet.splitCell",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:Sheet.touchCells",
"name": "Sheet.touchCells",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:ViewProviderSpreadsheet.exportAsFile",
"name": "ViewProviderSpreadsheet.exportAsFile",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.pyi",
"disposition": "planned"
},
{
"apiId": "py:Spreadsheet:method:ViewProviderSpreadsheet.showSheetMdi",
"name": "ViewProviderSpreadsheet.showSheetMdi",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.pyi",
"disposition": "planned"
}
]
},
"documentId": "spreadsheet-python-family"
},
"inputSha256": "4e3d6632878a775c25f1b9a3f0702aba2ce8b7aa1cc7863435fa143751472350",
"result": {
"cmd": "spreadsheet.pythonFamilyBatch",
"count": 34,
"module": "Spreadsheet",
"ok": true,
"records": [
{
"apiId": "py:Spreadsheet:function:getText",
"code": "method_evidence_pending",
"family": "pure-function",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "getText",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:function:handleCells",
"code": "method_evidence_pending",
"family": "pure-function",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "handleCells",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:function:handleStrings",
"code": "method_evidence_pending",
"family": "pure-function",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "handleStrings",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:function:handleWorkBook",
"code": "method_evidence_pending",
"family": "pure-function",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "handleWorkBook",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:function:handleWorkBookRels",
"code": "method_evidence_pending",
"family": "pure-function",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "handleWorkBookRels",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:function:handleWorkSheet",
"code": "method_evidence_pending",
"family": "pure-function",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "handleWorkSheet",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:function:insert",
"code": "method_evidence_pending",
"family": "pure-function",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "insert",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:function:open",
"code": "method_evidence_pending",
"family": "pure-function",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "open",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:FormulaTranslator.parseAngle",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "FormulaTranslator.parseAngle",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:FormulaTranslator.parseExpr",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "FormulaTranslator.parseExpr",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:FormulaTranslator.parseIF",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "FormulaTranslator.parseIF",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:FormulaTranslator.translateForm",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "FormulaTranslator.translateForm",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.clear",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.clear",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.clearAll",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.clearAll",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.exportFile",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.exportFile",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.importFile",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.importFile",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.insertColumns",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.insertColumns",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.insertRows",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.insertRows",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.mergeCells",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.mergeCells",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.recomputeCells",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.recomputeCells",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.removeColumns",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.removeColumns",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.removeRows",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.removeRows",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.set",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.set",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setAlias",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.setAlias",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setAlignment",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.setAlignment",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setBackground",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.setBackground",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setColumnWidth",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.setColumnWidth",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setForeground",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.setForeground",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setRowHeight",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.setRowHeight",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setStyle",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.setStyle",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.splitCell",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.splitCell",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.touchCells",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.touchCells",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:ViewProviderSpreadsheet.exportAsFile",
"code": "gui_dependency_unavailable",
"family": "generic-object",
"message": "Spreadsheet GUI/view API requires FreeCADGui unavailable in the headless Web runtime",
"name": "ViewProviderSpreadsheet.exportAsFile",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "gui-resource",
"sourceEntry": "src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "restricted"
},
{
"apiId": "py:Spreadsheet:method:ViewProviderSpreadsheet.showSheetMdi",
"code": "gui_dependency_unavailable",
"family": "generic-object",
"message": "Spreadsheet GUI/view API requires FreeCADGui unavailable in the headless Web runtime",
"name": "ViewProviderSpreadsheet.showSheetMdi",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "gui-resource",
"sourceEntry": "src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "restricted"
}
],
"resourcesReleased": true,
"schema": "freecad-web-spreadsheet/python-family-batch/v1",
"source": "freecad-source",
"tier": "tier-2-pure"
},
"resultSha256": "f77863cc13dac73436498d7c354a785682e2a292e063ad25c6290e1bd7f6244b",
"replay": {
"equal": true,
"resultSha256": "f77863cc13dac73436498d7c354a785682e2a292e063ad25c6290e1bd7f6244b"
},
"crossModuleBoundary": {
"result": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "sheet-tier2-cross",
"result": {
"cmd": "spreadsheet.pythonFamilyBatch",
"count": 1,
"module": "Spreadsheet",
"ok": true,
"records": [
{
"apiId": "py:BIM:class:Binding",
"code": "unmatched_source_record",
"family": "pure-function",
"message": "Spreadsheet API record is not part of this module-scoped adapter",
"name": "getText",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
}
],
"resourcesReleased": true,
"schema": "freecad-web-spreadsheet/python-family-batch/v1",
"source": "freecad-source",
"tier": "tier-2-pure"
}
},
"resultSha256": "36df1c2ca3188554d00a85edecaef3931201b29a7d10802466d6af0c437d845f"
},
"malformedRequest": {
"result": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "sheet-tier2-invalid-tier",
"error": {
"code": "invalid_fixture",
"message": "Spreadsheet Python family payload is invalid"
}
},
"resultSha256": "340ecd5a2e04f11e7ad92dd4d8aaf5e9803976108188779ed21bdf2d7cda97f4"
},
"cancellation": {
"result": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "sheet-tier2-cancel",
"error": {
"code": "cancelled",
"message": "request was cancelled before execution"
}
},
"resultSha256": "bef464a7194a58b4293fe2e472650334f04d745ba132eedf95cb84d14934432f"
},
"dispositionCounts": {
"exposed": 0,
"restricted": 2,
"nonportable": 0,
"not_implemented": 32
},
"records": [
{
"apiId": "py:Spreadsheet:function:getText",
"name": "getText",
"family": "pure-function",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "37405a653629b1ccfaf9bcf4bfe3f6b83e5b9e432df3142ce5dea2823a568158"
},
{
"apiId": "py:Spreadsheet:function:handleCells",
"name": "handleCells",
"family": "pure-function",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "4fe22476b184e6dea0d1c0f8c9e375591a047ba639088054995bedecfe597c70"
},
{
"apiId": "py:Spreadsheet:function:handleStrings",
"name": "handleStrings",
"family": "pure-function",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "e27ed31532fa99e164be6f837fecabe6d434a9c3dc8a9b44b7793b06e17d912f"
},
{
"apiId": "py:Spreadsheet:function:handleWorkBook",
"name": "handleWorkBook",
"family": "pure-function",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "67e7cfa8bcdbf2f8d306920f3fb2d5b94ebcf70c11f9819fdc6a7a86d7609471"
},
{
"apiId": "py:Spreadsheet:function:handleWorkBookRels",
"name": "handleWorkBookRels",
"family": "pure-function",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "8354b0b15b721518a603a8c695abcbd226e362c2bbdc4fd8f7d398bc973669b3"
},
{
"apiId": "py:Spreadsheet:function:handleWorkSheet",
"name": "handleWorkSheet",
"family": "pure-function",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "721803501bedcc81b2d6b3b659b9f0b43190c8078c834810ed79205638d44d1a"
},
{
"apiId": "py:Spreadsheet:function:insert",
"name": "insert",
"family": "pure-function",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "82f3c46d3858dcf21583a25d9594c04d82f9793e0db96c788bff4a825e1cfebd"
},
{
"apiId": "py:Spreadsheet:function:open",
"name": "open",
"family": "pure-function",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "93985faa5b51d6a49df1f4166e945ab8988f71a7e8499329cd8ae3aebb53d8bf"
},
{
"apiId": "py:Spreadsheet:method:FormulaTranslator.parseAngle",
"name": "FormulaTranslator.parseAngle",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "5c2da03b8fc7cc35056c9df7c0cec12978688e56ce070177c6f0c5c8b463bdd2"
},
{
"apiId": "py:Spreadsheet:method:FormulaTranslator.parseExpr",
"name": "FormulaTranslator.parseExpr",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "031bae43e2080e1e780a23d5557a609c253228566cbdcf466c1d4b90d5e79d2d"
},
{
"apiId": "py:Spreadsheet:method:FormulaTranslator.parseIF",
"name": "FormulaTranslator.parseIF",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "ab3002fe02682d406ed602dc42628c8f15c8bfe640a249e1d03ead84578bc913"
},
{
"apiId": "py:Spreadsheet:method:FormulaTranslator.translateForm",
"name": "FormulaTranslator.translateForm",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "7e317e1515481e68b7e8876ecff4980f91e332dfe454c431070f094c3b99f425"
},
{
"apiId": "py:Spreadsheet:method:Sheet.clear",
"name": "Sheet.clear",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "ad792903d825b7ebd48510d5877d3f157e93ecf3ea9b68ca481c03913f38a7e9"
},
{
"apiId": "py:Spreadsheet:method:Sheet.clearAll",
"name": "Sheet.clearAll",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "fd6246f485f963c56af7cf86124de64390e231c61ba7aade87597aa9563e106a"
},
{
"apiId": "py:Spreadsheet:method:Sheet.exportFile",
"name": "Sheet.exportFile",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "4befbaf1572ad7d11501817039b4a22a953a22f7488c67f2700848bee7a9c7ba"
},
{
"apiId": "py:Spreadsheet:method:Sheet.importFile",
"name": "Sheet.importFile",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "674bff6ffb50cbe71a6286d1c080787c05a796e7503fe6a40b335117ce79af36"
},
{
"apiId": "py:Spreadsheet:method:Sheet.insertColumns",
"name": "Sheet.insertColumns",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "6a29a7ca9df57c0ea74b8d5f4278fa93a950ca26463562dc04d883dc5d82b348"
},
{
"apiId": "py:Spreadsheet:method:Sheet.insertRows",
"name": "Sheet.insertRows",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "424b350a2afacf5cf997dca1741b9655a06d1f00a22e3a80e00ae37cb6846f25"
},
{
"apiId": "py:Spreadsheet:method:Sheet.mergeCells",
"name": "Sheet.mergeCells",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "0d0950f65c29d2f31b1010164bfe4affbdb7fa5d75a82138aa14a624f8c213bf"
},
{
"apiId": "py:Spreadsheet:method:Sheet.recomputeCells",
"name": "Sheet.recomputeCells",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "fb9b5bfd980e42aab303e48562c30ea43250713371cdc58871e08181b18a095e"
},
{
"apiId": "py:Spreadsheet:method:Sheet.removeColumns",
"name": "Sheet.removeColumns",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "421f9b3bd78ff5322685c81109d7ae3228b62c1b0efcb431b442f71f052a1cf1"
},
{
"apiId": "py:Spreadsheet:method:Sheet.removeRows",
"name": "Sheet.removeRows",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "c6259a9e9d3152e54e6a09b3030eb77c05b17354d1005eac008b52482effc4d4"
},
{
"apiId": "py:Spreadsheet:method:Sheet.set",
"name": "Sheet.set",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "3527c5aa4667f363e7bbaab1a2b9d95f028e3b944f2d42c7fff36d50b90bb192"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setAlias",
"name": "Sheet.setAlias",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "f8cd60e6c3a5c0a0697936f703fcf508fdee3ed35a4b90185f2500b933a3ab4b"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setAlignment",
"name": "Sheet.setAlignment",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "c11984bb17882e3ff8535647b0371c0134ffd59d6303b1d48bd060c1dfca839d"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setBackground",
"name": "Sheet.setBackground",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "808a8442b1d20508bfc2c33fa165499b17db5c18a70de02fad7a75b06d7ee522"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setColumnWidth",
"name": "Sheet.setColumnWidth",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "7f4d87527c50c479f159de7f5622b77720523cc15e029b951c6bd38d59cfe375"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setForeground",
"name": "Sheet.setForeground",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "e969551c8c5675e32821836482feaac738ef6abeb9f8643a28dcf4a23dd7f324"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setRowHeight",
"name": "Sheet.setRowHeight",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "ae45fa25d65cd1cdc55b953cf4e375dfce657e5115ad6d075c28bda97076a425"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setStyle",
"name": "Sheet.setStyle",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "d96c8c15afc01d587811ced0b9463f488f01aaa85030c7c350097ca90a906181"
},
{
"apiId": "py:Spreadsheet:method:Sheet.splitCell",
"name": "Sheet.splitCell",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "ee97c53abc86ae14bd8d45ab881f7316e1021156e6b4b3ce2719cc2c45bd10c7"
},
{
"apiId": "py:Spreadsheet:method:Sheet.touchCells",
"name": "Sheet.touchCells",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "0e034ceed6a44bbe51e7b94fdd72cb615046efa9cda514199bb5411696a677ff"
},
{
"apiId": "py:Spreadsheet:method:ViewProviderSpreadsheet.exportAsFile",
"name": "ViewProviderSpreadsheet.exportAsFile",
"family": "generic-object",
"status": "restricted",
"code": "gui_dependency_unavailable",
"parameterSchema": "source-declared",
"returnSchema": "gui-resource",
"sourceEntry": "src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "f8f98bdb8c16af92ec9afc6095c6d953127c9e22992a6e029763d54880acf913"
},
{
"apiId": "py:Spreadsheet:method:ViewProviderSpreadsheet.showSheetMdi",
"name": "ViewProviderSpreadsheet.showSheetMdi",
"family": "generic-object",
"status": "restricted",
"code": "gui_dependency_unavailable",
"parameterSchema": "source-declared",
"returnSchema": "gui-resource",
"sourceEntry": "src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "787687a44cbd82ac30428cf11bc7ed3bcfa66f25ea04910bd80018f4727d30b0"
}
],
"resources": {
"resourcesReleased": true,
"documentMutation": false
},
"artifacts": {
"wasm": {
"path": "freecad-source/build-web/configure/bin/FreeCADWebSpreadsheetRuntimeProbe.wasm",
"sha256": "b0791cb24cfb41c82fa767494b6aa92637d84529e196293b63810ec2688b822f"
},
"loader": {
"path": "freecad-source/build-web/configure/bin/FreeCADWebSpreadsheetRuntimeProbe.js",
"sha256": "859d1f5e445dd33a8d3605cf3571ce7a184454224a3ee75468a378fa8f33d447"
}
},
"boundaries": [
"Spreadsheet GUI/view APIs remain restricted; methods without typed fixtures remain not_implemented.",
"All statuses and schemas derive from compiled FreeCAD through fc_web_dispatch_json."
]
}