我在项目中使用Invoke来运行一些代码质量任务(pylint,pycodestyle,pydocstyle等)。
因此,我在项目的根目录下有一个文件tasks.py
。
我还有另外两个将执行相同任务的存储库。
因此,我想在所有回购的子模块git中共享此tasks.py
文件。
问题是我无法通过调用在项目的子文件夹中找到tasks.py
,并且文档不够清晰/我不熟悉所提到的Config / Context对象。
有人遇到过这个问题吗?
答案 0 :(得分:1)
这个问题有点过时了,但我最近自己也遇到了同样的问题,所以这里是:
invoke
似乎可以选择搜索 from a different sources root using the -r option。然而,这似乎not to work at the time when using configuration files。
您可以尝试稍微修改 invoke's
加载选项。假设您的文件夹结构是这样的:
| repository root:
| ├── some other files/folders
| ├── submodule:
| ├── tasks.py
| ├── some other files/folders
您可以在存储库根目录下添加一个 tasks.py
| repository root:
| ├── some other files/folders
| ├── tasks.py # new one that we added
| ├── submodule:
| ├── tasks.py
| ├── some other files/folders
在这个新的 tasks.py
中导入 sumbodule tasks.py
代码:
from submodule.tasks import *
这会将嵌套的 tasks.py
的内容加载到根目录中,invoke
将识别其中的所有内容。不过,您应该对一个警告感到厌烦,如果嵌套的 tasks.py
使用自己的导入而父项不能使用,则任务可能会在运行时失败。