Skip to content

Commit ff72a4d

Browse files
committed
Pass test
1 parent bbc1fb5 commit ff72a4d

3 files changed

Lines changed: 18 additions & 2 deletions

File tree

src/input4mips_validation/cvs/drs.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@
3838
from pathlib import Path
3939

4040
import cftime
41+
import iris
4142
import numpy as np
4243
import pandas as pd
43-
import xarray as xr
4444
from attrs import frozen
4545
from typing_extensions import TypeAlias
4646

@@ -51,6 +51,11 @@
5151
infer_time_start_time_end_for_filename,
5252
)
5353
from input4mips_validation.serialisation import converter_json
54+
from input4mips_validation.xarray_helpers.iris import ds_from_iris_cubes
55+
from input4mips_validation.xarray_helpers.variables import (
56+
XRVariableHelper,
57+
XRVariableProcessorLike,
58+
)
5459

5560
DATA_REFERENCE_SYNTAX_FILENAME: str = "input4MIPs_DRS.json"
5661
"""Default name of the file in which the data reference syntax is saved"""
@@ -539,6 +544,7 @@ def validate_file_written_according_to_drs(
539544
file: Path,
540545
frequency_metadata_keys: FrequencyMetadataKeys = FrequencyMetadataKeys(),
541546
time_dimension: str = "time",
547+
xr_variable_processor: XRVariableProcessorLike = XRVariableHelper(),
542548
) -> None:
543549
"""
544550
Validate that a file is correctly written in the DRS
@@ -554,6 +560,9 @@ def validate_file_written_according_to_drs(
554560
time_dimension
555561
The time dimension of the data
556562
563+
xr_variable_processor
564+
Helper to use for processing the variables in xarray objects.
565+
557566
Raises
558567
------
559568
ValueError
@@ -570,7 +579,12 @@ def validate_file_written_according_to_drs(
570579
file.name
571580
)
572581

573-
ds = xr.open_dataset(file, use_cftime=True)
582+
ds = ds_from_iris_cubes(
583+
iris.load(file),
584+
xr_variable_processor=xr_variable_processor,
585+
raw_file=file,
586+
time_dimension=time_dimension,
587+
)
574588
comparison_metadata = {
575589
k: apply_known_replacements(v)
576590
for k, v in ds.attrs.items()

src/input4mips_validation/validation/database.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ def get_validate_database_file_entry_result( # noqa: PLR0913
183183
Path(entry.filepath),
184184
frequency_metadata_keys=frequency_metadata_keys,
185185
time_dimension=time_dimension,
186+
xr_variable_processor=xr_variable_processor,
186187
)
187188

188189
# TODO: all references to external variables (like cell areas) can be resolved

src/input4mips_validation/validation/tree.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,7 @@ def get_validate_tree_result( # noqa: PLR0913
480480
file,
481481
frequency_metadata_keys=frequency_metadata_keys,
482482
time_dimension=time_dimension,
483+
xr_variable_processor=xr_variable_processor,
483484
)
484485

485486
# TODO: check cross references in files to external variables

0 commit comments

Comments
 (0)