What is the best way to accept a directory as an input parameter for q2cli? I want to be able to point QIIME2 at a bunch of artifacts of the same type, but it isn’t very clear how to define a new semantic type for this purpose, so my solution for now is to get a directory supplied by the user, then sniff the artifacts with the zipfile lib to grab the content from the the artifact type(s) I need.
q2cli can’t quite handle exactly what you’re describing, but it can come kind of close.
You are looking for the List or Set containers, so for example you could say: List[SomeSemanticType] or Set[SomeSemanticType] and q2cli will generate an interface that allows the argument to be repeated multiple times. This isn’t super ideal when you have all of your artifacts in a nice directory like that, but you can almost hack something together with bash-expansion.
This kind of pattern is probably much easier to do with the Artifact API, where you can just glob the directory, load them all as an artifact, and then pass a python list to the action.