Files
FreeCADWasmDev/docs/p6/spreadsheet-tier2-adapter-manifest.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

363 lines
13 KiB
JSON

{
"schema": "freecad-web-python-family-adapter-manifest/v1",
"taskId": "FW-P6-FPA-IMPL-SPREADSHEET-TIER2",
"source": {
"manifest": "docs/p6/python-api-manifest.json",
"manifestSha256": "79082439be08151a83ff09bf4279bd5555a968e2a8719f8b1e39200fed44f9d7"
},
"module": "Spreadsheet",
"tier": "tier-2-pure",
"count": 34,
"route": {
"worker": "spreadsheet-python.worker.ts",
"command": "spreadsheet.pythonFamilyBatch",
"nativeSource": "src/WebAssembly/FreeCADCoreProbe/SpreadsheetRuntimeProbe.cpp"
},
"records": [
{
"apiId": "py:Spreadsheet:function:getText",
"name": "getText",
"kind": "function",
"family": "pure-function",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:function:handleCells",
"name": "handleCells",
"kind": "function",
"family": "pure-function",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:function:handleStrings",
"name": "handleStrings",
"kind": "function",
"family": "pure-function",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:function:handleWorkBook",
"name": "handleWorkBook",
"kind": "function",
"family": "pure-function",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:function:handleWorkBookRels",
"name": "handleWorkBookRels",
"kind": "function",
"family": "pure-function",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:function:handleWorkSheet",
"name": "handleWorkSheet",
"kind": "function",
"family": "pure-function",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:function:insert",
"name": "insert",
"kind": "function",
"family": "pure-function",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:function:open",
"name": "open",
"kind": "function",
"family": "pure-function",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:FormulaTranslator.parseAngle",
"name": "FormulaTranslator.parseAngle",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:FormulaTranslator.parseExpr",
"name": "FormulaTranslator.parseExpr",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:FormulaTranslator.parseIF",
"name": "FormulaTranslator.parseIF",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:FormulaTranslator.translateForm",
"name": "FormulaTranslator.translateForm",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/importXLSX.py",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.clear",
"name": "Sheet.clear",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.clearAll",
"name": "Sheet.clearAll",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.exportFile",
"name": "Sheet.exportFile",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.importFile",
"name": "Sheet.importFile",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.insertColumns",
"name": "Sheet.insertColumns",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.insertRows",
"name": "Sheet.insertRows",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.mergeCells",
"name": "Sheet.mergeCells",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.recomputeCells",
"name": "Sheet.recomputeCells",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.removeColumns",
"name": "Sheet.removeColumns",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.removeRows",
"name": "Sheet.removeRows",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.set",
"name": "Sheet.set",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setAlias",
"name": "Sheet.setAlias",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setAlignment",
"name": "Sheet.setAlignment",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setBackground",
"name": "Sheet.setBackground",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setColumnWidth",
"name": "Sheet.setColumnWidth",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setForeground",
"name": "Sheet.setForeground",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setRowHeight",
"name": "Sheet.setRowHeight",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.setStyle",
"name": "Sheet.setStyle",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.splitCell",
"name": "Sheet.splitCell",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:Sheet.touchCells",
"name": "Sheet.touchCells",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/App/Sheet.pyi",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Spreadsheet:method:ViewProviderSpreadsheet.exportAsFile",
"name": "ViewProviderSpreadsheet.exportAsFile",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.pyi",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "restricted"
},
{
"apiId": "py:Spreadsheet:method:ViewProviderSpreadsheet.showSheetMdi",
"name": "ViewProviderSpreadsheet.showSheetMdi",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.pyi",
"route": "spreadsheet.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "restricted"
}
],
"boundaries": [
"module adapter readiness is not method-level evidence",
"original disposition is preserved until the matching coverage gate"
]
}