Files
FreeCADWasmDev/docs/p6/spreadsheet-tier1-readonly-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

829 lines
34 KiB
JSON

{
"schema": "freecad-web-p6-spreadsheet-tier1-readonly-family-runtime/v1",
"taskId": "FW-P6-FPA-F1-SPREADSHEET",
"module": "Spreadsheet",
"tier": "tier-1-readonly",
"status": "pass_with_restricted_and_pending",
"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": {
"cmd": "spreadsheet.pythonFamilyBatch",
"args": {
"tier": "tier-1-readonly",
"records": [
{
"apiId": "py:Spreadsheet:class:FormulaTranslator",
"name": "FormulaTranslator",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:class:Sheet",
"name": "Sheet",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:class:exprNode",
"name": "exprNode",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:FormulaTranslator.getNextToken",
"name": "FormulaTranslator.getNextToken",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:FormulaTranslator.isKey",
"name": "FormulaTranslator.isKey",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.get",
"name": "Sheet.get",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getAlias",
"name": "Sheet.getAlias",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getAlignment",
"name": "Sheet.getAlignment",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getBackground",
"name": "Sheet.getBackground",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getCellFromAlias",
"name": "Sheet.getCellFromAlias",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getColumnWidth",
"name": "Sheet.getColumnWidth",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getContents",
"name": "Sheet.getContents",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getDisplayUnit",
"name": "Sheet.getDisplayUnit",
"family": "view-resource",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "restricted"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getForeground",
"name": "Sheet.getForeground",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getNonEmptyCells",
"name": "Sheet.getNonEmptyCells",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getNonEmptyRange",
"name": "Sheet.getNonEmptyRange",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getRowHeight",
"name": "Sheet.getRowHeight",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getStyle",
"name": "Sheet.getStyle",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getUsedCells",
"name": "Sheet.getUsedCells",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getUsedRange",
"name": "Sheet.getUsedRange",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setDisplayUnit",
"name": "Sheet.setDisplayUnit",
"family": "view-resource",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"disposition": "restricted"
},
{
"apiId": "py:Spreadsheet:method:ViewProviderSpreadsheet.getView",
"name": "ViewProviderSpreadsheet.getView",
"family": "view-resource",
"sourcePath": "src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.pyi",
"disposition": "restricted"
}
]
}
},
"inputSha256": "f18d8f7459fed5867ce0b96eb5d8d3520bf9064381a5d3e6240af74e7ca94147",
"result": {
"cmd": "spreadsheet.pythonFamilyBatch",
"count": 22,
"module": "Spreadsheet",
"ok": true,
"records": [
{
"apiId": "py:Spreadsheet:class:FormulaTranslator",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "FormulaTranslator",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Spreadsheet/importXLSX.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Spreadsheet:class:Sheet",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet",
"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:class:exprNode",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "exprNode",
"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.getNextToken",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "FormulaTranslator.getNextToken",
"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.isKey",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "FormulaTranslator.isKey",
"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.get",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.get",
"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.getAlias",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.getAlias",
"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.getAlignment",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.getAlignment",
"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.getBackground",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.getBackground",
"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.getCellFromAlias",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.getCellFromAlias",
"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.getColumnWidth",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.getColumnWidth",
"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.getContents",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.getContents",
"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.getDisplayUnit",
"code": "gui_dependency_unavailable",
"family": "view-resource",
"message": "Spreadsheet GUI/view API requires FreeCADGui unavailable in the headless Web runtime",
"name": "Sheet.getDisplayUnit",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "gui-resource",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "restricted"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getForeground",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.getForeground",
"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.getNonEmptyCells",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.getNonEmptyCells",
"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.getNonEmptyRange",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.getNonEmptyRange",
"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.getRowHeight",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.getRowHeight",
"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.getStyle",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.getStyle",
"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.getUsedCells",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.getUsedCells",
"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.getUsedRange",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Spreadsheet Python symbol/method has no method-level native argument/return replay",
"name": "Sheet.getUsedRange",
"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.setDisplayUnit",
"code": "gui_dependency_unavailable",
"family": "view-resource",
"message": "Spreadsheet GUI/view API requires FreeCADGui unavailable in the headless Web runtime",
"name": "Sheet.setDisplayUnit",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "gui-resource",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "restricted"
},
{
"apiId": "py:Spreadsheet:method:ViewProviderSpreadsheet.getView",
"code": "gui_dependency_unavailable",
"family": "view-resource",
"message": "Spreadsheet GUI/view API requires FreeCADGui unavailable in the headless Web runtime",
"name": "ViewProviderSpreadsheet.getView",
"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-1-readonly"
},
"resultSha256": "a95a212c4a3567a908485bf439195565649dc2464c85a0460425e414f5a4d9e0",
"replay": {
"equal": true,
"resultSha256": "a95a212c4a3567a908485bf439195565649dc2464c85a0460425e414f5a4d9e0"
},
"crossModuleBoundary": {
"result": {
"cmd": "spreadsheet.pythonFamilyBatch",
"count": 1,
"module": "Spreadsheet",
"ok": true,
"records": [
{
"apiId": "py:BIM:class:Sheet",
"code": "unmatched_source_record",
"family": "generic-object",
"message": "Spreadsheet API record is not part of this module-scoped adapter",
"name": "FormulaTranslator",
"native": true,
"resourcesReleased": true,
"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-1-readonly"
},
"resultSha256": "48df303bdb006c809253dccad5820ae09f105bf31853f2b34eb250ddac55d291"
},
"malformedRequest": {
"result": {
"ok": false,
"code": "invalid_request",
"error": "spreadsheet.pythonFamilyBatch requires tier=tier-1-readonly and non-empty args.records"
},
"resultSha256": "03286de95012bd0e6d0d73247f7b008751872a390bca34235a122fcbbab6c2db"
},
"dispositionCounts": {
"exposed": 0,
"restricted": 3,
"nonportable": 0,
"not_implemented": 19
},
"records": [
{
"apiId": "py:Spreadsheet:class:FormulaTranslator",
"name": "FormulaTranslator",
"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": "bfef786a857e3caf8930cc05467490e24f0248c84dc309ee916e24d846e90251"
},
{
"apiId": "py:Spreadsheet:class:Sheet",
"name": "Sheet",
"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": "cf8b9900b6755e81b5e526ec920a8fa503a3fe55bb7e91fb281bdee6ffb05e5e"
},
{
"apiId": "py:Spreadsheet:class:exprNode",
"name": "exprNode",
"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": "9b4f93008c739a07da942c2bab945f9f7d1d6f19f0532b00197548e4af26507f"
},
{
"apiId": "py:Spreadsheet:method:FormulaTranslator.getNextToken",
"name": "FormulaTranslator.getNextToken",
"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": "00477348172b04dfc95a79a969dd468ca4094adc4b53920d1f0804c4e0ee2621"
},
{
"apiId": "py:Spreadsheet:method:FormulaTranslator.isKey",
"name": "FormulaTranslator.isKey",
"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": "9213d02a8c00c6b0c04309027beabba1ca5c0ad390be236fd668a70d83e4345f"
},
{
"apiId": "py:Spreadsheet:method:Sheet.get",
"name": "Sheet.get",
"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": "9cfc2e1a12254264491cc2ace43b9b0bc9f8906ee30e4d5338e261fbc810f3bc"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getAlias",
"name": "Sheet.getAlias",
"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": "7f9bcd44cb64b5f4cd93b5c28fdb971aeef67cd83a21c0bc4346602f232008e0"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getAlignment",
"name": "Sheet.getAlignment",
"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": "9fc68d8663e1e441545629552c256ca4e5f9931d844f80138c99b4057433ede0"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getBackground",
"name": "Sheet.getBackground",
"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": "ddfb0d3070438f3d806f444f7f618f19a108b02c6f4be04ded0411296862cfb6"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getCellFromAlias",
"name": "Sheet.getCellFromAlias",
"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": "1f83bdd5697e032c9b17feb070749073843b85aca2bd45a9b29fb2d818a4ad4d"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getColumnWidth",
"name": "Sheet.getColumnWidth",
"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": "848c50e06a2906868129710f2d3e5b1ffe9fca327e2c0aaf0785c289d871879e"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getContents",
"name": "Sheet.getContents",
"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": "6a357e5dd346ab75f6146e3f69a401322e39ab9f2926b67f44784aeda418afc9"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getDisplayUnit",
"name": "Sheet.getDisplayUnit",
"family": "view-resource",
"status": "restricted",
"code": "gui_dependency_unavailable",
"parameterSchema": "source-declared",
"returnSchema": "gui-resource",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "0b638d5a16cbcbb90283a1faedb2c4dcafccda84dc5388ba23a1166801986c63"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getForeground",
"name": "Sheet.getForeground",
"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": "47d444b65c62a5e9fff3b6172d62a73880d419125fbac7a8e6587820b4e8eb84"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getNonEmptyCells",
"name": "Sheet.getNonEmptyCells",
"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": "962e037b1522bba8dd5dd5e1387ba0f44ffccaa5165cd02ee526bc44531ddb39"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getNonEmptyRange",
"name": "Sheet.getNonEmptyRange",
"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": "2d1459d2026e4d752aba17beba9fdc7ac7fcc9f82606f304e98e86882ade67d5"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getRowHeight",
"name": "Sheet.getRowHeight",
"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": "3394d76d6316908653ad5215f4e6cdac6f6462e00b30a38ee418c98c7a7c560c"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getStyle",
"name": "Sheet.getStyle",
"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": "325a009bfb70d4fb49ac1dfdc411812538f04d17bfb60cbce60fded6a9e51acb"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getUsedCells",
"name": "Sheet.getUsedCells",
"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": "6e5a390ca335146c96ed1b7279bae35ecb90ca2fb3ff4ce8ce18688a3b18aeeb"
},
{
"apiId": "py:Spreadsheet:method:Sheet.getUsedRange",
"name": "Sheet.getUsedRange",
"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": "7f262d7ba83d034d338883006d3dd089ea40fa657662bfaca90ce7d287061acd"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setDisplayUnit",
"name": "Sheet.setDisplayUnit",
"family": "view-resource",
"status": "restricted",
"code": "gui_dependency_unavailable",
"parameterSchema": "source-declared",
"returnSchema": "gui-resource",
"sourceEntry": "src/Mod/Spreadsheet/App/Sheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "796e964be53196defc570942dc25d171f3dca41d97e8dd4a453e239ab37b2e1a"
},
{
"apiId": "py:Spreadsheet:method:ViewProviderSpreadsheet.getView",
"name": "ViewProviderSpreadsheet.getView",
"family": "view-resource",
"status": "restricted",
"code": "gui_dependency_unavailable",
"parameterSchema": "source-declared",
"returnSchema": "gui-resource",
"sourceEntry": "src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "b19b1c675a70cbd1987638096ac09d431bfdefe3609fc6cf7d5fd8a77f475fdd"
}
],
"resources": {
"resourcesReleased": true,
"documentMutation": false
},
"artifacts": {
"wasm": {
"path": "web/public/kernel/FreeCADWebSpreadsheetRuntimeProbe.wasm",
"sha256": "b77c8ed798f8fe5e40649b1fc3b6ed79ebf200bf41f8d5605f6cdaac9962cb10"
},
"loader": {
"path": "web/public/kernel/FreeCADWebSpreadsheetRuntimeProbe.js",
"sha256": "b2058e6aa7c4db35b659262092ea3203630b4362111beef1c5d25cb1231046c7"
}
},
"boundaries": [
"Spreadsheet GUI/view records remain restricted because FreeCADGui/view resources are unavailable in the headless Web runtime.",
"Non-GUI Spreadsheet symbols/methods remain not_implemented until method-level native argument/return replay exists.",
"All statuses, schemas and hashes come from compiled FreeCAD source through fc_web_dispatch_json; no JavaScript API result is substituted."
]
}