-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Milestone
Description
The request.metadata.model_type is redundant for CMIP7 processing but needs some thought as to how best to handle it.
Also need to decouple the validator.
CDDS/cdds/cdds/common/request/validations/cv_validators.py
Lines 85 to 107 in 6332a0e
| @classmethod | |
| def model_types_validator(cls) -> Callable[[CVConfig, 'Request'], None]: | |
| """ | |
| Returns validator to validate the model types against the allowed and required | |
| model types in the CV. | |
| :return: validate function | |
| :rtype: Callable[[CVConfig, 'Request'], None] | |
| """ | |
| def validate(cv_config: CVConfig, request: 'Request'): | |
| allowed_model_types = cv_config.allowed_source_types(request.metadata.experiment_id) | |
| model_types = request.metadata.model_type | |
| valid_model_types = set(model_types).issubset(set(allowed_model_types)) | |
| if not valid_model_types: | |
| raise CVEntryError('Not all model types are allowed by the CV') | |
| required_model_types = cv_config.required_source_type(request.metadata.experiment_id) | |
| if required_model_types: | |
| contain_required_model_types = set(required_model_types).issubset(set(model_types)) | |
| if not contain_required_model_types: | |
| raise CVEntryError('not all required model types are given.') | |
| return validate |
Configure usage.
CDDS/cdds/cdds/configure/user_config.py
Line 130 in 6332a0e
| user_config['cmor_dataset']['model_type'] = ' '.join(user_config['cmor_dataset']['model_type']) |
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels