我一直在寻找实现这一目标的方法,但找不到一个。
我有多个python脚本,其中一些是预处理实用工具,一些执行数据分析,有些创建可视化。它们都是相关的,但可能相互依赖,也可能不相互依赖,并且可能具有单独的输入参数。我正在尝试在一个软件包中创建一套工具,并希望用户根据需要选择并运行该工具/模块。
例如:这是一个名为GATK的基于Java的软件。 “ gatk”是一个.jar,其中包含多个工具,其中一个是“ AnnotateIntervals”,并且具有一组输入要求。用户以这种方式运行
gatk AnnotateIntervals \
-R reference.fa \
-L intervals.interval_list \
--interval-merging-rule OVERLAPPING_ONLY \
-O annotated_intervals.tsv
https://gatk.broadinstitute.org/hc/en-us/articles/360040098252-AnnotateIntervals
我想在python中开发完全像这样的东西,
main_app.py first_module -l <> -m <>
这可能吗?如果可以,我该如何实现?
您可能想读setuptools' entry-points和/或argparse's sub-commands。这只是一种组合,可能是大多数“ standard”组合,但是还有许多其他选择。