Hi all,
I am in the process of adding a couple of IQ-TREE methods to q2-phylogeny. See here. IQ-TREE allows upwards of 286 DNA substitution models. I would like to allow the user to specify any one of these, and provide an error message if the option they enter is not available / supported. It does not make sense to show all of these as a set of choices when calling --help
. I want something like --show-importable-types
for the qiime tools import
command.
I am having trouble figuring out how to handle this for the iqtree
plugin, as I could not quite follow what was going on in similar cases, e.g. the qiime tools import
code. Is there another example that I missed? Other advice?
Here is a screen shot of qiime phylogeny iqtree --help
Thanks in advance!
1 Like
Hey there @SoilRotifer!
I imagine you are talking about this list, right?
Import that list in your plugin_setup.py
and wire it in as a Choices
parameter, like this!
This will handle the validation, so if a user specifies "peanut-the-dog"
as a choice, they will be alerted as to their error!
Did I misunderstand your question? Let us know how it goes! Thanks!
2 Likes
Yes sir, it is. I've moved the list to plugin_set.py
.
When I do that, I get this ugly mess:
Is there a way to limit the list of Choices
shown to only the first few, or not show them at all? I am looking for a way to set-up a flag like --show-substitution-models
, which would work analogously to the --show-importable-types
command I referred to earlier. This way the user is not bombarded with all the text each time they call --help
.
Hopefully, this helps clarify my question.
-Thanks!
- I see what you mean!
That ugly mess is q2cli's problem (see this open issue). I would say go for it as-is now, this really shouldn't be your problem to fix, but rather something the q2cli should do better in the future. Remember, other interfaces consume those choices as well, so I wouldn't advise circumventing this for the case of the CLI.
Sorry, I wish I had a better answer for you!
2 Likes