Ho un programma che esegue azioni diverse a seconda dei plugin che vengono passati. Ad esempio, python main.py -m foo -m bar
eseguirà le azioni di foo
e bar
.
La struttura della directory è:
├── Dockerfile
├── README.md
├── docker-compose.yml
├── entrypoint.sh
├── modules
│ └── foo.py
│ └── bar.py
├── main.py
├── requirements.txt
└── settings.yaml
E in main.py
, ho una funzione per ciascuno dei plugin. Supponi quanto segue:
def foo():
...
def bar():
...
if args.all or 'foo' in args.modules:
foo()
elif args.all or 'bar' in args.modules:
bar()
Funziona, ma ci deve essere sicuramente un modo migliore per lavorare con i plugin, perché con l'aumentare del numero di moduli, con una funzione e un if
per ognuno non sembra una buona opzione.
Qual è il modo consigliato di eseguire un'implementazione come questa?