发布
本地运行
注册Task
将main
命令行入口和上述实现的Task
类注册到命名空间中。
编辑pyproject.toml
文件,增加poetry插件如下内容:
[tool.poetry.plugins.console_scripts]
automotive_data_etl = "automotive_data_etl.cmdline:main"
[tool.poetry.plugins."etl_tasks"]
automotive_task = "automotive_data_etl.tasks.automotive_task.task:AutomotiveDataTask"
这么做的目的是将AutomotiveDataTask
注册到entry_points
中, 然后在程序中使用importlib.metadata
根据名称空间查找。而 stevedore
则是封装了查找的复杂逻辑,让使用插件更简单。
将项目以可编辑模式安装到当前环境:
可以在 Python Console
下查看注册插件信息:
>>> from importlib.metadata import entry_points
>>> entry_points(group='etl_tasks')
[EntryPoint(name='automotive_task', value='automotive_data_etl.tasks.automotive_task.task:AutomotiveDataTask', group='etl_tasks')]
将本地项目以可编辑方式安装到当前 Python 环境:
运行Task
然后通过命令行的方式运行Task
,通过命令行参数的方式更新输入输出路径: