4040from qcodes .dataset .exporters .export_to_xarray import _calculate_index_shape
4141from qcodes .dataset .linked_datasets .links import links_to_str
4242from qcodes .parameters import ManualParameter , Parameter
43+ from qcodes .utils .deprecate import QCoDeSDeprecationWarning
4344
4445if TYPE_CHECKING :
4546 from collections .abc import Hashable
@@ -868,7 +869,17 @@ def test_export_to_xarray_dataset_empty_ds(mock_empty_dataset: DataSet) -> None:
868869
869870
870871def test_export_to_xarray_dataarray_empty_ds (mock_empty_dataset : DataSet ) -> None :
871- dad = mock_empty_dataset .to_xarray_dataarray_dict ()
872+ with pytest .warns (QCoDeSDeprecationWarning , match = "to_xarray_dataarray_dict" ):
873+ dad = mock_empty_dataset .to_xarray_dataarray_dict () # pyright: ignore[reportDeprecated]
874+ assert len (dad ) == 2
875+ assert len (dad ["y" ].coords ) == 1
876+ assert "x" in dad ["y" ].coords
877+ assert len (dad ["z" ].coords ) == 1
878+ assert "x" in dad ["z" ].coords
879+
880+
881+ def test_export_to_xarray_dataset_dict_empty_ds (mock_empty_dataset : DataSet ) -> None :
882+ dad = mock_empty_dataset .to_xarray_dataset_dict ()
872883 assert len (dad ) == 2
873884 assert len (dad ["y" ].coords ) == 1
874885 assert "x" in dad ["y" ].coords
@@ -910,10 +921,20 @@ def test_export_to_xarray_extra_metadata(mock_dataset: DataSet) -> None:
910921 assert "snapshot" not in ds [array_name ].attrs .keys ()
911922
912923
924+ def test_export_to_xarray_da_dict_extra_metadata (mock_dataset : DataSet ) -> None :
925+ mock_dataset .add_metadata ("mytag" , "somestring" )
926+ mock_dataset .add_metadata ("myothertag" , 1 )
927+ with pytest .warns (QCoDeSDeprecationWarning , match = "to_xarray_dataarray_dict" ):
928+ da_dict = mock_dataset .to_xarray_dataarray_dict () # pyright: ignore[reportDeprecated]
929+
930+ for datarray in da_dict .values ():
931+ _assert_xarray_metadata_is_as_expected (datarray , mock_dataset )
932+
933+
913934def test_export_to_xarray_ds_dict_extra_metadata (mock_dataset : DataSet ) -> None :
914935 mock_dataset .add_metadata ("mytag" , "somestring" )
915936 mock_dataset .add_metadata ("myothertag" , 1 )
916- da_dict = mock_dataset .to_xarray_dataarray_dict ()
937+ da_dict = mock_dataset .to_xarray_dataset_dict ()
917938
918939 for datarray in da_dict .values ():
919940 _assert_xarray_metadata_is_as_expected (datarray , mock_dataset )
@@ -973,7 +994,8 @@ def test_to_xarray_ds_paramspec_metadata_is_preserved(
973994def test_to_xarray_da_dict_paramspec_metadata_is_preserved (
974995 mock_dataset_label_unit : DataSet ,
975996) -> None :
976- xr_das = mock_dataset_label_unit .to_xarray_dataarray_dict ()
997+ with pytest .warns (QCoDeSDeprecationWarning , match = "to_xarray_dataarray_dict" ):
998+ xr_das = mock_dataset_label_unit .to_xarray_dataarray_dict () # pyright: ignore[reportDeprecated]
977999
9781000 for outer_param_name , xr_da in xr_das .items ():
9791001 for param_name in xr_da .dims :
@@ -987,6 +1009,23 @@ def test_to_xarray_da_dict_paramspec_metadata_is_preserved(
9871009 assert xr_da .attrs [spec_name ] == spec_value
9881010
9891011
1012+ def test_to_xarray_ds_dict_paramspec_metadata_is_preserved (
1013+ mock_dataset_label_unit : DataSet ,
1014+ ) -> None :
1015+ xr_das = mock_dataset_label_unit .to_xarray_dataset_dict ()
1016+
1017+ for outer_param_name , xr_da in xr_das .items ():
1018+ for param_name in xr_da .dims :
1019+ assert xr_da .coords [param_name ].attrs == _get_expected_param_spec_attrs (
1020+ mock_dataset_label_unit , param_name
1021+ )
1022+ expected_param_spec_attrs = _get_expected_param_spec_attrs (
1023+ mock_dataset_label_unit , outer_param_name
1024+ )
1025+ for spec_name , spec_value in expected_param_spec_attrs .items ():
1026+ assert xr_da [outer_param_name ].attrs [spec_name ] == spec_value
1027+
1028+
9901029def test_export_2d_dataset (
9911030 tmp_path_factory : TempPathFactory , mock_dataset_grid : DataSet
9921031) -> None :
@@ -1597,7 +1636,7 @@ def test_geneate_pandas_index() -> None:
15971636@given (
15981637 function_name = hst .sampled_from (
15991638 [
1600- "to_xarray_dataarray_dict " ,
1639+ "to_xarray_dataset_dict " ,
16011640 "to_pandas_dataframe" ,
16021641 "to_pandas_dataframe_dict" ,
16031642 "get_parameter_data" ,
@@ -1642,7 +1681,7 @@ def test_export_lazy_load(
16421681@given (
16431682 function_name = hst .sampled_from (
16441683 [
1645- "to_xarray_dataarray_dict " ,
1684+ "to_xarray_dataset_dict " ,
16461685 "to_pandas_dataframe" ,
16471686 "to_pandas_dataframe_dict" ,
16481687 "get_parameter_data" ,
0 commit comments