Hasty Briefsbeta

双语

Plugins case study: Pluggy

a day ago
  • Pluggy是一个用于构建插件系统的Python库,最初来自pytest,现已独立出来。
  • 核心概念:钩子——宿主通过HookspecMarker暴露它们,插件通过HookimplMarker实现它们。
  • 插件可以通过setuptools入口点自动发现,或使用PluginManager.register()手动注册。
  • 钩子调用返回所有插件的结果列表,并支持LIFO、tryfirst、trylast和firstresult等排序选项。
  • htmlize示例演示了通过插件实现自定义角色处理器和内容处理。
  • Pluggy提供高级功能(入口点发现、签名验证、结果收集、钩子排序、包装器),但API较浅,宿主需自行管理大部分细节。