外掛與動態註冊

進入點外掛

第三方套件可在 pyproject.toml 宣告 automation_file.actions 進入點,註冊自家的 FA_* 命令:

[project.entry-points."automation_file.actions"]
my_plugin = "my_plugin:register"

其中 register 是零參可呼叫物件,回傳 Mapping[str, Callable]。一旦外掛安裝到同一個 venv, build_default_registry() 會自動拾取——呼叫端無需任何更動:

# my_plugin/__init__.py
def greet(name: str) -> str:
    return f"hello {name}"

def register() -> dict:
    return {"FA_greet": greet}
# 安裝後的呼叫端:
from automation_file import execute_action
execute_action([["FA_greet", {"name": "world"}]])

外掛失敗(匯入錯誤、工廠例外、回傳形狀錯誤、被註冊表拒絕) 會被記錄並吞掉,單一壞外掛不會拖垮整個函式庫。

動態套件註冊

from automation_file import package_manager, execute_action

package_manager.add_package_to_executor("math")
execute_action([["math_sqrt", [16.0]]])   # -> 4.0

Warning

package_manager.add_package_to_executor 會註冊任意套件的所有 頂層函式 / 類別 / 內建。切勿 暴露給不可信任的輸入 (例如透過 TCP、HTTP 或 MCP 伺服器(Claude Desktop / Claude Code) 伺服器)。