Skip to content

ENH: Parse Boutiques output structure #3

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

Merged

Conversation

rmarkello
Copy link

Adds support for dynamic parsing of boutiques output-files.

Unfortunately, boutiques does not support specification of which input options will lead to the generation of specific output files, so all output files are being specified. This will likely lead to some problems down the road, and might be worth suggesting to the boutiques team as a future enhancement of their schema.

Adds support for dynamic parsing of boutiques output-files spec.

Unfortunately, boutiques does not support specification of which input
options will lead to the generation of specific output files, so _all_
output files are being specified. This will likely lead to some problems
down the road, and might be worth suggesting to the boutiques team as a
future enhancement of their schema.
Rather than assigning to self.inputs or self.outputs, BoutiqueInterface
will actually generate subclasses of DynamicTraitedSpec (so that things
like .help() might eventually work).
Generating an instance of BoutiqueInterface now allows for .help() to
generate pretty help text using standard nipype machinery.
Better file handling (existence checking, output aggregating) for
BoutiqueInterface
Adds example to BoutiqueInterface and makes some minor updates to input
spec handling.
@rmarkello
Copy link
Author

Alright, so I wasn't happy with the on-the-fly input/output assignment so I'm now creating new classes for input_spec and output_spec based on the parsed boutiques descriptor specification. This allows for hijacking a lot of the underlying mechanics of the CommandLine class (e.g., .help()) which is nice 👍 There is also now some checking for output file generation in .aggregate_outputs(), since there's currently not a good way with boutiques descriptors to determine what combination of inputs will trigger the generation of optional outputs.

I've added a descriptor (wrapping FSL's bet) to the testing/data module and a minimal doc-string example that uses the descriptor, but need to do some more rigorous on-the-ground testing!

@effigies effigies merged commit f79f58f into effigies:enh/boutique_interface Oct 10, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants