Files
FreeCADWasmDev/docs/p6/plot-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

203 lines
6.3 KiB
JSON

{
"schema": "freecad-web-python-family-adapter-manifest/v1",
"taskId": "FW-P6-FPA-IMPL-PLOT-TIER2",
"source": {
"manifest": "docs/p6/python-api-manifest.json",
"manifestSha256": "79082439be08151a83ff09bf4279bd5555a968e2a8719f8b1e39200fed44f9d7"
},
"module": "Plot",
"tier": "tier-2-pure",
"count": 18,
"route": {
"worker": "plot-python.worker.ts",
"command": "plot.pythonFamilyBatch",
"nativeSource": "src/WebAssembly/FreeCADCoreProbe/PlotRuntimeProbe.cpp"
},
"records": [
{
"apiId": "py:Plot:function:addNewAxes",
"name": "addNewAxes",
"kind": "function",
"family": "pure-function",
"sourcePath": "src/Mod/Plot/Plot.py",
"route": "plot.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "exposed"
},
{
"apiId": "py:Plot:function:axes",
"name": "axes",
"kind": "function",
"family": "pure-function",
"sourcePath": "src/Mod/Plot/Plot.py",
"route": "plot.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "exposed"
},
{
"apiId": "py:Plot:function:axesList",
"name": "axesList",
"kind": "function",
"family": "pure-function",
"sourcePath": "src/Mod/Plot/Plot.py",
"route": "plot.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "exposed"
},
{
"apiId": "py:Plot:function:closePlot",
"name": "closePlot",
"kind": "function",
"family": "pure-function",
"sourcePath": "src/Mod/Plot/Plot.py",
"route": "plot.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "exposed"
},
{
"apiId": "py:Plot:function:figure",
"name": "figure",
"kind": "function",
"family": "pure-function",
"sourcePath": "src/Mod/Plot/Plot.py",
"route": "plot.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "exposed"
},
{
"apiId": "py:Plot:function:getMainWindow",
"name": "getMainWindow",
"kind": "function",
"family": "pure-function",
"sourcePath": "src/Mod/Plot/Plot.py",
"route": "plot.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "exposed"
},
{
"apiId": "py:Plot:function:getMdiArea",
"name": "getMdiArea",
"kind": "function",
"family": "pure-function",
"sourcePath": "src/Mod/Plot/Plot.py",
"route": "plot.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "exposed"
},
{
"apiId": "py:Plot:function:getPlot",
"name": "getPlot",
"kind": "function",
"family": "pure-function",
"sourcePath": "src/Mod/Plot/Plot.py",
"route": "plot.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "exposed"
},
{
"apiId": "py:Plot:function:grid",
"name": "grid",
"kind": "function",
"family": "pure-function",
"sourcePath": "src/Mod/Plot/Plot.py",
"route": "plot.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "exposed"
},
{
"apiId": "py:Plot:function:legend",
"name": "legend",
"kind": "function",
"family": "pure-function",
"sourcePath": "src/Mod/Plot/Plot.py",
"route": "plot.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "exposed"
},
{
"apiId": "py:Plot:function:plot",
"name": "plot",
"kind": "function",
"family": "pure-function",
"sourcePath": "src/Mod/Plot/Plot.py",
"route": "plot.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "exposed"
},
{
"apiId": "py:Plot:function:removeSerie",
"name": "removeSerie",
"kind": "function",
"family": "pure-function",
"sourcePath": "src/Mod/Plot/Plot.py",
"route": "plot.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "exposed"
},
{
"apiId": "py:Plot:function:series",
"name": "series",
"kind": "function",
"family": "pure-function",
"sourcePath": "src/Mod/Plot/Plot.py",
"route": "plot.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "exposed"
},
{
"apiId": "py:Plot:function:title",
"name": "title",
"kind": "function",
"family": "pure-function",
"sourcePath": "src/Mod/Plot/Plot.py",
"route": "plot.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "exposed"
},
{
"apiId": "py:Plot:method:Line.setp",
"name": "Line.setp",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Plot/Plot.py",
"route": "plot.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Plot:method:Plot.plot",
"name": "Plot.plot",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Plot/Plot.py",
"route": "plot.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Plot:method:Plot.setActiveAxes",
"name": "Plot.setActiveAxes",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Plot/Plot.py",
"route": "plot.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "not_implemented"
},
{
"apiId": "py:Plot:method:Plot.update",
"name": "Plot.update",
"kind": "method",
"family": "generic-object",
"sourcePath": "src/Mod/Plot/Plot.py",
"route": "plot.pythonFamilyBatch",
"adapterStatus": "module_adapter_ready_pending_method",
"disposition": "exposed"
}
],
"boundaries": [
"module adapter readiness is not method-level evidence",
"original disposition is preserved until the matching coverage gate"
]
}