Files
create/mods/sdk/kindred_sdk/__init__.py
forbes-0023 311f72b77e
All checks were successful
Build and Test / build (pull_request) Successful in 30m22s
feat(sdk): per-document origin Python bindings (#391)
Expose the existing C++ per-document origin tracking through the kcsdk
pybind11 module and kindred_sdk Python package.

New kcsdk functions (accept document name string):
- document_origin(doc_name) — get origin via originForDocument()
- set_document_origin(doc_name, origin_id) — explicit association
- clear_document_origin(doc_name) — clear explicit association
- find_owning_origin(doc_name) — ownership detection (no cache)

New kindred_sdk wrappers (accept App.Document object):
- document_origin(doc)
- set_document_origin(doc, origin_id)
- clear_document_origin(doc)
- find_owning_origin(doc)
2026-03-05 07:44:38 -06:00

94 lines
2.3 KiB
Python

# kindred-addon-sdk — stable API for Kindred Create addon integration
from kindred_sdk.command import register_command
from kindred_sdk.compat import create_version, freecad_version
from kindred_sdk.context import (
add_transition_guard,
available_contexts,
context_stack,
current_context,
inject_breadcrumb,
inject_commands,
refresh_context,
register_context,
register_overlay,
remove_breadcrumb_injection,
remove_transition_guard,
unregister_context,
unregister_overlay,
)
from kindred_sdk.dock import register_dock_panel
from kindred_sdk.events import emit, off, on
from kindred_sdk.lifecycle import context_history, on_context_enter, on_context_exit
from kindred_sdk.menu import register_menu
from kindred_sdk.origin import (
active_origin,
clear_document_origin,
document_origin,
find_owning_origin,
get_origin,
list_origins,
register_origin,
set_active_origin,
set_document_origin,
unregister_origin,
)
from kindred_sdk.registry import (
addon_diagnostics,
addon_resource,
addon_version,
is_addon_loaded,
loaded_addons,
)
from kindred_sdk.statusbar import register_status_widget
from kindred_sdk.theme import get_theme_tokens, load_palette
from kindred_sdk.toolbar import register_toolbar
from kindred_sdk.version import SDK_VERSION
__all__ = [
"SDK_VERSION",
"active_origin",
"add_transition_guard",
"addon_diagnostics",
"addon_resource",
"addon_version",
"available_contexts",
"clear_document_origin",
"context_history",
"context_stack",
"create_version",
"current_context",
"document_origin",
"emit",
"find_owning_origin",
"freecad_version",
"get_origin",
"get_theme_tokens",
"inject_breadcrumb",
"inject_commands",
"is_addon_loaded",
"list_origins",
"load_palette",
"loaded_addons",
"off",
"on",
"on_context_enter",
"on_context_exit",
"refresh_context",
"register_command",
"register_context",
"register_dock_panel",
"register_menu",
"register_origin",
"register_overlay",
"register_status_widget",
"register_toolbar",
"remove_breadcrumb_injection",
"remove_transition_guard",
"set_active_origin",
"set_document_origin",
"unregister_context",
"unregister_origin",
"unregister_overlay",
]