-
Notifications
You must be signed in to change notification settings - Fork 38
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
Rethinking the configuration file #795
Comments
We have been working with the following scenarios:
So in the PR I have done away with the In the console you can list them: ~$ esmvaltool config list
# Available site-specific configs
# Use `esmvaltool config get [config_name]` to copy them
- badc
- bsc
- cp4cds
- dkrz
- ethz
- jasmin
- rcast
- smhi
- user [default]
# Available configs in /home/stef/.esmvaltool
- config-dkrz.yml
- config-jasmin.yml
- config-user.yml [default] To get the default config ( ~$ esmvaltool config get --overwrite
2020-09-24 08:16:00,658 UTC [23612] INFO Overwriting file /home/stef/.esmvaltool/config-user.yml.
2020-09-24 08:16:00,658 UTC [23612] INFO Writing config file to /home/stef/.esmvaltool/config-user.yml. To get a specific config: ~$ esmvaltool config get ethz
2020-09-24 08:16:48,565 UTC [23622] INFO Writing config file to /home/stef/.esmvaltool/config-ethz.yml. In the config itself, I have removed the Instead, there is a new keyword called # Default data location (can be a list)
default_inputpath: ~/default_inputpath The data_reference_syntax:
CMIP6:
rootpath:
- ~/cmip6_inputpath1
- ~/cmip6_inputpath2
CMIP5:
rootpath: ~/cmip5_inputpath The rootpath here will update the default rootpath. You can also add custom entries. If you prefix them with one of the existing ones (CMIP5, CMIP6, etc.), it will pull the defaults from there. So for ETHZ, it would look like. This is defined in a file called data_reference_syntax:
CMIP6_ETHZ:
rootpath: /net/atmos/data/cmip6
input_dir: '{exp}/{mip}/{short_name}/{dataset}/{ensemble}/{grid}/'
CMIP5_ETHZ:
rootpath: /net/atmos/data/cmip5
input_dir: '{exp}/{mip}/{short_name}/{dataset}/{ensemble}/'
CMIP3_ETHZ:
rootpath: /net/atmos/data/cmip3
OBS_ETHZ:
rootpath: /net/exo/landclim/PROJECTS/C3S/datadir/obsdir/ Internally, CMIP6_ETHZ maps to the CMIP6 defaults, and creates an additional DRS entry called CMIP6_ETHZ to look for data. This makes it easy to add your own data locations without messing up the site specific ones. The default DRS is listed in Curious to hear what you think! |
so to be clear, this combines the 'standard' settings from |
Yeah, that's correct. |
Awesome! 😎 |
I updated the description of the issue to be more specific about how to move options from config-user.yml to the recipe. |
With the way we load the config in the PR, we can quite easily add deprecation validators to let people know that these settings will be deprecated. |
@ESMValGroup/esmvaltool-coreteam |
This is awesome, I really like this idea! However, if both settings are combined into the same file I'm not sure how this will work when new datasets are added, especially in the context of a cluster. Wouldn't it be a better solution for the configuration file in the user folder to reference the drs file they prefer to use? Cluster users are not expected to want to change the DRS's anyway, and that allows the user to have access to new datasets without changing their configuration. To reference those files I think it would be better not to use direct paths, so it's not tied to a specific ESMValTool repository. My suggestion would be to reference the cluster, or allowing the option "user", who then would look for a Eg. (in
or
|
I like the idea of rethinking the config system. Some technical pointers: |
Hi everyone,
Over the last week I have been working on implementing an importable config item (#785). As part of this PR, I have been discussing with @bouweandela and @Peter9192 if this would be a good time to rethink how the config file is structured. I would like to start a discussion on how to change the configuration.
There are several issues on the topc. I think with #785 we have made some strides towards tackling nearly all of them. In the next post I will detail we propose to set it up.
#794: Example config file could use some improvements
#793: "Default" is not a great name for a DRS in the configuration
#494: Support per dataset DRS
#129: Specify directory stucture per path instead of per project in config-user.yml
#100: Config-user.yml rootpath.
#93: Too many unnessary settings in config-user.yml
#64: Make user configuration file more user friendly
#2280: ignore .esmvaltool/config-user.yml when a custom --config-file is specified
In particular, I also want to draw your attention #93, to remove some settings from the default user config file. Which settings are really necessary, and which should be deprecated? Are there new keywords that should be added?
Suggestions from @bouweandela to be moved to the diagnostic script settings in the recipe (#93):
write_plots: true
write_netcdf: true
output_file_type: png
# [ps]/pdf/png/eps/epsiprofile_diagnostic: false
-> only interesting for Python diagnostic developerssave_intermediary_cubes
: false -> for debugging purposes, probably only interesting for diagnostic developersexit_on_warning: false
-> specific to NCL diagnostics, probably only interesting for diagnostic developersUsing these options in the configuration file instead of the recipe would need to be deprecated in the upcoming release (2.1, planned for October 2020, feature freeze October 5th) and removed two releases later (2.3, planned June 2021), see also the release schedule.
Also:
config_developer_file: null
-> No longer needed with the PR, could be tweaked to specify the default data reference syntaxThe text was updated successfully, but these errors were encountered: