插件注册表
注册表是 Rayforge 管理可扩展性的方式。每个注册表保存一组相关组件——步骤、生成器、操作等。当您的插件注册某些内容时,它将在整个应用程序中可用。
注册表的工作原理
所有注册表都遵循类似的模式。它们提供 register() 方法来添加项目,以及各种查找方法来检索它们。大多数注册表还会跟踪哪个插件注册了每个项目,以便在插件卸载时进行清理。
以下是一般模式:
@hookimpl
def register_steps(step_registry):
from .my_step import MyCustomStep
step_registry.register(MyCustomStep, addon_name="my_addon")
addon_name 参数是可选的,但建议使用。它确保如果用户禁用您的插件,您的组件会被正确移除。
步骤注册表
步骤注册表(StepRegistry)管理出现在操作面板中的步骤类型。每个步骤代表用户可以添加到其作业中的操作类型。
注册步骤
@hookimpl
def register_steps(step_registry):
from .my_step import MyCustomStep
step_registry.register(MyCustomStep, addon_name="my_addon")
步骤的类名用作注册表键。您的步骤类应该继承自 Step 并定义 TYPELABEL、HIDDEN 等属性,并实现 create() 类方法。
检索步骤
注册表提供了几种查找步骤的方法:
# Get a step by its class name
step_class = step_registry.get("MyCustomStep")
# Get a step by its TYPELABEL (for backward compatibility)
step_class = step_registry.get_by_typelabel("My Custom Step")
# Get all registered steps
all_steps = step_registry.all_steps()
# Get factory methods for UI menus (excludes hidden steps)
factories = step_registry.get_factories()