Объедините несколько независимых, но связанных python инструментов в одно большое приложение - PullRequest
1 голос
/ 18 марта 2020

Я искал пути для достижения этой цели, но не смог найти.

У меня есть несколько сценариев python, некоторые из которых являются утилитами предварительной обработки, некоторые выполняют анализ данных, а некоторые создают визуализации. , Все они связаны, но могут или не могут быть зависимыми и могут иметь индивидуальные входные аргументы. Я пытаюсь создать набор инструментов в одном пакете и хочу, чтобы пользователь выбирал и запускал инструмент / модуль по своему усмотрению.

Например: вот программное обеспечение на основе java под названием GATK. «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 <> это вообще возможно? если так, как я могу достичь этого?

1 Ответ

2 голосов
/ 18 марта 2020

Возможно, вы захотите прочитать на setuptools ' точки входа и / или на argparse ' s суб-команда . Это всего лишь одна комбинация, возможно, самая " стандартная ", но есть много других альтернатив ( поэзия , флит , нажмите , огонь и другие).

...