我使用Python工作流创建了一个公共存储库,在iPython Notebooks中有很好的记录。这些笔记本会导入带有一些辅助功能的自定义模块。
import modu1
modu1.doStuff(x, y)
这很好,应该工作。
我现在必须自动化我的工作流程,因为它每天都要重复。为此,我将其转换为python脚本.py
!jupyter nbconvert --to script Workflow1.ipynb
,并创建一个.bat
文件以使其在Task Scheduler中运行。
setlocal
SET PATH=%PATH%;C:\Users\user1\AppData\Local\Continuum\miniconda3\condabin
call conda activate mypyenv
C:\Users\user1\AppData\Local\Continuum\miniconda3\envs\mypyenv\python C:\scripts\Workflow1.py
EXIT
所有这一切都在另一个文件夹中发生。
我希望将其存储在专用存储库中,因为它包含不应发布的信息。笔记本(Repo1)中的更改不必在Python脚本(Repo2)中进行考虑,反之亦然。
但是,最好使模块modu1
(Repo1和Repo2)保持同步。
达到此目的的最佳做法和建议是什么?
我知道这涵盖了很多主题,但是我认为这对于科学中的可重复性和重复性工作流(中级python级/初学者git级)来说可能是一项常见任务。