-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Basic Plugin Architecture #260
Comments
Spent some time looking at a basic implementation of this today -- for now I'll just note that I don't think it makes sense for plugins as defined here to return a modified
|
In most cases I agree that |
Good idea, I'm okay with this in principle. I do struggle to think of a real example where a plugin replacing the SnakeBidsApp provides something that mutating the original one wouldn't, but I don't think that should necessarily stop us from allowing it. |
I guess we do need to make clear in this case though that a |
I see, yeah if someone really starts from scratch they would have to redo parsing etc. More likely they're using I can't think of any actual use cases right now, but it's trivial to implement, so I don't see a loss |
This is one of the practical manifestations of #255.
First, a basic overview of how
SnakeBidsApps
work:The
.run_snakemake()
method gives access to intervention point 1, but point 2 is not currently accessible. There are many potential tools that need access to point 2, however, because it's only there that we get access to the parsed CLI arguments loaded into config.Note that point 1 is still necessary for
boutiques
, which needs the constructed but unparsed CLI parser.I propose the
SnakeBidsApp.add_plugins()
method, according to the following signature:Plugins provided via this method would be called after cli parsing and config updating, just before snakemake is invoked.
This architecture would be of immediate benefit to #259 and #256.
The text was updated successfully, but these errors were encountered: