-
Notifications
You must be signed in to change notification settings - Fork 7
Document CSET architecture and workflow #1688
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
base: main
Are you sure you want to change the base?
Conversation
7fc59e2
to
1ad4491
Compare
26e5cf2
to
bffeb6b
Compare
1ad4491
to
600c75c
Compare
Remaining areas to documentFrom #1638 (comment)
From #1639 (comment)
From #1639 (review)
Base model cube attribute. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few comments for you to consider.
demo_pointstat | ||
~~~~~~~~~~~~~~ | ||
|
||
metplus_ascii2nc | ||
~~~~~~~~~~~~~~~~ | ||
|
||
metplus_grid_stat | ||
~~~~~~~~~~~~~~~~~ | ||
|
||
metplus_point_stat | ||
~~~~~~~~~~~~~~~~~~ | ||
|
||
These apps are not currently used, but aim to integrate METplus in the workflow. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
demo_pointstat | |
~~~~~~~~~~~~~~ | |
metplus_ascii2nc | |
~~~~~~~~~~~~~~~~ | |
metplus_grid_stat | |
~~~~~~~~~~~~~~~~~ | |
metplus_point_stat | |
~~~~~~~~~~~~~~~~~~ | |
These apps are not currently used, but aim to integrate METplus in the workflow. | |
The following apps are not currently used, but aim to integrate METplus in the workflow. | |
demo_pointstat | |
~~~~~~~~~~~~~~ | |
metplus_ascii2nc | |
~~~~~~~~~~~~~~~~ | |
metplus_grid_stat | |
~~~~~~~~~~~~~~~~~ | |
metplus_point_stat | |
~~~~~~~~~~~~~~~~~~ |
Just wonder if it might be clearer to re-order this part.
src/CSET | ||
├── cset_workflow # Detailed below for clarity. | ||
├── loaders | ||
│ ├── __init__.py # Imports all loaders to make available to the rest of CSET. | ||
│ └── ... # Then lots of loaders, as described above. | ||
├── operators | ||
│ ├── __init__.py # Code for executing ("baking") recipes. | ||
│ ├── _colorbar_definition.json # Default colourbar definitions. | ||
│ ├── _plot_page_template.html # Template for diagnostic output page. | ||
│ ├── _stash_to_lfric.py # Mapping between STASH codes and LFRic variable names. | ||
│ ├── _utils.py # Common utility code for operators. | ||
│ └── ... # Then lots of operators, as described above. | ||
├── recipes | ||
│ ├── __init__.py # Code for parbaking recipes. | ||
│ └── ... # Then lots of recipes, as described above. | ||
├── __init__.py # CLI entrypoint. Sets up logging, parses arguments, etc. | ||
├── __main__.py # Allows running `python -m CSET`. | ||
├── _common.py # Common utility code. | ||
├── extract_workflow.py # Implementation of `cset extract-workflow`. | ||
└── graph.py # Implementation of `cset graph`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
With the code blocks, and applicable to the one below. It is a lot of text with the comments being on the same line. Is there a better way to format this to make it less busy for people to read.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Definitely. It would immediately be better if the comments were aligned so they all started at the same indentation, but that would cause it to scroll in the output.
We could go for a table or a definitions list (as used here), but we would lose the hierarchy, which I see as quite important for understanding what is where.
While a little boring, we might be best served with a simple nested list, such as:
- cset_workflow
Detailed below for clarity. - loaders
- __init__.py
Imports all loaders to make available to the rest of CSET. - ...
Then lots of loaders, as described above.
- __init__.py
- operators
- __init__.py
Code for executing ("baking") recipes. - ...
Then lots of operators, as described above.
- __init__.py
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Or maybe as an image, that way we can keep the hierarchy and not have scrolling problems and clear indentations?
Contribution checklist
Aim to have all relevant checks ticked off before merging. See the developer's guide for more detail.