探索python-shortcuts生态:如何贡献代码添加新的Siri动作
·
探索python-shortcuts生态:如何贡献代码添加新的Siri动作
python-shortcuts是一个强大的Python库,允许开发者通过Python代码创建Siri快捷方式。本文将详细介绍如何为这个开源项目贡献代码,添加新的Siri动作,帮助你成为社区贡献者的完整指南。
了解项目结构
在开始贡献之前,首先需要了解python-shortcuts的项目结构。核心动作相关代码位于以下目录:
所有Siri动作都继承自BaseAction类,每个动作都有自己的Python文件,如calculation.py、text.py等。
开发新Siri动作的步骤
1. 创建动作类
首先,需要创建一个新的动作类,继承自BaseAction。所有动作类都遵循相似的结构:
from .base import BaseAction
class NewAction(BaseAction):
def __init__(self, parameter1, parameter2):
super().__init__()
self.parameter1 = parameter1
self.parameter2 = parameter2
def to_dict(self):
return {
"WFWorkflowActionIdentifier": "your.action.identifier",
"WFWorkflowActionParameters": {
"Parameter1": self.parameter1,
"Parameter2": self.parameter2,
}
}
@classmethod
def from_dict(cls, data):
return cls(
parameter1=data["WFWorkflowActionParameters"]["Parameter1"],
parameter2=data["WFWorkflowActionParameters"]["Parameter2"],
)
2. 实现核心方法
每个动作类必须实现两个核心方法:
to_dict():将Python对象转换为Siri快捷方式可以理解的字典格式from_dict(cls, data):从字典数据创建动作实例的类方法
这些方法确保动作可以在Python和Siri快捷方式格式之间正确转换。
3. 注册新动作
创建动作类后,需要在动作注册表中注册它。打开shortcuts/actions/registry.py文件,找到ActionRegistry类的register_action方法:
def register_action(self, action_class: Type[BaseAction]) -> None:
self.actions[action_class.identifier] = action_class
然后在文件末尾添加注册代码:
from .new_action import NewAction
registry.register_action(NewAction)
4. 添加测试用例
为确保新动作正常工作,需要添加测试用例。测试文件应放在tests/actions/目录下,遵循现有测试文件的命名规范,如tests/actions/new_action/tests.py。
5. 更新文档
最后,不要忘记更新项目文档,在docs/new_action.md中添加新动作的说明和使用示例。
提交贡献的流程
- 克隆仓库:
git clone https://gitcode.com/gh_mirrors/py/python-shortcuts - 创建分支:
git checkout -b feature/new-action - 实现新动作并提交代码
- 运行测试:
pytest tests/actions/new_action/tests.py - 创建Pull Request,描述你的贡献
结语
通过以上步骤,你可以轻松地为python-shortcuts项目添加新的Siri动作,为社区贡献力量。无论是简单的文本处理还是复杂的计算功能,每个新动作都能让这个工具变得更加强大。开始你的贡献之旅吧!
更多推荐



所有评论(0)