Skip to content
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

Discuss and document python/CLI interface designs #1766

Open
benfitzpatrick opened this issue Jul 20, 2022 · 1 comment
Open

Discuss and document python/CLI interface designs #1766

benfitzpatrick opened this issue Jul 20, 2022 · 1 comment

Comments

@benfitzpatrick
Copy link
Contributor

Discuss and document:

@cpelley
Copy link
Contributor

cpelley commented Jul 21, 2022

Thanks for raising @benfitzpatrick

Passing cubes in any order is something I have been pushing since coming to the area (using metadata rather than relying on index). To that end, #1754 is one method which works towards this goal. I'm not 100% that the use of clize and of the existing plugin framework is the simplest and most transparent approach for improver but perhaps #1754 is a reasonable approach for the existing framework at least for now given that it is self contained.

Since python execution, we needn't necessarily go via the CLI (clize). So it begs the question whether we need clize or a CLI for that matter. paraflow task_runner might potentially become responsible for calling our 'plugins' directly.
I think plugins could be handled via a simple factory class where you register your plugins (inc. a register decorator). This would allow registering external plugins easily too - one might want non-improver plugins perhaps in paraflow which do python based system equivalents like copying files, creating symbolic links etc. (something I have been thinking about in https://github.com/MetOffice/improver_suite/issues/1220).

Just running thoughts off the top of my head :p

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

No branches or pull requests

2 participants