動態套件載入

PackageManager 可讓您在執行時動態匯入 Python 套件,並將其所有公開函式註冊到 執行器的事件字典中。

基本用法

from je_load_density import executor

# 載入套件並將其所有函式註冊為執行器動作
executor.execute_action([
    ["LD_add_package_to_executor", ["my_custom_package"]]
])

載入後,套件中的所有函式都可以透過名稱在 JSON 腳本或 executor.execute_action() 中呼叫。

運作原理

  1. 使用 importlib.util.find_spec() 定位套件

  2. 使用 importlib.import_module() 匯入套件

  3. 使用 inspect.getmembers() 搭配 isfunction 找出套件中所有函式

  4. 將每個函式註冊到執行器的 event_dict

Note

僅會註冊套件中的頂層函式。類別、常數和子模組不會自動加入。

PackageManager API

方法

說明

load_package_if_available(package)

嘗試匯入套件。回傳模組或 ``None``(若未找到)。

add_package_to_executor(package)

匯入套件並將其所有函式註冊到執行器。

範例:使用自訂套件

假設您有一個自訂套件 my_utils,其中包含 compute() 函式:

from je_load_density import executor

# 註冊套件
executor.execute_action([
    ["LD_add_package_to_executor", ["my_utils"]]
])

# 現在可以透過名稱呼叫 compute()
executor.execute_action([
    ["compute", [42]]
])

在 JSON 腳本中使用

[
    ["LD_add_package_to_executor", ["my_utils"]],
    ["compute", [42]]
]